libcdio_sys/opt/rustwide/target/x86_64-unknown-linux-gnu/debug/build/libcdio-sys-a0abe9a7258a4fe0/out/
bindings.rs

1/* automatically generated by rust-bindgen 0.72.0 */
2
3#[repr(C)]
4#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
5pub struct __BindgenBitfieldUnit<Storage> {
6    storage: Storage,
7}
8impl<Storage> __BindgenBitfieldUnit<Storage> {
9    #[inline]
10    pub const fn new(storage: Storage) -> Self {
11        Self { storage }
12    }
13}
14impl<Storage> __BindgenBitfieldUnit<Storage>
15where
16    Storage: AsRef<[u8]> + AsMut<[u8]>,
17{
18    #[inline]
19    fn extract_bit(byte: u8, index: usize) -> bool {
20        let bit_index = if cfg!(target_endian = "big") {
21            7 - (index % 8)
22        } else {
23            index % 8
24        };
25        let mask = 1 << bit_index;
26        byte & mask == mask
27    }
28    #[inline]
29    pub fn get_bit(&self, index: usize) -> bool {
30        debug_assert!(index / 8 < self.storage.as_ref().len());
31        let byte_index = index / 8;
32        let byte = self.storage.as_ref()[byte_index];
33        Self::extract_bit(byte, index)
34    }
35    #[inline]
36    pub unsafe fn raw_get_bit(this: *const Self, index: usize) -> bool {
37        debug_assert!(index / 8 < core::mem::size_of::<Storage>());
38        let byte_index = index / 8;
39        let byte = unsafe {
40            *(core::ptr::addr_of!((*this).storage) as *const u8).offset(byte_index as isize)
41        };
42        Self::extract_bit(byte, index)
43    }
44    #[inline]
45    fn change_bit(byte: u8, index: usize, val: bool) -> u8 {
46        let bit_index = if cfg!(target_endian = "big") {
47            7 - (index % 8)
48        } else {
49            index % 8
50        };
51        let mask = 1 << bit_index;
52        if val { byte | mask } else { byte & !mask }
53    }
54    #[inline]
55    pub fn set_bit(&mut self, index: usize, val: bool) {
56        debug_assert!(index / 8 < self.storage.as_ref().len());
57        let byte_index = index / 8;
58        let byte = &mut self.storage.as_mut()[byte_index];
59        *byte = Self::change_bit(*byte, index, val);
60    }
61    #[inline]
62    pub unsafe fn raw_set_bit(this: *mut Self, index: usize, val: bool) {
63        debug_assert!(index / 8 < core::mem::size_of::<Storage>());
64        let byte_index = index / 8;
65        let byte = unsafe {
66            (core::ptr::addr_of_mut!((*this).storage) as *mut u8).offset(byte_index as isize)
67        };
68        unsafe { *byte = Self::change_bit(*byte, index, val) };
69    }
70    #[inline]
71    pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 {
72        debug_assert!(bit_width <= 64);
73        debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
74        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
75        let mut val = 0;
76        for i in 0..(bit_width as usize) {
77            if self.get_bit(i + bit_offset) {
78                let index = if cfg!(target_endian = "big") {
79                    bit_width as usize - 1 - i
80                } else {
81                    i
82                };
83                val |= 1 << index;
84            }
85        }
86        val
87    }
88    #[inline]
89    pub unsafe fn raw_get(this: *const Self, bit_offset: usize, bit_width: u8) -> u64 {
90        debug_assert!(bit_width <= 64);
91        debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
92        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
93        let mut val = 0;
94        for i in 0..(bit_width as usize) {
95            if unsafe { Self::raw_get_bit(this, i + bit_offset) } {
96                let index = if cfg!(target_endian = "big") {
97                    bit_width as usize - 1 - i
98                } else {
99                    i
100                };
101                val |= 1 << index;
102            }
103        }
104        val
105    }
106    #[inline]
107    pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) {
108        debug_assert!(bit_width <= 64);
109        debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
110        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
111        for i in 0..(bit_width as usize) {
112            let mask = 1 << i;
113            let val_bit_is_set = val & mask == mask;
114            let index = if cfg!(target_endian = "big") {
115                bit_width as usize - 1 - i
116            } else {
117                i
118            };
119            self.set_bit(index + bit_offset, val_bit_is_set);
120        }
121    }
122    #[inline]
123    pub unsafe fn raw_set(this: *mut Self, bit_offset: usize, bit_width: u8, val: u64) {
124        debug_assert!(bit_width <= 64);
125        debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
126        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
127        for i in 0..(bit_width as usize) {
128            let mask = 1 << i;
129            let val_bit_is_set = val & mask == mask;
130            let index = if cfg!(target_endian = "big") {
131                bit_width as usize - 1 - i
132            } else {
133                i
134            };
135            unsafe { Self::raw_set_bit(this, index + bit_offset, val_bit_is_set) };
136        }
137    }
138}
139#[repr(C)]
140#[derive(Default)]
141pub struct __IncompleteArrayField<T>(::std::marker::PhantomData<T>, [T; 0]);
142impl<T> __IncompleteArrayField<T> {
143    #[inline]
144    pub const fn new() -> Self {
145        __IncompleteArrayField(::std::marker::PhantomData, [])
146    }
147    #[inline]
148    pub fn as_ptr(&self) -> *const T {
149        self as *const _ as *const T
150    }
151    #[inline]
152    pub fn as_mut_ptr(&mut self) -> *mut T {
153        self as *mut _ as *mut T
154    }
155    #[inline]
156    pub unsafe fn as_slice(&self, len: usize) -> &[T] {
157        unsafe { ::std::slice::from_raw_parts(self.as_ptr(), len) }
158    }
159    #[inline]
160    pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
161        unsafe { ::std::slice::from_raw_parts_mut(self.as_mut_ptr(), len) }
162    }
163}
164impl<T> ::std::fmt::Debug for __IncompleteArrayField<T> {
165    fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
166        fmt.write_str("__IncompleteArrayField")
167    }
168}
169#[repr(C)]
170pub struct __BindgenUnionField<T>(::std::marker::PhantomData<T>);
171impl<T> __BindgenUnionField<T> {
172    #[inline]
173    pub const fn new() -> Self {
174        __BindgenUnionField(::std::marker::PhantomData)
175    }
176    #[inline]
177    pub unsafe fn as_ref(&self) -> &T {
178        unsafe { ::std::mem::transmute(self) }
179    }
180    #[inline]
181    pub unsafe fn as_mut(&mut self) -> &mut T {
182        unsafe { ::std::mem::transmute(self) }
183    }
184}
185impl<T> ::std::default::Default for __BindgenUnionField<T> {
186    #[inline]
187    fn default() -> Self {
188        Self::new()
189    }
190}
191impl<T> ::std::clone::Clone for __BindgenUnionField<T> {
192    #[inline]
193    fn clone(&self) -> Self {
194        *self
195    }
196}
197impl<T> ::std::marker::Copy for __BindgenUnionField<T> {}
198impl<T> ::std::fmt::Debug for __BindgenUnionField<T> {
199    fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
200        fmt.write_str("__BindgenUnionField")
201    }
202}
203impl<T> ::std::hash::Hash for __BindgenUnionField<T> {
204    fn hash<H: ::std::hash::Hasher>(&self, _state: &mut H) {}
205}
206impl<T> ::std::cmp::PartialEq for __BindgenUnionField<T> {
207    fn eq(&self, _other: &__BindgenUnionField<T>) -> bool {
208        true
209    }
210}
211impl<T> ::std::cmp::Eq for __BindgenUnionField<T> {}
212pub const CDIO_API_VERSION: u32 = 6;
213pub const CDIO_VERSION: &[u8; 26] = b"2.1.0 x86_64-pc-linux-gnu\0";
214pub const LIBCDIO_VERSION_NUM: u32 = 20100;
215pub const __bool_true_false_are_defined: u32 = 1;
216pub const true_: u32 = 1;
217pub const false_: u32 = 0;
218pub const msf_t_SIZEOF: u32 = 3;
219pub const CDIO_INVALID_SESSION: u32 = 255;
220pub const CDIO_INVALID_LBA: i32 = -45301;
221pub const CDIO_INVALID_LSN: i32 = -45301;
222pub const CDIO_MCN_SIZE: u32 = 13;
223pub const CDIO_ISRC_SIZE: u32 = 12;
224pub const CDIO_PREGAP_SECTORS: u32 = 150;
225pub const CDIO_POSTGAP_SECTORS: u32 = 150;
226pub const CDIO_CD_MINS: u32 = 74;
227pub const CDIO_CD_SECS_PER_MIN: u32 = 60;
228pub const CDIO_CD_FRAMES_PER_SEC: u32 = 75;
229pub const CDIO_CD_SYNC_SIZE: u32 = 12;
230pub const CDIO_CD_CHUNK_SIZE: u32 = 24;
231pub const CDIO_CD_NUM_OF_CHUNKS: u32 = 98;
232pub const CDIO_CD_FRAMESIZE_SUB: u32 = 96;
233pub const CDIO_CD_HEADER_SIZE: u32 = 4;
234pub const CDIO_CD_SUBHEADER_SIZE: u32 = 8;
235pub const CDIO_CD_EDC_SIZE: u32 = 4;
236pub const CDIO_CD_M1F1_ZERO_SIZE: u32 = 8;
237pub const CDIO_CD_ECC_SIZE: u32 = 276;
238pub const CDIO_CD_FRAMESIZE: u32 = 2048;
239pub const CDIO_CD_FRAMESIZE_RAW: u32 = 2352;
240pub const CDIO_CD_FRAMESIZE_RAWER: u32 = 2646;
241pub const CDIO_CD_FRAMESIZE_RAW1: u32 = 2340;
242pub const CDIO_CD_FRAMESIZE_RAW0: u32 = 2336;
243pub const CDIO_CD_XA_HEADER: u32 = 12;
244pub const CDIO_CD_XA_TAIL: u32 = 280;
245pub const CDIO_CD_XA_SYNC_HEADER: u32 = 24;
246pub const M2F2_SECTOR_SIZE: u32 = 2324;
247pub const M2SUB_SECTOR_SIZE: u32 = 2332;
248pub const M2RAW_SECTOR_SIZE: u32 = 2336;
249pub const CDIO_CD_MAX_SESSIONS: u32 = 99;
250pub const CDIO_CD_MIN_SESSION_NO: u32 = 1;
251pub const CDIO_CD_MAX_LSN: u32 = 450150;
252pub const CDIO_CD_MIN_LSN: i32 = -450150;
253pub const CDIO_CD_FRAMES_PER_MIN: u32 = 4500;
254pub const CD_FRAMESIZE_RAW: u32 = 2352;
255pub const MIN_CDTEXT_FIELD: u32 = 0;
256pub const MAX_CDTEXT_FIELDS: u32 = 10;
257pub const CDIO_CD_MIN_TRACK_NO: u32 = 1;
258pub const CDIO_DVD_MAX_LAYERS: u32 = 4;
259pub const MMC_READ_TIMEOUT_DEFAULT: u32 = 180000;
260pub const MMC_TIMEOUT_DEFAULT: u32 = 6000;
261pub const MAX_CDB_LEN: u32 = 12;
262pub const SCSI_MMC_HAS_DIR_NONE: u32 = 1;
263pub const CDIO_MMC_MCSB_ALL_HEADERS: u32 = 15;
264pub const EMPTY_ARRAY_SIZE: u32 = 0;
265pub const ISO_XA_MARKER_STRING: &[u8; 9] = b"CD-XA001\0";
266pub const MIN_TRACK_SIZE: u32 = 300;
267pub const MIN_ISO_SIZE: u32 = 300;
268pub const ISO_MAX_PUBLISHER_ID: u32 = 128;
269pub const ISO_MAX_APPLICATION_ID: u32 = 128;
270pub const ISO_MAX_VOLUME_ID: u32 = 32;
271pub const ISO_MAX_VOLUMESET_ID: u32 = 128;
272pub const ISO_STANDARD_ID: &[u8; 6] = b"CD001\0";
273pub const ISO_ROCK_IRUSR: u32 = 256;
274pub const ISO_ROCK_IWUSR: u32 = 128;
275pub const ISO_ROCK_IXUSR: u32 = 64;
276pub const ISO_ROCK_IRGRP: u32 = 32;
277pub const ISO_ROCK_IWGRP: u32 = 16;
278pub const ISO_ROCK_IXGRP: u32 = 8;
279pub const ISO_ROCK_IROTH: u32 = 4;
280pub const ISO_ROCK_IWOTH: u32 = 2;
281pub const ISO_ROCK_IXOTH: u32 = 1;
282pub const ISO_ROCK_ISUID: u32 = 2048;
283pub const ISO_ROCK_ISGID: u32 = 1024;
284pub const ISO_ROCK_ISVTX: u32 = 512;
285pub const ISO_ROCK_ISSOCK: u32 = 49152;
286pub const ISO_ROCK_ISLNK: u32 = 40960;
287pub const ISO_ROCK_ISREG: u32 = 32768;
288pub const ISO_ROCK_ISBLK: u32 = 24576;
289pub const ISO_ROCK_ISCHR: u32 = 8192;
290pub const ISO_ROCK_ISDIR: u32 = 16384;
291pub const ISO_ROCK_ISFIFO: u32 = 4096;
292pub const ISO_ROCK_ENFMT: u32 = 1024;
293pub const ISO_ROCK_SL_CONTINUE: u32 = 1;
294pub const ISO_ROCK_SL_CURRENT: u32 = 2;
295pub const ISO_ROCK_SL_PARENT: u32 = 4;
296pub const ISO_ROCK_SL_ROOT: u32 = 8;
297pub const ISO_ROCK_NM_CONTINUE: u32 = 1;
298pub const ISO_ROCK_NM_CURRENT: u32 = 2;
299pub const ISO_ROCK_NM_PARENT: u32 = 4;
300pub const ISO_ROCK_TF_CREATE: u32 = 1;
301pub const ISO_ROCK_TF_MODIFY: u32 = 2;
302pub const ISO_ROCK_TF_ACCESS: u32 = 4;
303pub const ISO_ROCK_TF_ATTRIBUTES: u32 = 8;
304pub const ISO_ROCK_TF_BACKUP: u32 = 16;
305pub const ISO_ROCK_TF_EXPIRATION: u32 = 32;
306pub const ISO_ROCK_TF_EFFECTIVE: u32 = 64;
307pub const ISO_ROCK_TF_LONG_FORM: u32 = 128;
308pub const ISO_EXTENSION_ALL: u32 = 255;
309pub const ISO_EXTENSION_NONE: u32 = 0;
310pub const CDIO_ECMA_167_H: u32 = 1;
311pub const UDF_LENGTH_MASK: u32 = 1073741823;
312pub const TIMESTAMP_TYPE_MASK: u32 = 61440;
313pub const TIMESTAMP_TYPE_CUT: u32 = 0;
314pub const TIMESTAMP_TYPE_LOCAL: u32 = 4096;
315pub const TIMESTAMP_TYPE_AGREEMENT: u32 = 8192;
316pub const TIMESTAMP_TIMEZONE_MASK: u32 = 4095;
317pub const ENTITYID_FLAGS_DIRTY: u32 = 0;
318pub const ENTITYID_FLAGS_PROTECTED: u32 = 1;
319pub const VSD_STD_ID_NSR02: &[u8; 6] = b"NSR02\0";
320pub const VSD_STD_ID_BEA01: &[u8; 6] = b"BEA01\0";
321pub const VSD_STD_ID_BOOT2: &[u8; 6] = b"BOOT2\0";
322pub const VSD_STD_ID_CD001: &[u8; 6] = b"CD001\0";
323pub const VSD_STD_ID_CDW02: &[u8; 6] = b"CDW02\0";
324pub const VSD_STD_ID_NSR03: &[u8; 6] = b"NSR03\0";
325pub const VSD_STD_ID_TEA01: &[u8; 6] = b"TEA01\0";
326pub const BOOT_FLAGS_ERASE: u32 = 1;
327pub const PVD_FLAGS_VSID_COMMON: u32 = 1;
328pub const PD_PARTITION_FLAGS_ALLOC: u32 = 1;
329pub const PD_PARTITION_CONTENTS_NSR02: &[u8; 7] = b"+NSR02\0";
330pub const PD_PARTITION_CONTENTS_FDC01: &[u8; 7] = b"+FDC01\0";
331pub const PD_PARTITION_CONTENTS_CD001: &[u8; 7] = b"+CD001\0";
332pub const PD_PARTITION_CONTENTS_CDW02: &[u8; 7] = b"+CDW02\0";
333pub const PD_PARTITION_CONTENTS_NSR03: &[u8; 7] = b"+NSR03\0";
334pub const PD_ACCESS_TYPE_NONE: u32 = 0;
335pub const PD_ACCESS_TYPE_READ_ONLY: u32 = 1;
336pub const PD_ACCESS_TYPE_WRITE_ONCE: u32 = 2;
337pub const PD_ACCESS_TYPE_REWRITABLE: u32 = 3;
338pub const PD_ACCESS_TYPE_OVERWRITABLE: u32 = 4;
339pub const GP_PARTITION_MAP_TYPE_UNDEF: u32 = 0;
340pub const GP_PARTIITON_MAP_TYPE_1: u32 = 1;
341pub const GP_PARTITION_MAP_TYPE_2: u32 = 2;
342pub const LVID_INTEGRITY_TYPE_OPEN: u32 = 0;
343pub const LVID_INTEGRITY_TYPE_CLOSE: u32 = 1;
344pub const UDF_ICB_TAG_FLAGS_SETUID: u32 = 64;
345pub const UDF_ICB_TAG_FLAGS_SETGID: u32 = 128;
346pub const UDF_ICB_TAG_FLAGS_STICKY: u32 = 256;
347pub const ICBTAG_STRATEGY_TYPE_UNDEF: u32 = 0;
348pub const ICBTAG_STRATEGY_TYPE_1: u32 = 1;
349pub const ICBTAG_STRATEGY_TYPE_2: u32 = 2;
350pub const ICBTAG_STRATEGY_TYPE_3: u32 = 3;
351pub const ICBTAG_STRATEGY_TYPE_4: u32 = 4;
352pub const UDF_FENTRY_SIZE: u32 = 176;
353pub const UDF_FENTRY_PERM_USER_MASK: u32 = 7;
354pub const UDF_FENTRY_PERM_GRP_MASK: u32 = 224;
355pub const UDF_FENTRY_PERM_OWNER_MASK: u32 = 7168;
356pub const FE_PERM_O_EXEC: u32 = 1;
357pub const FE_PERM_O_WRITE: u32 = 2;
358pub const FE_PERM_O_READ: u32 = 4;
359pub const FE_PERM_O_CHATTR: u32 = 8;
360pub const FE_PERM_O_DELETE: u32 = 16;
361pub const FE_PERM_G_EXEC: u32 = 32;
362pub const FE_PERM_G_WRITE: u32 = 64;
363pub const FE_PERM_G_READ: u32 = 128;
364pub const FE_PERM_G_CHATTR: u32 = 256;
365pub const FE_PERM_G_DELETE: u32 = 512;
366pub const FE_PERM_U_EXEC: u32 = 1024;
367pub const FE_PERM_U_WRITE: u32 = 2048;
368pub const FE_PERM_U_READ: u32 = 4096;
369pub const FE_PERM_U_CHATTR: u32 = 8192;
370pub const FE_PERM_U_DELETE: u32 = 16384;
371pub const FE_RECORD_FMT_UNDEF: u32 = 0;
372pub const FE_RECORD_FMT_FIXED_PAD: u32 = 1;
373pub const FE_RECORD_FMT_FIXED: u32 = 2;
374pub const FE_RECORD_FMT_VARIABLE8: u32 = 3;
375pub const FE_RECORD_FMT_VARIABLE16: u32 = 4;
376pub const FE_RECORD_FMT_VARIABLE16_MSB: u32 = 5;
377pub const FE_RECORD_FMT_VARIABLE32: u32 = 6;
378pub const FE_RECORD_FMT_PRINT: u32 = 7;
379pub const FE_RECORD_FMT_LF: u32 = 8;
380pub const FE_RECORD_FMT_CR: u32 = 9;
381pub const FE_RECORD_FMT_CRLF: u32 = 10;
382pub const FE_RECORD_FMT_LFCR: u32 = 11;
383pub const FE_RECORD_DISPLAY_ATTR_UNDEF: u32 = 0;
384pub const FE_RECORD_DISPLAY_ATTR_1: u32 = 1;
385pub const FE_RECORD_DISPLAY_ATTR_2: u32 = 2;
386pub const FE_RECORD_DISPLAY_ATTR_3: u32 = 3;
387pub const FTE_CREATION: u32 = 1;
388pub const FTE_DELETION: u32 = 4;
389pub const FTE_EFFECTIVE: u32 = 8;
390pub const FTE_BACKUP: u32 = 2;
391pub const EXTATTR_CHAR_SET: u32 = 1;
392pub const EXTATTR_ALT_PERMS: u32 = 3;
393pub const EXTATTR_FILE_TIMES: u32 = 5;
394pub const EXTATTR_INFO_TIMES: u32 = 6;
395pub const EXTATTR_DEV_SPEC: u32 = 12;
396pub const EXTATTR_IMP_USE: u32 = 2048;
397pub const EXTATTR_APP_USE: u32 = 65536;
398pub const EXT_RECORDED_ALLOCATED: u32 = 0;
399pub const EXT_NOT_RECORDED_ALLOCATED: u32 = 1073741824;
400pub const EXT_NOT_RECORDED_NOT_ALLOCATED: u32 = 2147483648;
401pub const EXT_NEXT_EXTENT_ALLOCDECS: u32 = 3221225472;
402pub const CDDA_TEST_ALWAYS_JITTER: u32 = 4;
403pub const CDDA_TEST_FRAG_SMALL: u32 = 8;
404pub const CDDA_TEST_FRAG_LARGE: u32 = 16;
405pub const CDDA_TEST_FRAG_MASSIVE: u32 = 24;
406pub const CDDA_TEST_UNDERRUN: u32 = 64;
407pub const CD_FRAMEWORDS: u32 = 1176;
408unsafe extern "C" {
409    pub static mut cdio_version_string: *const ::std::os::raw::c_char;
410}
411unsafe extern "C" {
412    pub static libcdio_version_num: ::std::os::raw::c_uint;
413}
414pub type __mode_t = ::std::os::raw::c_uint;
415pub type __off_t = ::std::os::raw::c_long;
416pub type __time_t = ::std::os::raw::c_long;
417pub type __syscall_slong_t = ::std::os::raw::c_long;
418pub type mode_t = __mode_t;
419pub type off_t = __off_t;
420pub type time_t = __time_t;
421#[repr(C)]
422#[derive(Debug, Copy, Clone)]
423pub struct timespec {
424    pub tv_sec: __time_t,
425    pub tv_nsec: __syscall_slong_t,
426}
427#[allow(clippy::unnecessary_operation, clippy::identity_op)]
428const _: () = {
429    ["Size of timespec"][::std::mem::size_of::<timespec>() - 16usize];
430    ["Alignment of timespec"][::std::mem::align_of::<timespec>() - 8usize];
431    ["Offset of field: timespec::tv_sec"][::std::mem::offset_of!(timespec, tv_sec) - 0usize];
432    ["Offset of field: timespec::tv_nsec"][::std::mem::offset_of!(timespec, tv_nsec) - 8usize];
433};
434pub type ubyte = u8;
435#[repr(C, packed)]
436#[derive(Debug, Copy, Clone)]
437pub struct msf_s {
438    pub m: u8,
439    pub s: u8,
440    pub f: u8,
441}
442#[allow(clippy::unnecessary_operation, clippy::identity_op)]
443const _: () = {
444    ["Size of msf_s"][::std::mem::size_of::<msf_s>() - 3usize];
445    ["Alignment of msf_s"][::std::mem::align_of::<msf_s>() - 1usize];
446    ["Offset of field: msf_s::m"][::std::mem::offset_of!(msf_s, m) - 0usize];
447    ["Offset of field: msf_s::s"][::std::mem::offset_of!(msf_s, s) - 1usize];
448    ["Offset of field: msf_s::f"][::std::mem::offset_of!(msf_s, f) - 2usize];
449};
450pub type msf_t = msf_s;
451pub type cdio_utf8_t = ::std::os::raw::c_char;
452pub const bool_3way_t_nope: bool_3way_t = 0;
453pub const bool_3way_t_yep: bool_3way_t = 1;
454pub const bool_3way_t_dunno: bool_3way_t = 2;
455pub type bool_3way_t = ::std::os::raw::c_uint;
456pub type bitfield_t = ::std::os::raw::c_uint;
457pub type lba_t = i32;
458pub type lsn_t = i32;
459#[repr(C)]
460#[derive(Copy, Clone)]
461pub union cdio_cdrom_addr {
462    pub msf: msf_t,
463    pub lba: lba_t,
464}
465#[allow(clippy::unnecessary_operation, clippy::identity_op)]
466const _: () = {
467    ["Size of cdio_cdrom_addr"][::std::mem::size_of::<cdio_cdrom_addr>() - 4usize];
468    ["Alignment of cdio_cdrom_addr"][::std::mem::align_of::<cdio_cdrom_addr>() - 4usize];
469    ["Offset of field: cdio_cdrom_addr::msf"]
470        [::std::mem::offset_of!(cdio_cdrom_addr, msf) - 0usize];
471    ["Offset of field: cdio_cdrom_addr::lba"]
472        [::std::mem::offset_of!(cdio_cdrom_addr, lba) - 0usize];
473};
474pub type track_t = u8;
475pub type session_t = u8;
476pub type cdio_mcn_t = [::std::os::raw::c_char; 14usize];
477pub type cdio_isrc_t = [::std::os::raw::c_char; 13usize];
478pub type cdio_fs_anal_t = ::std::os::raw::c_int;
479pub const cdio_track_flag_CDIO_TRACK_FLAG_NONE: cdio_track_flag = 0;
480pub const cdio_track_flag_CDIO_TRACK_FLAG_PRE_EMPHASIS: cdio_track_flag = 1;
481pub const cdio_track_flag_CDIO_TRACK_FLAG_COPY_PERMITTED: cdio_track_flag = 2;
482pub const cdio_track_flag_CDIO_TRACK_FLAG_DATA: cdio_track_flag = 4;
483pub const cdio_track_flag_CDIO_TRACK_FLAG_FOUR_CHANNEL_AUDIO: cdio_track_flag = 8;
484pub const cdio_track_flag_CDIO_TRACK_FLAG_SCMS: cdio_track_flag = 16;
485pub type cdio_track_flag = ::std::os::raw::c_uint;
486pub type CdioDataFree_t =
487    ::std::option::Option<unsafe extern "C" fn(ptr: *mut ::std::os::raw::c_void)>;
488pub const cdio_subchannel_CDIO_SUBCHANNEL_SUBQ_DATA: cdio_subchannel = 0;
489pub const cdio_subchannel_CDIO_SUBCHANNEL_CURRENT_POSITION: cdio_subchannel = 1;
490pub const cdio_subchannel_CDIO_SUBCHANNEL_MEDIA_CATALOG: cdio_subchannel = 2;
491pub const cdio_subchannel_CDIO_SUBCHANNEL_TRACK_ISRC: cdio_subchannel = 3;
492pub type cdio_subchannel = ::std::os::raw::c_uint;
493pub const flag_t_NONE: flag_t = 0;
494pub const flag_t_PRE_EMPHASIS: flag_t = 1;
495pub const flag_t_COPY_PERMITTED: flag_t = 2;
496pub const flag_t_DATA: flag_t = 4;
497pub const flag_t_FOUR_CHANNEL_AUDIO: flag_t = 8;
498pub const flag_t_SCMS: flag_t = 16;
499pub type flag_t = ::std::os::raw::c_uint;
500pub const cdio_cd_enums_CDIO_CD_MINS: cdio_cd_enums = 74;
501pub const cdio_cd_enums_CDIO_CD_SECS_PER_MIN: cdio_cd_enums = 60;
502pub const cdio_cd_enums_CDIO_CD_FRAMES_PER_SEC: cdio_cd_enums = 75;
503pub const cdio_cd_enums_CDIO_CD_SYNC_SIZE: cdio_cd_enums = 12;
504pub const cdio_cd_enums_CDIO_CD_CHUNK_SIZE: cdio_cd_enums = 24;
505pub const cdio_cd_enums_CDIO_CD_NUM_OF_CHUNKS: cdio_cd_enums = 98;
506pub const cdio_cd_enums_CDIO_CD_FRAMESIZE_SUB: cdio_cd_enums = 96;
507pub const cdio_cd_enums_CDIO_CD_HEADER_SIZE: cdio_cd_enums = 4;
508pub const cdio_cd_enums_CDIO_CD_SUBHEADER_SIZE: cdio_cd_enums = 8;
509pub const cdio_cd_enums_CDIO_CD_ECC_SIZE: cdio_cd_enums = 276;
510pub const cdio_cd_enums_CDIO_CD_FRAMESIZE: cdio_cd_enums = 2048;
511pub const cdio_cd_enums_CDIO_CD_FRAMESIZE_RAW: cdio_cd_enums = 2352;
512pub const cdio_cd_enums_CDIO_CD_FRAMESIZE_RAWER: cdio_cd_enums = 2646;
513pub const cdio_cd_enums_CDIO_CD_FRAMESIZE_RAW1: cdio_cd_enums = 2340;
514pub const cdio_cd_enums_CDIO_CD_FRAMESIZE_RAW0: cdio_cd_enums = 2336;
515pub const cdio_cd_enums_CDIO_CD_MAX_SESSIONS: cdio_cd_enums = 99;
516pub const cdio_cd_enums_CDIO_CD_MIN_SESSION_NO: cdio_cd_enums = 1;
517pub const cdio_cd_enums_CDIO_CD_MAX_LSN: cdio_cd_enums = 450150;
518pub const cdio_cd_enums_CDIO_CD_MIN_LSN: cdio_cd_enums = -450150;
519pub type cdio_cd_enums = ::std::os::raw::c_int;
520unsafe extern "C" {
521    pub static mut cdio_cd_enums: cdio_cd_enums;
522}
523unsafe extern "C" {
524    pub static CDIO_SECTOR_SYNC_HEADER: [u8; 12usize];
525}
526pub const m2_sector_enums_M2F2_SECTOR_SIZE: m2_sector_enums = 2324;
527pub const m2_sector_enums_M2SUB_SECTOR_SIZE: m2_sector_enums = 2332;
528pub const m2_sector_enums_M2RAW_SECTOR_SIZE: m2_sector_enums = 2336;
529pub type m2_sector_enums = ::std::os::raw::c_uint;
530unsafe extern "C" {
531    pub static mut m2_sector_enums: m2_sector_enums;
532}
533pub const cdio_cd_minutes_sectors_CDIO_CD_74MIN_SECTORS: cdio_cd_minutes_sectors = 333000;
534pub const cdio_cd_minutes_sectors_CDIO_CD_80MIN_SECTORS: cdio_cd_minutes_sectors = 360000;
535pub const cdio_cd_minutes_sectors_CDIO_CD_90MIN_SECTORS: cdio_cd_minutes_sectors = 405000;
536pub const cdio_cd_minutes_sectors_CDIO_CD_MAX_SECTORS: cdio_cd_minutes_sectors = 449850;
537pub type cdio_cd_minutes_sectors = ::std::os::raw::c_uint;
538unsafe extern "C" {
539    pub fn cdio_lba_to_msf_str(i_lba: lba_t) -> *mut ::std::os::raw::c_char;
540}
541unsafe extern "C" {
542    pub fn cdio_msf_to_str(p_msf: *const msf_t) -> *mut ::std::os::raw::c_char;
543}
544unsafe extern "C" {
545    pub fn cdio_lba_to_lsn(i_lba: lba_t) -> lba_t;
546}
547unsafe extern "C" {
548    pub fn cdio_lba_to_msf(i_lba: lba_t, p_msf: *mut msf_t);
549}
550unsafe extern "C" {
551    pub fn cdio_lsn_to_lba(i_lsn: lsn_t) -> lba_t;
552}
553unsafe extern "C" {
554    pub fn cdio_lsn_to_msf(i_lsn: lsn_t, p_msf: *mut msf_t);
555}
556unsafe extern "C" {
557    pub fn cdio_msf_to_lba(p_msf: *const msf_t) -> lba_t;
558}
559unsafe extern "C" {
560    pub fn cdio_msf_to_lsn(p_msf: *const msf_t) -> lsn_t;
561}
562unsafe extern "C" {
563    pub fn cdio_msf3_to_lba(
564        minutes: ::std::os::raw::c_uint,
565        seconds: ::std::os::raw::c_uint,
566        frames: ::std::os::raw::c_uint,
567    ) -> lba_t;
568}
569unsafe extern "C" {
570    pub fn cdio_mmssff_to_lba(psz_mmssff: *const ::std::os::raw::c_char) -> lba_t;
571}
572#[repr(C)]
573#[derive(Debug, Copy, Clone)]
574pub struct _CdIo {
575    _unused: [u8; 0],
576}
577pub type CdIo_t = _CdIo;
578pub type cdio_drive_read_cap_t = u32;
579pub type cdio_drive_write_cap_t = u32;
580pub type cdio_drive_misc_cap_t = u32;
581pub const cdio_drive_cap_misc_t_CDIO_DRIVE_CAP_ERROR: cdio_drive_cap_misc_t = 262144;
582pub const cdio_drive_cap_misc_t_CDIO_DRIVE_CAP_UNKNOWN: cdio_drive_cap_misc_t = 524288;
583pub const cdio_drive_cap_misc_t_CDIO_DRIVE_CAP_MISC_CLOSE_TRAY: cdio_drive_cap_misc_t = 1;
584pub const cdio_drive_cap_misc_t_CDIO_DRIVE_CAP_MISC_EJECT: cdio_drive_cap_misc_t = 2;
585pub const cdio_drive_cap_misc_t_CDIO_DRIVE_CAP_MISC_LOCK: cdio_drive_cap_misc_t = 4;
586pub const cdio_drive_cap_misc_t_CDIO_DRIVE_CAP_MISC_SELECT_SPEED: cdio_drive_cap_misc_t = 8;
587pub const cdio_drive_cap_misc_t_CDIO_DRIVE_CAP_MISC_SELECT_DISC: cdio_drive_cap_misc_t = 16;
588pub const cdio_drive_cap_misc_t_CDIO_DRIVE_CAP_MISC_MULTI_SESSION: cdio_drive_cap_misc_t = 32;
589pub const cdio_drive_cap_misc_t_CDIO_DRIVE_CAP_MISC_MEDIA_CHANGED: cdio_drive_cap_misc_t = 128;
590pub const cdio_drive_cap_misc_t_CDIO_DRIVE_CAP_MISC_RESET: cdio_drive_cap_misc_t = 256;
591pub const cdio_drive_cap_misc_t_CDIO_DRIVE_CAP_MISC_FILE: cdio_drive_cap_misc_t = 131072;
592pub type cdio_drive_cap_misc_t = ::std::os::raw::c_uint;
593pub const cdio_drive_cap_read_t_CDIO_DRIVE_CAP_READ_AUDIO: cdio_drive_cap_read_t = 1;
594pub const cdio_drive_cap_read_t_CDIO_DRIVE_CAP_READ_CD_DA: cdio_drive_cap_read_t = 2;
595pub const cdio_drive_cap_read_t_CDIO_DRIVE_CAP_READ_CD_G: cdio_drive_cap_read_t = 4;
596pub const cdio_drive_cap_read_t_CDIO_DRIVE_CAP_READ_CD_R: cdio_drive_cap_read_t = 8;
597pub const cdio_drive_cap_read_t_CDIO_DRIVE_CAP_READ_CD_RW: cdio_drive_cap_read_t = 16;
598pub const cdio_drive_cap_read_t_CDIO_DRIVE_CAP_READ_DVD_R: cdio_drive_cap_read_t = 32;
599pub const cdio_drive_cap_read_t_CDIO_DRIVE_CAP_READ_DVD_PR: cdio_drive_cap_read_t = 64;
600pub const cdio_drive_cap_read_t_CDIO_DRIVE_CAP_READ_DVD_RAM: cdio_drive_cap_read_t = 128;
601pub const cdio_drive_cap_read_t_CDIO_DRIVE_CAP_READ_DVD_ROM: cdio_drive_cap_read_t = 256;
602pub const cdio_drive_cap_read_t_CDIO_DRIVE_CAP_READ_DVD_RW: cdio_drive_cap_read_t = 512;
603pub const cdio_drive_cap_read_t_CDIO_DRIVE_CAP_READ_DVD_RPW: cdio_drive_cap_read_t = 1024;
604pub const cdio_drive_cap_read_t_CDIO_DRIVE_CAP_READ_C2_ERRS: cdio_drive_cap_read_t = 2048;
605pub const cdio_drive_cap_read_t_CDIO_DRIVE_CAP_READ_MODE2_FORM1: cdio_drive_cap_read_t = 4096;
606pub const cdio_drive_cap_read_t_CDIO_DRIVE_CAP_READ_MODE2_FORM2: cdio_drive_cap_read_t = 8192;
607pub const cdio_drive_cap_read_t_CDIO_DRIVE_CAP_READ_MCN: cdio_drive_cap_read_t = 16384;
608pub const cdio_drive_cap_read_t_CDIO_DRIVE_CAP_READ_ISRC: cdio_drive_cap_read_t = 32768;
609pub type cdio_drive_cap_read_t = ::std::os::raw::c_uint;
610pub const cdio_drive_cap_write_t_CDIO_DRIVE_CAP_WRITE_CD_R: cdio_drive_cap_write_t = 1;
611pub const cdio_drive_cap_write_t_CDIO_DRIVE_CAP_WRITE_CD_RW: cdio_drive_cap_write_t = 2;
612pub const cdio_drive_cap_write_t_CDIO_DRIVE_CAP_WRITE_DVD_R: cdio_drive_cap_write_t = 4;
613pub const cdio_drive_cap_write_t_CDIO_DRIVE_CAP_WRITE_DVD_PR: cdio_drive_cap_write_t = 8;
614pub const cdio_drive_cap_write_t_CDIO_DRIVE_CAP_WRITE_DVD_RAM: cdio_drive_cap_write_t = 16;
615pub const cdio_drive_cap_write_t_CDIO_DRIVE_CAP_WRITE_DVD_RW: cdio_drive_cap_write_t = 32;
616pub const cdio_drive_cap_write_t_CDIO_DRIVE_CAP_WRITE_DVD_RPW: cdio_drive_cap_write_t = 64;
617pub const cdio_drive_cap_write_t_CDIO_DRIVE_CAP_WRITE_MT_RAINIER: cdio_drive_cap_write_t = 128;
618pub const cdio_drive_cap_write_t_CDIO_DRIVE_CAP_WRITE_BURN_PROOF: cdio_drive_cap_write_t = 256;
619pub const cdio_drive_cap_write_t_CDIO_DRIVE_CAP_WRITE_CD: cdio_drive_cap_write_t = 3;
620pub const cdio_drive_cap_write_t_CDIO_DRIVE_CAP_WRITE_DVD: cdio_drive_cap_write_t = 124;
621pub const cdio_drive_cap_write_t_CDIO_DRIVE_CAP_WRITE: cdio_drive_cap_write_t = 127;
622pub type cdio_drive_cap_write_t = ::std::os::raw::c_uint;
623pub const cdio_mmc_hw_len_t_CDIO_MMC_HW_VENDOR_LEN: cdio_mmc_hw_len_t = 8;
624pub const cdio_mmc_hw_len_t_CDIO_MMC_HW_MODEL_LEN: cdio_mmc_hw_len_t = 16;
625pub const cdio_mmc_hw_len_t_CDIO_MMC_HW_REVISION_LEN: cdio_mmc_hw_len_t = 4;
626pub type cdio_mmc_hw_len_t = ::std::os::raw::c_uint;
627#[repr(C)]
628#[derive(Debug, Copy, Clone)]
629pub struct cdio_hwinfo {
630    pub psz_vendor: [::std::os::raw::c_char; 9usize],
631    pub psz_model: [::std::os::raw::c_char; 17usize],
632    pub psz_revision: [::std::os::raw::c_char; 5usize],
633}
634#[allow(clippy::unnecessary_operation, clippy::identity_op)]
635const _: () = {
636    ["Size of cdio_hwinfo"][::std::mem::size_of::<cdio_hwinfo>() - 31usize];
637    ["Alignment of cdio_hwinfo"][::std::mem::align_of::<cdio_hwinfo>() - 1usize];
638    ["Offset of field: cdio_hwinfo::psz_vendor"]
639        [::std::mem::offset_of!(cdio_hwinfo, psz_vendor) - 0usize];
640    ["Offset of field: cdio_hwinfo::psz_model"]
641        [::std::mem::offset_of!(cdio_hwinfo, psz_model) - 9usize];
642    ["Offset of field: cdio_hwinfo::psz_revision"]
643        [::std::mem::offset_of!(cdio_hwinfo, psz_revision) - 26usize];
644};
645pub type cdio_hwinfo_t = cdio_hwinfo;
646pub const cdio_src_category_mask_t_CDIO_SRC_IS_DISK_IMAGE_MASK: cdio_src_category_mask_t = 1;
647pub const cdio_src_category_mask_t_CDIO_SRC_IS_DEVICE_MASK: cdio_src_category_mask_t = 2;
648pub const cdio_src_category_mask_t_CDIO_SRC_IS_SCSI_MASK: cdio_src_category_mask_t = 4;
649pub const cdio_src_category_mask_t_CDIO_SRC_IS_NATIVE_MASK: cdio_src_category_mask_t = 8;
650pub type cdio_src_category_mask_t = ::std::os::raw::c_uint;
651pub const driver_id_t_DRIVER_UNKNOWN: driver_id_t = 0;
652pub const driver_id_t_DRIVER_AIX: driver_id_t = 1;
653pub const driver_id_t_DRIVER_FREEBSD: driver_id_t = 2;
654pub const driver_id_t_DRIVER_NETBSD: driver_id_t = 3;
655pub const driver_id_t_DRIVER_LINUX: driver_id_t = 4;
656pub const driver_id_t_DRIVER_SOLARIS: driver_id_t = 5;
657pub const driver_id_t_DRIVER_OSX: driver_id_t = 6;
658pub const driver_id_t_DRIVER_WIN32: driver_id_t = 7;
659pub const driver_id_t_DRIVER_CDRDAO: driver_id_t = 8;
660pub const driver_id_t_DRIVER_BINCUE: driver_id_t = 9;
661pub const driver_id_t_DRIVER_NRG: driver_id_t = 10;
662pub const driver_id_t_DRIVER_DEVICE: driver_id_t = 11;
663pub type driver_id_t = ::std::os::raw::c_uint;
664unsafe extern "C" {
665    pub static cdio_drivers: [driver_id_t; 0usize];
666}
667unsafe extern "C" {
668    pub static cdio_device_drivers: [driver_id_t; 0usize];
669}
670unsafe extern "C" {
671    pub static cdio_os_driver: driver_id_t;
672}
673pub const driver_return_code_t_DRIVER_OP_SUCCESS: driver_return_code_t = 0;
674pub const driver_return_code_t_DRIVER_OP_ERROR: driver_return_code_t = -1;
675pub const driver_return_code_t_DRIVER_OP_UNSUPPORTED: driver_return_code_t = -2;
676pub const driver_return_code_t_DRIVER_OP_UNINIT: driver_return_code_t = -3;
677pub const driver_return_code_t_DRIVER_OP_NOT_PERMITTED: driver_return_code_t = -4;
678pub const driver_return_code_t_DRIVER_OP_BAD_PARAMETER: driver_return_code_t = -5;
679pub const driver_return_code_t_DRIVER_OP_BAD_POINTER: driver_return_code_t = -6;
680pub const driver_return_code_t_DRIVER_OP_NO_DRIVER: driver_return_code_t = -7;
681pub const driver_return_code_t_DRIVER_OP_MMC_SENSE_DATA: driver_return_code_t = -8;
682pub type driver_return_code_t = ::std::os::raw::c_int;
683unsafe extern "C" {
684    pub fn cdio_close_tray(
685        psz_drive: *const ::std::os::raw::c_char,
686        p_driver_id: *mut driver_id_t,
687    ) -> driver_return_code_t;
688}
689unsafe extern "C" {
690    pub fn cdio_driver_errmsg(drc: driver_return_code_t) -> *const ::std::os::raw::c_char;
691}
692unsafe extern "C" {
693    pub fn cdio_eject_media(p_cdio: *mut *mut CdIo_t) -> driver_return_code_t;
694}
695unsafe extern "C" {
696    pub fn cdio_eject_media_drive(psz_drive: *const ::std::os::raw::c_char)
697    -> driver_return_code_t;
698}
699unsafe extern "C" {
700    pub fn cdio_free_device_list(device_list: *mut *mut ::std::os::raw::c_char);
701}
702unsafe extern "C" {
703    pub fn cdio_get_default_device(p_cdio: *const CdIo_t) -> *mut ::std::os::raw::c_char;
704}
705unsafe extern "C" {
706    pub fn cdio_get_default_device_driver(
707        p_driver_id: *mut driver_id_t,
708    ) -> *mut ::std::os::raw::c_char;
709}
710unsafe extern "C" {
711    pub fn cdio_get_devices(driver_id: driver_id_t) -> *mut *mut ::std::os::raw::c_char;
712}
713unsafe extern "C" {
714    pub fn cdio_get_devices_with_cap(
715        ppsz_search_devices: *mut *mut ::std::os::raw::c_char,
716        capabilities: cdio_fs_anal_t,
717        b_any: ::std::os::raw::c_uchar,
718    ) -> *mut *mut ::std::os::raw::c_char;
719}
720unsafe extern "C" {
721    pub fn cdio_get_devices_with_cap_ret(
722        ppsz_search_devices: *mut *mut ::std::os::raw::c_char,
723        capabilities: cdio_fs_anal_t,
724        b_any: ::std::os::raw::c_uchar,
725        p_driver_id: *mut driver_id_t,
726    ) -> *mut *mut ::std::os::raw::c_char;
727}
728unsafe extern "C" {
729    pub fn cdio_get_devices_ret(p_driver_id: *mut driver_id_t) -> *mut *mut ::std::os::raw::c_char;
730}
731unsafe extern "C" {
732    pub fn cdio_get_drive_cap(
733        p_cdio: *const CdIo_t,
734        p_read_cap: *mut cdio_drive_read_cap_t,
735        p_write_cap: *mut cdio_drive_write_cap_t,
736        p_misc_cap: *mut cdio_drive_misc_cap_t,
737    );
738}
739unsafe extern "C" {
740    pub fn cdio_get_drive_cap_dev(
741        device: *const ::std::os::raw::c_char,
742        p_read_cap: *mut cdio_drive_read_cap_t,
743        p_write_cap: *mut cdio_drive_write_cap_t,
744        p_misc_cap: *mut cdio_drive_misc_cap_t,
745    );
746}
747unsafe extern "C" {
748    pub fn cdio_get_driver_name(p_cdio: *const CdIo_t) -> *const ::std::os::raw::c_char;
749}
750unsafe extern "C" {
751    pub fn cdio_get_driver_name_from_id(driver_id: driver_id_t) -> *const ::std::os::raw::c_char;
752}
753unsafe extern "C" {
754    pub fn cdio_get_driver_id(p_cdio: *const CdIo_t) -> driver_id_t;
755}
756unsafe extern "C" {
757    pub fn cdio_get_hwinfo(
758        p_cdio: *const CdIo_t,
759        p_hw_info: *mut cdio_hwinfo_t,
760    ) -> ::std::os::raw::c_uchar;
761}
762unsafe extern "C" {
763    pub fn cdio_get_last_session(
764        p_cdio: *mut CdIo_t,
765        i_last_session: *mut lsn_t,
766    ) -> driver_return_code_t;
767}
768unsafe extern "C" {
769    pub fn cdio_get_media_changed(p_cdio: *mut CdIo_t) -> ::std::os::raw::c_int;
770}
771unsafe extern "C" {
772    pub fn cdio_have_atapi(p_cdio: *mut CdIo_t) -> bool_3way_t;
773}
774unsafe extern "C" {
775    pub fn cdio_have_driver(driver_id: driver_id_t) -> ::std::os::raw::c_uchar;
776}
777unsafe extern "C" {
778    pub fn cdio_destroy(p_cdio: *mut CdIo_t);
779}
780unsafe extern "C" {
781    pub fn cdio_driver_describe(driver_id: driver_id_t) -> *const ::std::os::raw::c_char;
782}
783unsafe extern "C" {
784    pub fn cdio_open(
785        psz_source: *const ::std::os::raw::c_char,
786        driver_id: driver_id_t,
787    ) -> *mut CdIo_t;
788}
789unsafe extern "C" {
790    pub fn cdio_open_am(
791        psz_source: *const ::std::os::raw::c_char,
792        driver_id: driver_id_t,
793        psz_access_mode: *const ::std::os::raw::c_char,
794    ) -> *mut CdIo_t;
795}
796unsafe extern "C" {
797    pub fn cdio_open_bincue(psz_cue_name: *const ::std::os::raw::c_char) -> *mut CdIo_t;
798}
799unsafe extern "C" {
800    pub fn cdio_open_am_bincue(
801        psz_cue_name: *const ::std::os::raw::c_char,
802        psz_access_mode: *const ::std::os::raw::c_char,
803    ) -> *mut CdIo_t;
804}
805unsafe extern "C" {
806    pub fn cdio_open_cdrdao(psz_toc_name: *const ::std::os::raw::c_char) -> *mut CdIo_t;
807}
808unsafe extern "C" {
809    pub fn cdio_open_am_cdrdao(
810        psz_toc_name: *const ::std::os::raw::c_char,
811        psz_access_mode: *const ::std::os::raw::c_char,
812    ) -> *mut CdIo_t;
813}
814unsafe extern "C" {
815    pub fn cdio_get_default_device_bincue() -> *mut ::std::os::raw::c_char;
816}
817unsafe extern "C" {
818    pub fn cdio_get_devices_bincue() -> *mut *mut ::std::os::raw::c_char;
819}
820unsafe extern "C" {
821    pub fn cdio_get_default_device_cdrdao() -> *mut ::std::os::raw::c_char;
822}
823unsafe extern "C" {
824    pub fn cdio_get_devices_cdrdao() -> *mut *mut ::std::os::raw::c_char;
825}
826unsafe extern "C" {
827    pub fn cdio_open_cd(device_name: *const ::std::os::raw::c_char) -> *mut CdIo_t;
828}
829unsafe extern "C" {
830    pub fn cdio_open_am_cd(
831        psz_device: *const ::std::os::raw::c_char,
832        psz_access_mode: *const ::std::os::raw::c_char,
833    ) -> *mut CdIo_t;
834}
835unsafe extern "C" {
836    pub fn cdio_open_cue(cue_name: *const ::std::os::raw::c_char) -> *mut CdIo_t;
837}
838unsafe extern "C" {
839    pub fn cdio_open_am_aix(
840        psz_source: *const ::std::os::raw::c_char,
841        psz_access_mode: *const ::std::os::raw::c_char,
842    ) -> *mut CdIo_t;
843}
844unsafe extern "C" {
845    pub fn cdio_open_aix(psz_source: *const ::std::os::raw::c_char) -> *mut CdIo_t;
846}
847unsafe extern "C" {
848    pub fn cdio_get_default_device_aix() -> *mut ::std::os::raw::c_char;
849}
850unsafe extern "C" {
851    pub fn cdio_get_devices_aix() -> *mut *mut ::std::os::raw::c_char;
852}
853unsafe extern "C" {
854    pub fn cdio_open_freebsd(paz_psz_source: *const ::std::os::raw::c_char) -> *mut CdIo_t;
855}
856unsafe extern "C" {
857    pub fn cdio_open_am_freebsd(
858        psz_source: *const ::std::os::raw::c_char,
859        psz_access_mode: *const ::std::os::raw::c_char,
860    ) -> *mut CdIo_t;
861}
862unsafe extern "C" {
863    pub fn cdio_get_default_device_freebsd() -> *mut ::std::os::raw::c_char;
864}
865unsafe extern "C" {
866    pub fn cdio_get_devices_freebsd() -> *mut *mut ::std::os::raw::c_char;
867}
868unsafe extern "C" {
869    pub fn cdio_open_linux(psz_source: *const ::std::os::raw::c_char) -> *mut CdIo_t;
870}
871unsafe extern "C" {
872    pub fn cdio_open_am_linux(
873        psz_source: *const ::std::os::raw::c_char,
874        access_mode: *const ::std::os::raw::c_char,
875    ) -> *mut CdIo_t;
876}
877unsafe extern "C" {
878    pub fn cdio_get_default_device_linux() -> *mut ::std::os::raw::c_char;
879}
880unsafe extern "C" {
881    pub fn cdio_get_devices_linux() -> *mut *mut ::std::os::raw::c_char;
882}
883unsafe extern "C" {
884    pub fn cdio_open_solaris(psz_source: *const ::std::os::raw::c_char) -> *mut CdIo_t;
885}
886unsafe extern "C" {
887    pub fn cdio_open_am_solaris(
888        psz_source: *const ::std::os::raw::c_char,
889        psz_access_mode: *const ::std::os::raw::c_char,
890    ) -> *mut CdIo_t;
891}
892unsafe extern "C" {
893    pub fn cdio_get_default_device_solaris() -> *mut ::std::os::raw::c_char;
894}
895unsafe extern "C" {
896    pub fn cdio_get_devices_solaris() -> *mut *mut ::std::os::raw::c_char;
897}
898unsafe extern "C" {
899    pub fn cdio_open_osx(psz_source: *const ::std::os::raw::c_char) -> *mut CdIo_t;
900}
901unsafe extern "C" {
902    pub fn cdio_open_am_osx(
903        psz_source: *const ::std::os::raw::c_char,
904        psz_access_mode: *const ::std::os::raw::c_char,
905    ) -> *mut CdIo_t;
906}
907unsafe extern "C" {
908    pub fn cdio_get_default_device_osx() -> *mut ::std::os::raw::c_char;
909}
910unsafe extern "C" {
911    pub fn cdio_get_devices_osx() -> *mut *mut ::std::os::raw::c_char;
912}
913unsafe extern "C" {
914    pub fn cdio_open_win32(psz_source: *const ::std::os::raw::c_char) -> *mut CdIo_t;
915}
916unsafe extern "C" {
917    pub fn cdio_open_am_win32(
918        psz_source: *const ::std::os::raw::c_char,
919        psz_access_mode: *const ::std::os::raw::c_char,
920    ) -> *mut CdIo_t;
921}
922unsafe extern "C" {
923    pub fn cdio_get_default_device_win32() -> *mut ::std::os::raw::c_char;
924}
925unsafe extern "C" {
926    pub fn cdio_get_devices_win32() -> *mut *mut ::std::os::raw::c_char;
927}
928unsafe extern "C" {
929    pub fn cdio_open_nrg(psz_source: *const ::std::os::raw::c_char) -> *mut CdIo_t;
930}
931unsafe extern "C" {
932    pub fn cdio_open_am_nrg(
933        psz_source: *const ::std::os::raw::c_char,
934        psz_access_mode: *const ::std::os::raw::c_char,
935    ) -> *mut CdIo_t;
936}
937unsafe extern "C" {
938    pub fn cdio_get_default_device_nrg() -> *mut ::std::os::raw::c_char;
939}
940unsafe extern "C" {
941    pub fn cdio_get_devices_nrg() -> *mut *mut ::std::os::raw::c_char;
942}
943unsafe extern "C" {
944    pub fn cdio_is_binfile(bin_name: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
945}
946unsafe extern "C" {
947    pub fn cdio_is_cuefile(cue_name: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
948}
949unsafe extern "C" {
950    pub fn cdio_is_nrg(psz_nrg: *const ::std::os::raw::c_char) -> ::std::os::raw::c_uchar;
951}
952unsafe extern "C" {
953    pub fn cdio_is_tocfile(psz_toc: *const ::std::os::raw::c_char) -> ::std::os::raw::c_uchar;
954}
955unsafe extern "C" {
956    pub fn cdio_is_device(
957        psz_source: *const ::std::os::raw::c_char,
958        driver_id: driver_id_t,
959    ) -> ::std::os::raw::c_uchar;
960}
961unsafe extern "C" {
962    pub fn cdio_set_blocksize(
963        p_cdio: *const CdIo_t,
964        i_blocksize: ::std::os::raw::c_int,
965    ) -> driver_return_code_t;
966}
967unsafe extern "C" {
968    pub fn cdio_set_speed(
969        p_cdio: *const CdIo_t,
970        i_drive_speed: ::std::os::raw::c_int,
971    ) -> driver_return_code_t;
972}
973unsafe extern "C" {
974    pub fn cdio_get_arg(
975        p_cdio: *const CdIo_t,
976        key: *const ::std::os::raw::c_char,
977    ) -> *const ::std::os::raw::c_char;
978}
979unsafe extern "C" {
980    pub fn cdio_set_arg(
981        p_cdio: *mut CdIo_t,
982        key: *const ::std::os::raw::c_char,
983        value: *const ::std::os::raw::c_char,
984    ) -> driver_return_code_t;
985}
986unsafe extern "C" {
987    pub fn cdio_init() -> ::std::os::raw::c_uchar;
988}
989unsafe extern "C" {
990    pub static mut debug_cdio_drive_cap_misc: cdio_drive_cap_misc_t;
991}
992unsafe extern "C" {
993    pub static mut debug_cdio_drive_cap_read_t: cdio_drive_cap_read_t;
994}
995unsafe extern "C" {
996    pub static mut debug_drive_cap_write_t: cdio_drive_cap_write_t;
997}
998unsafe extern "C" {
999    pub static mut debug_cdio_mmc_hw_len: cdio_mmc_hw_len_t;
1000}
1001unsafe extern "C" {
1002    pub static mut debug_cdio_src_category_mask: cdio_src_category_mask_t;
1003}
1004pub const cdtext_field_t_CDTEXT_FIELD_TITLE: cdtext_field_t = 0;
1005pub const cdtext_field_t_CDTEXT_FIELD_PERFORMER: cdtext_field_t = 1;
1006pub const cdtext_field_t_CDTEXT_FIELD_SONGWRITER: cdtext_field_t = 2;
1007pub const cdtext_field_t_CDTEXT_FIELD_COMPOSER: cdtext_field_t = 3;
1008pub const cdtext_field_t_CDTEXT_FIELD_MESSAGE: cdtext_field_t = 4;
1009pub const cdtext_field_t_CDTEXT_FIELD_ARRANGER: cdtext_field_t = 5;
1010pub const cdtext_field_t_CDTEXT_FIELD_ISRC: cdtext_field_t = 6;
1011pub const cdtext_field_t_CDTEXT_FIELD_UPC_EAN: cdtext_field_t = 7;
1012pub const cdtext_field_t_CDTEXT_FIELD_GENRE: cdtext_field_t = 8;
1013pub const cdtext_field_t_CDTEXT_FIELD_DISCID: cdtext_field_t = 9;
1014pub const cdtext_field_t_CDTEXT_FIELD_INVALID: cdtext_field_t = 10;
1015pub type cdtext_field_t = ::std::os::raw::c_uint;
1016pub const cdtext_genre_t_CDTEXT_GENRE_UNUSED: cdtext_genre_t = 0;
1017pub const cdtext_genre_t_CDTEXT_GENRE_UNDEFINED: cdtext_genre_t = 1;
1018pub const cdtext_genre_t_CDTEXT_GENRE_ADULT_CONTEMP: cdtext_genre_t = 2;
1019pub const cdtext_genre_t_CDTEXT_GENRE_ALT_ROCK: cdtext_genre_t = 3;
1020pub const cdtext_genre_t_CDTEXT_GENRE_CHILDRENS: cdtext_genre_t = 4;
1021pub const cdtext_genre_t_CDTEXT_GENRE_CLASSIC: cdtext_genre_t = 5;
1022pub const cdtext_genre_t_CDTEXT_GENRE_CHRIST_CONTEMP: cdtext_genre_t = 6;
1023pub const cdtext_genre_t_CDTEXT_GENRE_COUNTRY: cdtext_genre_t = 7;
1024pub const cdtext_genre_t_CDTEXT_GENRE_DANCE: cdtext_genre_t = 8;
1025pub const cdtext_genre_t_CDTEXT_GENRE_EASY_LISTENING: cdtext_genre_t = 9;
1026pub const cdtext_genre_t_CDTEXT_GENRE_EROTIC: cdtext_genre_t = 10;
1027pub const cdtext_genre_t_CDTEXT_GENRE_FOLK: cdtext_genre_t = 11;
1028pub const cdtext_genre_t_CDTEXT_GENRE_GOSPEL: cdtext_genre_t = 12;
1029pub const cdtext_genre_t_CDTEXT_GENRE_HIPHOP: cdtext_genre_t = 13;
1030pub const cdtext_genre_t_CDTEXT_GENRE_JAZZ: cdtext_genre_t = 14;
1031pub const cdtext_genre_t_CDTEXT_GENRE_LATIN: cdtext_genre_t = 15;
1032pub const cdtext_genre_t_CDTEXT_GENRE_MUSICAL: cdtext_genre_t = 16;
1033pub const cdtext_genre_t_CDTEXT_GENRE_NEWAGE: cdtext_genre_t = 17;
1034pub const cdtext_genre_t_CDTEXT_GENRE_OPERA: cdtext_genre_t = 18;
1035pub const cdtext_genre_t_CDTEXT_GENRE_OPERETTA: cdtext_genre_t = 19;
1036pub const cdtext_genre_t_CDTEXT_GENRE_POP: cdtext_genre_t = 20;
1037pub const cdtext_genre_t_CDTEXT_GENRE_RAP: cdtext_genre_t = 21;
1038pub const cdtext_genre_t_CDTEXT_GENRE_REGGAE: cdtext_genre_t = 22;
1039pub const cdtext_genre_t_CDTEXT_GENRE_ROCK: cdtext_genre_t = 23;
1040pub const cdtext_genre_t_CDTEXT_GENRE_RYTHMANDBLUES: cdtext_genre_t = 24;
1041pub const cdtext_genre_t_CDTEXT_GENRE_SOUNDEFFECTS: cdtext_genre_t = 25;
1042pub const cdtext_genre_t_CDTEXT_GENRE_SOUNDTRACK: cdtext_genre_t = 26;
1043pub const cdtext_genre_t_CDTEXT_GENRE_SPOKEN_WORD: cdtext_genre_t = 27;
1044pub const cdtext_genre_t_CDTEXT_GENRE_WORLD_MUSIC: cdtext_genre_t = 28;
1045pub type cdtext_genre_t = ::std::os::raw::c_uint;
1046pub const cdtext_lang_t_CDTEXT_LANGUAGE_UNKNOWN: cdtext_lang_t = 0;
1047pub const cdtext_lang_t_CDTEXT_LANGUAGE_ALBANIAN: cdtext_lang_t = 1;
1048pub const cdtext_lang_t_CDTEXT_LANGUAGE_BRETON: cdtext_lang_t = 2;
1049pub const cdtext_lang_t_CDTEXT_LANGUAGE_CATALAN: cdtext_lang_t = 3;
1050pub const cdtext_lang_t_CDTEXT_LANGUAGE_CROATIAN: cdtext_lang_t = 4;
1051pub const cdtext_lang_t_CDTEXT_LANGUAGE_WELSH: cdtext_lang_t = 5;
1052pub const cdtext_lang_t_CDTEXT_LANGUAGE_CZECH: cdtext_lang_t = 6;
1053pub const cdtext_lang_t_CDTEXT_LANGUAGE_DANISH: cdtext_lang_t = 7;
1054pub const cdtext_lang_t_CDTEXT_LANGUAGE_GERMAN: cdtext_lang_t = 8;
1055pub const cdtext_lang_t_CDTEXT_LANGUAGE_ENGLISH: cdtext_lang_t = 9;
1056pub const cdtext_lang_t_CDTEXT_LANGUAGE_SPANISH: cdtext_lang_t = 10;
1057pub const cdtext_lang_t_CDTEXT_LANGUAGE_ESPERANTO: cdtext_lang_t = 11;
1058pub const cdtext_lang_t_CDTEXT_LANGUAGE_ESTONIAN: cdtext_lang_t = 12;
1059pub const cdtext_lang_t_CDTEXT_LANGUAGE_BASQUE: cdtext_lang_t = 13;
1060pub const cdtext_lang_t_CDTEXT_LANGUAGE_FAROESE: cdtext_lang_t = 14;
1061pub const cdtext_lang_t_CDTEXT_LANGUAGE_FRENCH: cdtext_lang_t = 15;
1062pub const cdtext_lang_t_CDTEXT_LANGUAGE_FRISIAN: cdtext_lang_t = 16;
1063pub const cdtext_lang_t_CDTEXT_LANGUAGE_IRISH: cdtext_lang_t = 17;
1064pub const cdtext_lang_t_CDTEXT_LANGUAGE_GAELIC: cdtext_lang_t = 18;
1065pub const cdtext_lang_t_CDTEXT_LANGUAGE_GALICIAN: cdtext_lang_t = 19;
1066pub const cdtext_lang_t_CDTEXT_LANGUAGE_ICELANDIC: cdtext_lang_t = 20;
1067pub const cdtext_lang_t_CDTEXT_LANGUAGE_ITALIAN: cdtext_lang_t = 21;
1068pub const cdtext_lang_t_CDTEXT_LANGUAGE_LAPPISH: cdtext_lang_t = 22;
1069pub const cdtext_lang_t_CDTEXT_LANGUAGE_LATIN: cdtext_lang_t = 23;
1070pub const cdtext_lang_t_CDTEXT_LANGUAGE_LATVIAN: cdtext_lang_t = 24;
1071pub const cdtext_lang_t_CDTEXT_LANGUAGE_LUXEMBOURGIAN: cdtext_lang_t = 25;
1072pub const cdtext_lang_t_CDTEXT_LANGUAGE_LITHUANIAN: cdtext_lang_t = 26;
1073pub const cdtext_lang_t_CDTEXT_LANGUAGE_HUNGARIAN: cdtext_lang_t = 27;
1074pub const cdtext_lang_t_CDTEXT_LANGUAGE_MALTESE: cdtext_lang_t = 28;
1075pub const cdtext_lang_t_CDTEXT_LANGUAGE_DUTCH: cdtext_lang_t = 29;
1076pub const cdtext_lang_t_CDTEXT_LANGUAGE_NORWEGIAN: cdtext_lang_t = 30;
1077pub const cdtext_lang_t_CDTEXT_LANGUAGE_OCCITAN: cdtext_lang_t = 31;
1078pub const cdtext_lang_t_CDTEXT_LANGUAGE_POLISH: cdtext_lang_t = 32;
1079pub const cdtext_lang_t_CDTEXT_LANGUAGE_PORTUGUESE: cdtext_lang_t = 33;
1080pub const cdtext_lang_t_CDTEXT_LANGUAGE_ROMANIAN: cdtext_lang_t = 34;
1081pub const cdtext_lang_t_CDTEXT_LANGUAGE_ROMANSH: cdtext_lang_t = 35;
1082pub const cdtext_lang_t_CDTEXT_LANGUAGE_SERBIAN: cdtext_lang_t = 36;
1083pub const cdtext_lang_t_CDTEXT_LANGUAGE_SLOVAK: cdtext_lang_t = 37;
1084pub const cdtext_lang_t_CDTEXT_LANGUAGE_SLOVENIAN: cdtext_lang_t = 38;
1085pub const cdtext_lang_t_CDTEXT_LANGUAGE_FINNISH: cdtext_lang_t = 39;
1086pub const cdtext_lang_t_CDTEXT_LANGUAGE_SWEDISH: cdtext_lang_t = 40;
1087pub const cdtext_lang_t_CDTEXT_LANGUAGE_TURKISH: cdtext_lang_t = 41;
1088pub const cdtext_lang_t_CDTEXT_LANGUAGE_FLEMISH: cdtext_lang_t = 42;
1089pub const cdtext_lang_t_CDTEXT_LANGUAGE_WALLON: cdtext_lang_t = 43;
1090pub const cdtext_lang_t_CDTEXT_LANGUAGE_ZULU: cdtext_lang_t = 69;
1091pub const cdtext_lang_t_CDTEXT_LANGUAGE_VIETNAMESE: cdtext_lang_t = 70;
1092pub const cdtext_lang_t_CDTEXT_LANGUAGE_UZBEK: cdtext_lang_t = 71;
1093pub const cdtext_lang_t_CDTEXT_LANGUAGE_URDU: cdtext_lang_t = 72;
1094pub const cdtext_lang_t_CDTEXT_LANGUAGE_UKRAINIAN: cdtext_lang_t = 73;
1095pub const cdtext_lang_t_CDTEXT_LANGUAGE_THAI: cdtext_lang_t = 74;
1096pub const cdtext_lang_t_CDTEXT_LANGUAGE_TELUGU: cdtext_lang_t = 75;
1097pub const cdtext_lang_t_CDTEXT_LANGUAGE_TATAR: cdtext_lang_t = 76;
1098pub const cdtext_lang_t_CDTEXT_LANGUAGE_TAMIL: cdtext_lang_t = 77;
1099pub const cdtext_lang_t_CDTEXT_LANGUAGE_TADZHIK: cdtext_lang_t = 78;
1100pub const cdtext_lang_t_CDTEXT_LANGUAGE_SWAHILI: cdtext_lang_t = 79;
1101pub const cdtext_lang_t_CDTEXT_LANGUAGE_SRANANTONGO: cdtext_lang_t = 80;
1102pub const cdtext_lang_t_CDTEXT_LANGUAGE_SOMALI: cdtext_lang_t = 81;
1103pub const cdtext_lang_t_CDTEXT_LANGUAGE_SINHALESE: cdtext_lang_t = 82;
1104pub const cdtext_lang_t_CDTEXT_LANGUAGE_SHONA: cdtext_lang_t = 83;
1105pub const cdtext_lang_t_CDTEXT_LANGUAGE_SERBO_CROAT: cdtext_lang_t = 84;
1106pub const cdtext_lang_t_CDTEXT_LANGUAGE_RUTHENIAN: cdtext_lang_t = 85;
1107pub const cdtext_lang_t_CDTEXT_LANGUAGE_RUSSIAN: cdtext_lang_t = 86;
1108pub const cdtext_lang_t_CDTEXT_LANGUAGE_QUECHUA: cdtext_lang_t = 87;
1109pub const cdtext_lang_t_CDTEXT_LANGUAGE_PUSHTU: cdtext_lang_t = 88;
1110pub const cdtext_lang_t_CDTEXT_LANGUAGE_PUNJABI: cdtext_lang_t = 89;
1111pub const cdtext_lang_t_CDTEXT_LANGUAGE_PERSIAN: cdtext_lang_t = 90;
1112pub const cdtext_lang_t_CDTEXT_LANGUAGE_PAPAMIENTO: cdtext_lang_t = 91;
1113pub const cdtext_lang_t_CDTEXT_LANGUAGE_ORIYA: cdtext_lang_t = 92;
1114pub const cdtext_lang_t_CDTEXT_LANGUAGE_NEPALI: cdtext_lang_t = 93;
1115pub const cdtext_lang_t_CDTEXT_LANGUAGE_NDEBELE: cdtext_lang_t = 94;
1116pub const cdtext_lang_t_CDTEXT_LANGUAGE_MARATHI: cdtext_lang_t = 95;
1117pub const cdtext_lang_t_CDTEXT_LANGUAGE_MOLDAVIAN: cdtext_lang_t = 96;
1118pub const cdtext_lang_t_CDTEXT_LANGUAGE_MALAYSIAN: cdtext_lang_t = 97;
1119pub const cdtext_lang_t_CDTEXT_LANGUAGE_MALAGASAY: cdtext_lang_t = 98;
1120pub const cdtext_lang_t_CDTEXT_LANGUAGE_MACEDONIAN: cdtext_lang_t = 99;
1121pub const cdtext_lang_t_CDTEXT_LANGUAGE_LAOTIAN: cdtext_lang_t = 100;
1122pub const cdtext_lang_t_CDTEXT_LANGUAGE_KOREAN: cdtext_lang_t = 101;
1123pub const cdtext_lang_t_CDTEXT_LANGUAGE_KHMER: cdtext_lang_t = 102;
1124pub const cdtext_lang_t_CDTEXT_LANGUAGE_KAZAKH: cdtext_lang_t = 103;
1125pub const cdtext_lang_t_CDTEXT_LANGUAGE_KANNADA: cdtext_lang_t = 104;
1126pub const cdtext_lang_t_CDTEXT_LANGUAGE_JAPANESE: cdtext_lang_t = 105;
1127pub const cdtext_lang_t_CDTEXT_LANGUAGE_INDONESIAN: cdtext_lang_t = 106;
1128pub const cdtext_lang_t_CDTEXT_LANGUAGE_HINDI: cdtext_lang_t = 107;
1129pub const cdtext_lang_t_CDTEXT_LANGUAGE_HEBREW: cdtext_lang_t = 108;
1130pub const cdtext_lang_t_CDTEXT_LANGUAGE_HAUSA: cdtext_lang_t = 109;
1131pub const cdtext_lang_t_CDTEXT_LANGUAGE_GURANI: cdtext_lang_t = 110;
1132pub const cdtext_lang_t_CDTEXT_LANGUAGE_GUJURATI: cdtext_lang_t = 111;
1133pub const cdtext_lang_t_CDTEXT_LANGUAGE_GREEK: cdtext_lang_t = 112;
1134pub const cdtext_lang_t_CDTEXT_LANGUAGE_GEORGIAN: cdtext_lang_t = 113;
1135pub const cdtext_lang_t_CDTEXT_LANGUAGE_FULANI: cdtext_lang_t = 114;
1136pub const cdtext_lang_t_CDTEXT_LANGUAGE_DARI: cdtext_lang_t = 115;
1137pub const cdtext_lang_t_CDTEXT_LANGUAGE_CHURASH: cdtext_lang_t = 116;
1138pub const cdtext_lang_t_CDTEXT_LANGUAGE_CHINESE: cdtext_lang_t = 117;
1139pub const cdtext_lang_t_CDTEXT_LANGUAGE_BURMESE: cdtext_lang_t = 118;
1140pub const cdtext_lang_t_CDTEXT_LANGUAGE_BULGARIAN: cdtext_lang_t = 119;
1141pub const cdtext_lang_t_CDTEXT_LANGUAGE_BENGALI: cdtext_lang_t = 120;
1142pub const cdtext_lang_t_CDTEXT_LANGUAGE_BIELORUSSIAN: cdtext_lang_t = 121;
1143pub const cdtext_lang_t_CDTEXT_LANGUAGE_BAMBORA: cdtext_lang_t = 122;
1144pub const cdtext_lang_t_CDTEXT_LANGUAGE_AZERBAIJANI: cdtext_lang_t = 123;
1145pub const cdtext_lang_t_CDTEXT_LANGUAGE_ASSAMESE: cdtext_lang_t = 124;
1146pub const cdtext_lang_t_CDTEXT_LANGUAGE_ARMENIAN: cdtext_lang_t = 125;
1147pub const cdtext_lang_t_CDTEXT_LANGUAGE_ARABIC: cdtext_lang_t = 126;
1148pub const cdtext_lang_t_CDTEXT_LANGUAGE_AMHARIC: cdtext_lang_t = 127;
1149pub const cdtext_lang_t_CDTEXT_LANGUAGE_INVALID: cdtext_lang_t = 256;
1150pub const cdtext_lang_t_CDTEXT_LANGUAGE_BLOCK_UNUSED: cdtext_lang_t = 257;
1151pub type cdtext_lang_t = ::std::os::raw::c_uint;
1152#[repr(C)]
1153#[derive(Debug, Copy, Clone)]
1154pub struct cdtext_s {
1155    _unused: [u8; 0],
1156}
1157pub type cdtext_t = cdtext_s;
1158unsafe extern "C" {
1159    pub fn cdtext_genre2str(i: cdtext_genre_t) -> *const ::std::os::raw::c_char;
1160}
1161unsafe extern "C" {
1162    pub fn cdtext_lang2str(i: cdtext_lang_t) -> *const ::std::os::raw::c_char;
1163}
1164unsafe extern "C" {
1165    pub fn cdtext_str2lang(lang: *const ::std::os::raw::c_char) -> cdtext_lang_t;
1166}
1167unsafe extern "C" {
1168    pub fn cdtext_field2str(i: cdtext_field_t) -> *const ::std::os::raw::c_char;
1169}
1170unsafe extern "C" {
1171    pub fn cdtext_init() -> *mut cdtext_t;
1172}
1173unsafe extern "C" {
1174    pub fn cdtext_data_init(
1175        p_cdtext: *mut cdtext_t,
1176        wdata: *mut u8,
1177        i_data: usize,
1178    ) -> ::std::os::raw::c_int;
1179}
1180unsafe extern "C" {
1181    pub fn cdtext_destroy(p_cdtext: *mut cdtext_t);
1182}
1183unsafe extern "C" {
1184    pub fn cdtext_get(
1185        p_cdtext: *const cdtext_t,
1186        key: cdtext_field_t,
1187        track: track_t,
1188    ) -> *mut ::std::os::raw::c_char;
1189}
1190unsafe extern "C" {
1191    pub fn cdtext_get_const(
1192        p_cdtext: *const cdtext_t,
1193        field: cdtext_field_t,
1194        track: track_t,
1195    ) -> *const ::std::os::raw::c_char;
1196}
1197unsafe extern "C" {
1198    pub fn cdtext_get_genre(p_cdtext: *const cdtext_t) -> cdtext_genre_t;
1199}
1200unsafe extern "C" {
1201    pub fn cdtext_get_language(p_cdtext: *const cdtext_t) -> cdtext_lang_t;
1202}
1203unsafe extern "C" {
1204    pub fn cdtext_get_first_track(p_cdtext: *const cdtext_t) -> track_t;
1205}
1206unsafe extern "C" {
1207    pub fn cdtext_get_last_track(p_cdtext: *const cdtext_t) -> track_t;
1208}
1209unsafe extern "C" {
1210    pub fn cdtext_select_language(
1211        p_cdtext: *mut cdtext_t,
1212        language: cdtext_lang_t,
1213    ) -> ::std::os::raw::c_uchar;
1214}
1215unsafe extern "C" {
1216    pub fn cdtext_list_languages(p_cdtext: *const cdtext_t) -> *mut cdtext_lang_t;
1217}
1218unsafe extern "C" {
1219    pub fn cdtext_list_languages_v2(p_cdtext: *mut cdtext_t) -> *mut cdtext_lang_t;
1220}
1221unsafe extern "C" {
1222    pub fn cdtext_set_language_index(
1223        p_cdtext: *mut cdtext_t,
1224        idx: ::std::os::raw::c_int,
1225    ) -> ::std::os::raw::c_uchar;
1226}
1227unsafe extern "C" {
1228    pub fn cdtext_set(
1229        p_cdtext: *mut cdtext_t,
1230        key: cdtext_field_t,
1231        value: *const u8,
1232        track: track_t,
1233        charset: *const ::std::os::raw::c_char,
1234    );
1235}
1236pub const discmode_t_CDIO_DISC_MODE_CD_DA: discmode_t = 0;
1237pub const discmode_t_CDIO_DISC_MODE_CD_DATA: discmode_t = 1;
1238pub const discmode_t_CDIO_DISC_MODE_CD_XA: discmode_t = 2;
1239pub const discmode_t_CDIO_DISC_MODE_CD_MIXED: discmode_t = 3;
1240pub const discmode_t_CDIO_DISC_MODE_DVD_ROM: discmode_t = 4;
1241pub const discmode_t_CDIO_DISC_MODE_DVD_RAM: discmode_t = 5;
1242pub const discmode_t_CDIO_DISC_MODE_DVD_R: discmode_t = 6;
1243pub const discmode_t_CDIO_DISC_MODE_DVD_RW: discmode_t = 7;
1244pub const discmode_t_CDIO_DISC_MODE_HD_DVD_ROM: discmode_t = 8;
1245pub const discmode_t_CDIO_DISC_MODE_HD_DVD_RAM: discmode_t = 9;
1246pub const discmode_t_CDIO_DISC_MODE_HD_DVD_R: discmode_t = 10;
1247pub const discmode_t_CDIO_DISC_MODE_DVD_PR: discmode_t = 11;
1248pub const discmode_t_CDIO_DISC_MODE_DVD_PRW: discmode_t = 12;
1249pub const discmode_t_CDIO_DISC_MODE_DVD_PRW_DL: discmode_t = 13;
1250pub const discmode_t_CDIO_DISC_MODE_DVD_PR_DL: discmode_t = 14;
1251pub const discmode_t_CDIO_DISC_MODE_DVD_OTHER: discmode_t = 15;
1252pub const discmode_t_CDIO_DISC_MODE_NO_INFO: discmode_t = 16;
1253pub const discmode_t_CDIO_DISC_MODE_ERROR: discmode_t = 17;
1254pub const discmode_t_CDIO_DISC_MODE_CD_I: discmode_t = 18;
1255pub type discmode_t = ::std::os::raw::c_uint;
1256unsafe extern "C" {
1257    pub static mut discmode2str: [*const ::std::os::raw::c_char; 0usize];
1258}
1259unsafe extern "C" {
1260    pub fn cdio_get_cdtext_raw(p_cdio: *mut CdIo_t) -> *mut u8;
1261}
1262unsafe extern "C" {
1263    pub fn cdio_get_cdtext(p_cdio: *mut CdIo_t) -> *mut cdtext_t;
1264}
1265unsafe extern "C" {
1266    pub fn cdio_get_discmode(p_cdio: *mut CdIo_t) -> discmode_t;
1267}
1268unsafe extern "C" {
1269    pub fn cdio_get_disc_last_lsn(p_cdio: *const CdIo_t) -> lsn_t;
1270}
1271unsafe extern "C" {
1272    pub fn cdio_get_joliet_level(p_cdio: *const CdIo_t) -> u8;
1273}
1274unsafe extern "C" {
1275    pub fn cdio_get_mcn(p_cdio: *const CdIo_t) -> *mut ::std::os::raw::c_char;
1276}
1277unsafe extern "C" {
1278    pub fn cdio_get_num_tracks(p_cdio: *const CdIo_t) -> track_t;
1279}
1280unsafe extern "C" {
1281    pub fn cdio_is_discmode_cdrom(discmode: discmode_t) -> ::std::os::raw::c_uchar;
1282}
1283unsafe extern "C" {
1284    pub fn cdio_is_discmode_dvd(discmode: discmode_t) -> ::std::os::raw::c_uchar;
1285}
1286pub const cdio_read_mode_t_CDIO_READ_MODE_AUDIO: cdio_read_mode_t = 0;
1287pub const cdio_read_mode_t_CDIO_READ_MODE_M1F1: cdio_read_mode_t = 1;
1288pub const cdio_read_mode_t_CDIO_READ_MODE_M1F2: cdio_read_mode_t = 2;
1289pub const cdio_read_mode_t_CDIO_READ_MODE_M2F1: cdio_read_mode_t = 3;
1290pub const cdio_read_mode_t_CDIO_READ_MODE_M2F2: cdio_read_mode_t = 4;
1291pub type cdio_read_mode_t = ::std::os::raw::c_uint;
1292unsafe extern "C" {
1293    pub fn cdio_lseek(p_cdio: *const CdIo_t, offset: off_t, whence: ::std::os::raw::c_int)
1294    -> off_t;
1295}
1296unsafe extern "C" {
1297    pub fn cdio_read(
1298        p_cdio: *const CdIo_t,
1299        p_buf: *mut ::std::os::raw::c_void,
1300        i_size: usize,
1301    ) -> isize;
1302}
1303unsafe extern "C" {
1304    pub fn cdio_read_audio_sector(
1305        p_cdio: *const CdIo_t,
1306        p_buf: *mut ::std::os::raw::c_void,
1307        i_lsn: lsn_t,
1308    ) -> driver_return_code_t;
1309}
1310unsafe extern "C" {
1311    pub fn cdio_read_audio_sectors(
1312        p_cdio: *const CdIo_t,
1313        p_buf: *mut ::std::os::raw::c_void,
1314        i_lsn: lsn_t,
1315        i_blocks: u32,
1316    ) -> driver_return_code_t;
1317}
1318unsafe extern "C" {
1319    pub fn cdio_read_data_sectors(
1320        p_cdio: *const CdIo_t,
1321        p_buf: *mut ::std::os::raw::c_void,
1322        i_lsn: lsn_t,
1323        i_blocksize: u16,
1324        i_blocks: u32,
1325    ) -> driver_return_code_t;
1326}
1327unsafe extern "C" {
1328    pub fn cdio_read_mode1_sector(
1329        p_cdio: *const CdIo_t,
1330        p_buf: *mut ::std::os::raw::c_void,
1331        i_lsn: lsn_t,
1332        b_form2: ::std::os::raw::c_uchar,
1333    ) -> driver_return_code_t;
1334}
1335unsafe extern "C" {
1336    pub fn cdio_read_mode1_sectors(
1337        p_cdio: *const CdIo_t,
1338        p_buf: *mut ::std::os::raw::c_void,
1339        i_lsn: lsn_t,
1340        b_form2: ::std::os::raw::c_uchar,
1341        i_blocks: u32,
1342    ) -> driver_return_code_t;
1343}
1344unsafe extern "C" {
1345    pub fn cdio_read_mode2_sector(
1346        p_cdio: *const CdIo_t,
1347        p_buf: *mut ::std::os::raw::c_void,
1348        i_lsn: lsn_t,
1349        b_form2: ::std::os::raw::c_uchar,
1350    ) -> driver_return_code_t;
1351}
1352unsafe extern "C" {
1353    pub fn cdio_read_sector(
1354        p_cdio: *const CdIo_t,
1355        p_buf: *mut ::std::os::raw::c_void,
1356        i_lsn: lsn_t,
1357        read_mode: cdio_read_mode_t,
1358    ) -> driver_return_code_t;
1359}
1360unsafe extern "C" {
1361    pub fn cdio_read_mode2_sectors(
1362        p_cdio: *const CdIo_t,
1363        p_buf: *mut ::std::os::raw::c_void,
1364        i_lsn: lsn_t,
1365        b_form2: ::std::os::raw::c_uchar,
1366        i_blocks: u32,
1367    ) -> driver_return_code_t;
1368}
1369unsafe extern "C" {
1370    pub fn cdio_read_sectors(
1371        p_cdio: *const CdIo_t,
1372        p_buf: *mut ::std::os::raw::c_void,
1373        i_lsn: lsn_t,
1374        read_mode: cdio_read_mode_t,
1375        i_blocks: u32,
1376    ) -> driver_return_code_t;
1377}
1378unsafe extern "C" {
1379    pub static mut track_format2str: [*const ::std::os::raw::c_char; 6usize];
1380}
1381pub const track_format_t_TRACK_FORMAT_AUDIO: track_format_t = 0;
1382pub const track_format_t_TRACK_FORMAT_CDI: track_format_t = 1;
1383pub const track_format_t_TRACK_FORMAT_XA: track_format_t = 2;
1384pub const track_format_t_TRACK_FORMAT_DATA: track_format_t = 3;
1385pub const track_format_t_TRACK_FORMAT_PSX: track_format_t = 4;
1386pub const track_format_t_TRACK_FORMAT_ERROR: track_format_t = 5;
1387pub type track_format_t = ::std::os::raw::c_uint;
1388pub const track_flag_t_CDIO_TRACK_FLAG_FALSE: track_flag_t = 0;
1389pub const track_flag_t_CDIO_TRACK_FLAG_TRUE: track_flag_t = 1;
1390pub const track_flag_t_CDIO_TRACK_FLAG_ERROR: track_flag_t = 2;
1391pub const track_flag_t_CDIO_TRACK_FLAG_UNKNOWN: track_flag_t = 3;
1392pub type track_flag_t = ::std::os::raw::c_uint;
1393#[repr(C)]
1394#[derive(Debug, Copy, Clone)]
1395pub struct track_flags_t {
1396    pub preemphasis: track_flag_t,
1397    pub copy_permit: track_flag_t,
1398    pub channels: ::std::os::raw::c_int,
1399}
1400#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1401const _: () = {
1402    ["Size of track_flags_t"][::std::mem::size_of::<track_flags_t>() - 12usize];
1403    ["Alignment of track_flags_t"][::std::mem::align_of::<track_flags_t>() - 4usize];
1404    ["Offset of field: track_flags_t::preemphasis"]
1405        [::std::mem::offset_of!(track_flags_t, preemphasis) - 0usize];
1406    ["Offset of field: track_flags_t::copy_permit"]
1407        [::std::mem::offset_of!(track_flags_t, copy_permit) - 4usize];
1408    ["Offset of field: track_flags_t::channels"]
1409        [::std::mem::offset_of!(track_flags_t, channels) - 8usize];
1410};
1411pub const cdio_track_enums_CDIO_CDROM_LBA: cdio_track_enums = 1;
1412pub const cdio_track_enums_CDIO_CDROM_MSF: cdio_track_enums = 2;
1413pub const cdio_track_enums_CDIO_CDROM_DATA_TRACK: cdio_track_enums = 4;
1414pub const cdio_track_enums_CDIO_CDROM_CDI_TRACK: cdio_track_enums = 16;
1415pub const cdio_track_enums_CDIO_CDROM_XA_TRACK: cdio_track_enums = 32;
1416pub const cdio_track_enums_CDIO_CD_MAX_TRACKS: cdio_track_enums = 99;
1417pub const cdio_track_enums_CDIO_CDROM_LEADOUT_TRACK: cdio_track_enums = 170;
1418pub const cdio_track_enums_CDIO_INVALID_TRACK: cdio_track_enums = 255;
1419pub type cdio_track_enums = ::std::os::raw::c_uint;
1420unsafe extern "C" {
1421    pub static mut cdio_track_enums: cdio_track_enums;
1422}
1423pub const trackmode_t_AUDIO: trackmode_t = 0;
1424pub const trackmode_t_MODE1: trackmode_t = 1;
1425pub const trackmode_t_MODE1_RAW: trackmode_t = 2;
1426pub const trackmode_t_MODE2: trackmode_t = 3;
1427pub const trackmode_t_MODE2_FORM1: trackmode_t = 4;
1428pub const trackmode_t_MODE2_FORM2: trackmode_t = 5;
1429pub const trackmode_t_MODE2_FORM_MIX: trackmode_t = 6;
1430pub const trackmode_t_MODE2_RAW: trackmode_t = 7;
1431pub type trackmode_t = ::std::os::raw::c_uint;
1432unsafe extern "C" {
1433    pub fn cdio_get_first_track_num(p_cdio: *const CdIo_t) -> track_t;
1434}
1435unsafe extern "C" {
1436    pub fn cdio_get_last_track_num(p_cdio: *const CdIo_t) -> track_t;
1437}
1438unsafe extern "C" {
1439    pub fn cdio_get_track(p_cdio: *const CdIo_t, lsn: lsn_t) -> track_t;
1440}
1441unsafe extern "C" {
1442    pub fn cdio_get_track_channels(
1443        p_cdio: *const CdIo_t,
1444        i_track: track_t,
1445    ) -> ::std::os::raw::c_int;
1446}
1447unsafe extern "C" {
1448    pub fn cdio_get_track_copy_permit(p_cdio: *const CdIo_t, i_track: track_t) -> track_flag_t;
1449}
1450unsafe extern "C" {
1451    pub fn cdio_get_track_format(p_cdio: *const CdIo_t, i_track: track_t) -> track_format_t;
1452}
1453unsafe extern "C" {
1454    pub fn cdio_get_track_green(p_cdio: *const CdIo_t, i_track: track_t)
1455    -> ::std::os::raw::c_uchar;
1456}
1457unsafe extern "C" {
1458    pub fn cdio_get_track_last_lsn(p_cdio: *const CdIo_t, i_track: track_t) -> lsn_t;
1459}
1460unsafe extern "C" {
1461    pub fn cdio_get_track_lba(p_cdio: *const CdIo_t, i_track: track_t) -> lba_t;
1462}
1463unsafe extern "C" {
1464    pub fn cdio_get_track_lsn(p_cdio: *const CdIo_t, i_track: track_t) -> lsn_t;
1465}
1466unsafe extern "C" {
1467    pub fn cdio_get_track_pregap_lba(p_cdio: *const CdIo_t, i_track: track_t) -> lba_t;
1468}
1469unsafe extern "C" {
1470    pub fn cdio_get_track_pregap_lsn(p_cdio: *const CdIo_t, i_track: track_t) -> lsn_t;
1471}
1472unsafe extern "C" {
1473    pub fn cdio_get_track_isrc(
1474        p_cdio: *const CdIo_t,
1475        i_track: track_t,
1476    ) -> *mut ::std::os::raw::c_char;
1477}
1478unsafe extern "C" {
1479    pub fn cdio_get_track_msf(
1480        p_cdio: *const CdIo_t,
1481        i_track: track_t,
1482        msf: *mut msf_t,
1483    ) -> ::std::os::raw::c_uchar;
1484}
1485unsafe extern "C" {
1486    pub fn cdio_get_track_preemphasis(p_cdio: *const CdIo_t, i_track: track_t) -> track_flag_t;
1487}
1488unsafe extern "C" {
1489    pub fn cdio_get_track_sec_count(
1490        p_cdio: *const CdIo_t,
1491        i_track: track_t,
1492    ) -> ::std::os::raw::c_uint;
1493}
1494unsafe extern "C" {
1495    pub fn cdio_free(p_memory: *mut ::std::os::raw::c_void);
1496}
1497pub const cdio_fs_t_CDIO_FS_AUDIO: cdio_fs_t = 1;
1498pub const cdio_fs_t_CDIO_FS_HIGH_SIERRA: cdio_fs_t = 2;
1499pub const cdio_fs_t_CDIO_FS_ISO_9660: cdio_fs_t = 3;
1500pub const cdio_fs_t_CDIO_FS_INTERACTIVE: cdio_fs_t = 4;
1501pub const cdio_fs_t_CDIO_FS_HFS: cdio_fs_t = 5;
1502pub const cdio_fs_t_CDIO_FS_UFS: cdio_fs_t = 6;
1503pub const cdio_fs_t_CDIO_FS_EXT2: cdio_fs_t = 7;
1504pub const cdio_fs_t_CDIO_FS_ISO_HFS: cdio_fs_t = 8;
1505pub const cdio_fs_t_CDIO_FS_ISO_9660_INTERACTIVE: cdio_fs_t = 9;
1506pub const cdio_fs_t_CDIO_FS_3DO: cdio_fs_t = 10;
1507pub const cdio_fs_t_CDIO_FS_XISO: cdio_fs_t = 11;
1508pub const cdio_fs_t_CDIO_FS_UDFX: cdio_fs_t = 12;
1509pub const cdio_fs_t_CDIO_FS_UDF: cdio_fs_t = 13;
1510pub const cdio_fs_t_CDIO_FS_ISO_UDF: cdio_fs_t = 14;
1511pub type cdio_fs_t = ::std::os::raw::c_uint;
1512pub const cdio_fs_cap_t_CDIO_FS_MASK: cdio_fs_cap_t = 15;
1513pub const cdio_fs_cap_t_CDIO_FS_ANAL_XA: cdio_fs_cap_t = 16;
1514pub const cdio_fs_cap_t_CDIO_FS_ANAL_MULTISESSION: cdio_fs_cap_t = 32;
1515pub const cdio_fs_cap_t_CDIO_FS_ANAL_PHOTO_CD: cdio_fs_cap_t = 64;
1516pub const cdio_fs_cap_t_CDIO_FS_ANAL_HIDDEN_TRACK: cdio_fs_cap_t = 128;
1517pub const cdio_fs_cap_t_CDIO_FS_ANAL_CDTV: cdio_fs_cap_t = 256;
1518pub const cdio_fs_cap_t_CDIO_FS_ANAL_BOOTABLE: cdio_fs_cap_t = 512;
1519pub const cdio_fs_cap_t_CDIO_FS_ANAL_VIDEOCD: cdio_fs_cap_t = 1024;
1520pub const cdio_fs_cap_t_CDIO_FS_ANAL_ROCKRIDGE: cdio_fs_cap_t = 2048;
1521pub const cdio_fs_cap_t_CDIO_FS_ANAL_JOLIET: cdio_fs_cap_t = 4096;
1522pub const cdio_fs_cap_t_CDIO_FS_ANAL_SVCD: cdio_fs_cap_t = 8192;
1523pub const cdio_fs_cap_t_CDIO_FS_ANAL_CVD: cdio_fs_cap_t = 16384;
1524pub const cdio_fs_cap_t_CDIO_FS_ANAL_XISO: cdio_fs_cap_t = 32768;
1525pub const cdio_fs_cap_t_CDIO_FS_ANAL_ISO9660_ANY: cdio_fs_cap_t = 65536;
1526pub const cdio_fs_cap_t_CDIO_FS_ANAL_VCD_ANY: cdio_fs_cap_t = 25600;
1527pub const cdio_fs_cap_t_CDIO_FS_MATCH_ALL: cdio_fs_cap_t = -16;
1528pub type cdio_fs_cap_t = ::std::os::raw::c_int;
1529#[repr(C)]
1530#[derive(Debug, Copy, Clone)]
1531pub struct cdio_iso_analysis_t {
1532    pub joliet_level: ::std::os::raw::c_uint,
1533    pub iso_label: [::std::os::raw::c_char; 33usize],
1534    pub isofs_size: ::std::os::raw::c_uint,
1535    pub UDFVerMinor: u8,
1536    pub UDFVerMajor: u8,
1537}
1538#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1539const _: () = {
1540    ["Size of cdio_iso_analysis_t"][::std::mem::size_of::<cdio_iso_analysis_t>() - 48usize];
1541    ["Alignment of cdio_iso_analysis_t"][::std::mem::align_of::<cdio_iso_analysis_t>() - 4usize];
1542    ["Offset of field: cdio_iso_analysis_t::joliet_level"]
1543        [::std::mem::offset_of!(cdio_iso_analysis_t, joliet_level) - 0usize];
1544    ["Offset of field: cdio_iso_analysis_t::iso_label"]
1545        [::std::mem::offset_of!(cdio_iso_analysis_t, iso_label) - 4usize];
1546    ["Offset of field: cdio_iso_analysis_t::isofs_size"]
1547        [::std::mem::offset_of!(cdio_iso_analysis_t, isofs_size) - 40usize];
1548    ["Offset of field: cdio_iso_analysis_t::UDFVerMinor"]
1549        [::std::mem::offset_of!(cdio_iso_analysis_t, UDFVerMinor) - 44usize];
1550    ["Offset of field: cdio_iso_analysis_t::UDFVerMajor"]
1551        [::std::mem::offset_of!(cdio_iso_analysis_t, UDFVerMajor) - 45usize];
1552};
1553unsafe extern "C" {
1554    pub fn cdio_guess_cd_type(
1555        cdio: *const CdIo_t,
1556        start_session: ::std::os::raw::c_int,
1557        track_num: track_t,
1558        iso_analysis: *mut cdio_iso_analysis_t,
1559    ) -> cdio_fs_anal_t;
1560}
1561unsafe extern "C" {
1562    pub static mut debug_cdio_fs_cap: cdio_fs_cap_t;
1563}
1564unsafe extern "C" {
1565    pub static mut debug_cdio_fs: cdio_fs_t;
1566}
1567pub const cdio_log_level_t_CDIO_LOG_DEBUG: cdio_log_level_t = 1;
1568pub const cdio_log_level_t_CDIO_LOG_INFO: cdio_log_level_t = 2;
1569pub const cdio_log_level_t_CDIO_LOG_WARN: cdio_log_level_t = 3;
1570pub const cdio_log_level_t_CDIO_LOG_ERROR: cdio_log_level_t = 4;
1571pub const cdio_log_level_t_CDIO_LOG_ASSERT: cdio_log_level_t = 5;
1572pub type cdio_log_level_t = ::std::os::raw::c_uint;
1573unsafe extern "C" {
1574    pub static mut cdio_loglevel_default: cdio_log_level_t;
1575}
1576pub type cdio_log_handler_t = ::std::option::Option<
1577    unsafe extern "C" fn(level: cdio_log_level_t, message: *const ::std::os::raw::c_char),
1578>;
1579unsafe extern "C" {
1580    pub fn cdio_default_log_handler(
1581        level: cdio_log_level_t,
1582        message: *const ::std::os::raw::c_char,
1583    );
1584}
1585unsafe extern "C" {
1586    pub fn cdio_log_set_handler(new_handler: cdio_log_handler_t) -> cdio_log_handler_t;
1587}
1588unsafe extern "C" {
1589    pub fn cdio_log(level: cdio_log_level_t, format: *const ::std::os::raw::c_char, ...);
1590}
1591unsafe extern "C" {
1592    pub fn cdio_debug(format: *const ::std::os::raw::c_char, ...);
1593}
1594unsafe extern "C" {
1595    pub fn cdio_info(format: *const ::std::os::raw::c_char, ...);
1596}
1597unsafe extern "C" {
1598    pub fn cdio_warn(format: *const ::std::os::raw::c_char, ...);
1599}
1600unsafe extern "C" {
1601    pub fn cdio_error(format: *const ::std::os::raw::c_char, ...);
1602}
1603pub const cdio_dvd_structure_CDIO_DVD_STRUCT_PHYSICAL: cdio_dvd_structure = 0;
1604pub const cdio_dvd_structure_CDIO_DVD_STRUCT_COPYRIGHT: cdio_dvd_structure = 1;
1605pub const cdio_dvd_structure_CDIO_DVD_STRUCT_DISCKEY: cdio_dvd_structure = 2;
1606pub const cdio_dvd_structure_CDIO_DVD_STRUCT_BCA: cdio_dvd_structure = 3;
1607pub const cdio_dvd_structure_CDIO_DVD_STRUCT_MANUFACT: cdio_dvd_structure = 4;
1608pub type cdio_dvd_structure = ::std::os::raw::c_uint;
1609pub const cdio_dvd_book_CDIO_DVD_BOOK_DVD_ROM: cdio_dvd_book = 0;
1610pub const cdio_dvd_book_CDIO_DVD_BOOK_DVD_RAM: cdio_dvd_book = 1;
1611pub const cdio_dvd_book_CDIO_DVD_BOOK_DVD_R: cdio_dvd_book = 2;
1612pub const cdio_dvd_book_CDIO_DVD_BOOK_DVD_RW: cdio_dvd_book = 3;
1613pub const cdio_dvd_book_CDIO_DVD_BOOK_HD_DVD_ROM: cdio_dvd_book = 4;
1614pub const cdio_dvd_book_CDIO_DVD_BOOK_HD_DVD_RAM: cdio_dvd_book = 5;
1615pub const cdio_dvd_book_CDIO_DVD_BOOK_HD_DVD_R: cdio_dvd_book = 6;
1616pub const cdio_dvd_book_CDIO_DVD_BOOK_DVD_PRW: cdio_dvd_book = 9;
1617pub const cdio_dvd_book_CDIO_DVD_BOOK_DVD_PR: cdio_dvd_book = 10;
1618pub const cdio_dvd_book_CDIO_DVD_BOOK_DVD_PRW_DL: cdio_dvd_book = 13;
1619pub const cdio_dvd_book_CDIO_DVD_BOOK_DVD_PR_DL: cdio_dvd_book = 14;
1620pub type cdio_dvd_book = ::std::os::raw::c_uint;
1621#[repr(C)]
1622#[derive(Debug, Copy, Clone)]
1623pub struct cdio_dvd_layer {
1624    pub _bitfield_align_1: [u8; 0],
1625    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
1626    pub start_sector: u32,
1627    pub end_sector: u32,
1628    pub end_sector_l0: u32,
1629}
1630#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1631const _: () = {
1632    ["Size of cdio_dvd_layer"][::std::mem::size_of::<cdio_dvd_layer>() - 16usize];
1633    ["Alignment of cdio_dvd_layer"][::std::mem::align_of::<cdio_dvd_layer>() - 4usize];
1634    ["Offset of field: cdio_dvd_layer::start_sector"]
1635        [::std::mem::offset_of!(cdio_dvd_layer, start_sector) - 4usize];
1636    ["Offset of field: cdio_dvd_layer::end_sector"]
1637        [::std::mem::offset_of!(cdio_dvd_layer, end_sector) - 8usize];
1638    ["Offset of field: cdio_dvd_layer::end_sector_l0"]
1639        [::std::mem::offset_of!(cdio_dvd_layer, end_sector_l0) - 12usize];
1640};
1641impl cdio_dvd_layer {
1642    #[inline]
1643    pub fn book_version(&self) -> ::std::os::raw::c_uint {
1644        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u32) }
1645    }
1646    #[inline]
1647    pub fn set_book_version(&mut self, val: ::std::os::raw::c_uint) {
1648        unsafe {
1649            let val: u32 = ::std::mem::transmute(val);
1650            self._bitfield_1.set(0usize, 4u8, val as u64)
1651        }
1652    }
1653    #[inline]
1654    pub unsafe fn book_version_raw(this: *const Self) -> ::std::os::raw::c_uint {
1655        unsafe {
1656            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
1657                ::std::ptr::addr_of!((*this)._bitfield_1),
1658                0usize,
1659                4u8,
1660            ) as u32)
1661        }
1662    }
1663    #[inline]
1664    pub unsafe fn set_book_version_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
1665        unsafe {
1666            let val: u32 = ::std::mem::transmute(val);
1667            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
1668                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1669                0usize,
1670                4u8,
1671                val as u64,
1672            )
1673        }
1674    }
1675    #[inline]
1676    pub fn book_type(&self) -> ::std::os::raw::c_uint {
1677        unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u32) }
1678    }
1679    #[inline]
1680    pub fn set_book_type(&mut self, val: ::std::os::raw::c_uint) {
1681        unsafe {
1682            let val: u32 = ::std::mem::transmute(val);
1683            self._bitfield_1.set(4usize, 4u8, val as u64)
1684        }
1685    }
1686    #[inline]
1687    pub unsafe fn book_type_raw(this: *const Self) -> ::std::os::raw::c_uint {
1688        unsafe {
1689            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
1690                ::std::ptr::addr_of!((*this)._bitfield_1),
1691                4usize,
1692                4u8,
1693            ) as u32)
1694        }
1695    }
1696    #[inline]
1697    pub unsafe fn set_book_type_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
1698        unsafe {
1699            let val: u32 = ::std::mem::transmute(val);
1700            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
1701                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1702                4usize,
1703                4u8,
1704                val as u64,
1705            )
1706        }
1707    }
1708    #[inline]
1709    pub fn min_rate(&self) -> ::std::os::raw::c_uint {
1710        unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u32) }
1711    }
1712    #[inline]
1713    pub fn set_min_rate(&mut self, val: ::std::os::raw::c_uint) {
1714        unsafe {
1715            let val: u32 = ::std::mem::transmute(val);
1716            self._bitfield_1.set(8usize, 4u8, val as u64)
1717        }
1718    }
1719    #[inline]
1720    pub unsafe fn min_rate_raw(this: *const Self) -> ::std::os::raw::c_uint {
1721        unsafe {
1722            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
1723                ::std::ptr::addr_of!((*this)._bitfield_1),
1724                8usize,
1725                4u8,
1726            ) as u32)
1727        }
1728    }
1729    #[inline]
1730    pub unsafe fn set_min_rate_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
1731        unsafe {
1732            let val: u32 = ::std::mem::transmute(val);
1733            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
1734                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1735                8usize,
1736                4u8,
1737                val as u64,
1738            )
1739        }
1740    }
1741    #[inline]
1742    pub fn disc_size(&self) -> ::std::os::raw::c_uint {
1743        unsafe { ::std::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u32) }
1744    }
1745    #[inline]
1746    pub fn set_disc_size(&mut self, val: ::std::os::raw::c_uint) {
1747        unsafe {
1748            let val: u32 = ::std::mem::transmute(val);
1749            self._bitfield_1.set(12usize, 4u8, val as u64)
1750        }
1751    }
1752    #[inline]
1753    pub unsafe fn disc_size_raw(this: *const Self) -> ::std::os::raw::c_uint {
1754        unsafe {
1755            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
1756                ::std::ptr::addr_of!((*this)._bitfield_1),
1757                12usize,
1758                4u8,
1759            ) as u32)
1760        }
1761    }
1762    #[inline]
1763    pub unsafe fn set_disc_size_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
1764        unsafe {
1765            let val: u32 = ::std::mem::transmute(val);
1766            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
1767                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1768                12usize,
1769                4u8,
1770                val as u64,
1771            )
1772        }
1773    }
1774    #[inline]
1775    pub fn layer_type(&self) -> ::std::os::raw::c_uint {
1776        unsafe { ::std::mem::transmute(self._bitfield_1.get(16usize, 4u8) as u32) }
1777    }
1778    #[inline]
1779    pub fn set_layer_type(&mut self, val: ::std::os::raw::c_uint) {
1780        unsafe {
1781            let val: u32 = ::std::mem::transmute(val);
1782            self._bitfield_1.set(16usize, 4u8, val as u64)
1783        }
1784    }
1785    #[inline]
1786    pub unsafe fn layer_type_raw(this: *const Self) -> ::std::os::raw::c_uint {
1787        unsafe {
1788            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
1789                ::std::ptr::addr_of!((*this)._bitfield_1),
1790                16usize,
1791                4u8,
1792            ) as u32)
1793        }
1794    }
1795    #[inline]
1796    pub unsafe fn set_layer_type_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
1797        unsafe {
1798            let val: u32 = ::std::mem::transmute(val);
1799            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
1800                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1801                16usize,
1802                4u8,
1803                val as u64,
1804            )
1805        }
1806    }
1807    #[inline]
1808    pub fn track_path(&self) -> ::std::os::raw::c_uint {
1809        unsafe { ::std::mem::transmute(self._bitfield_1.get(20usize, 1u8) as u32) }
1810    }
1811    #[inline]
1812    pub fn set_track_path(&mut self, val: ::std::os::raw::c_uint) {
1813        unsafe {
1814            let val: u32 = ::std::mem::transmute(val);
1815            self._bitfield_1.set(20usize, 1u8, val as u64)
1816        }
1817    }
1818    #[inline]
1819    pub unsafe fn track_path_raw(this: *const Self) -> ::std::os::raw::c_uint {
1820        unsafe {
1821            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
1822                ::std::ptr::addr_of!((*this)._bitfield_1),
1823                20usize,
1824                1u8,
1825            ) as u32)
1826        }
1827    }
1828    #[inline]
1829    pub unsafe fn set_track_path_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
1830        unsafe {
1831            let val: u32 = ::std::mem::transmute(val);
1832            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
1833                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1834                20usize,
1835                1u8,
1836                val as u64,
1837            )
1838        }
1839    }
1840    #[inline]
1841    pub fn nlayers(&self) -> ::std::os::raw::c_uint {
1842        unsafe { ::std::mem::transmute(self._bitfield_1.get(21usize, 2u8) as u32) }
1843    }
1844    #[inline]
1845    pub fn set_nlayers(&mut self, val: ::std::os::raw::c_uint) {
1846        unsafe {
1847            let val: u32 = ::std::mem::transmute(val);
1848            self._bitfield_1.set(21usize, 2u8, val as u64)
1849        }
1850    }
1851    #[inline]
1852    pub unsafe fn nlayers_raw(this: *const Self) -> ::std::os::raw::c_uint {
1853        unsafe {
1854            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
1855                ::std::ptr::addr_of!((*this)._bitfield_1),
1856                21usize,
1857                2u8,
1858            ) as u32)
1859        }
1860    }
1861    #[inline]
1862    pub unsafe fn set_nlayers_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
1863        unsafe {
1864            let val: u32 = ::std::mem::transmute(val);
1865            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
1866                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1867                21usize,
1868                2u8,
1869                val as u64,
1870            )
1871        }
1872    }
1873    #[inline]
1874    pub fn track_density(&self) -> ::std::os::raw::c_uint {
1875        unsafe { ::std::mem::transmute(self._bitfield_1.get(23usize, 4u8) as u32) }
1876    }
1877    #[inline]
1878    pub fn set_track_density(&mut self, val: ::std::os::raw::c_uint) {
1879        unsafe {
1880            let val: u32 = ::std::mem::transmute(val);
1881            self._bitfield_1.set(23usize, 4u8, val as u64)
1882        }
1883    }
1884    #[inline]
1885    pub unsafe fn track_density_raw(this: *const Self) -> ::std::os::raw::c_uint {
1886        unsafe {
1887            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
1888                ::std::ptr::addr_of!((*this)._bitfield_1),
1889                23usize,
1890                4u8,
1891            ) as u32)
1892        }
1893    }
1894    #[inline]
1895    pub unsafe fn set_track_density_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
1896        unsafe {
1897            let val: u32 = ::std::mem::transmute(val);
1898            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
1899                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1900                23usize,
1901                4u8,
1902                val as u64,
1903            )
1904        }
1905    }
1906    #[inline]
1907    pub fn linear_density(&self) -> ::std::os::raw::c_uint {
1908        unsafe { ::std::mem::transmute(self._bitfield_1.get(27usize, 4u8) as u32) }
1909    }
1910    #[inline]
1911    pub fn set_linear_density(&mut self, val: ::std::os::raw::c_uint) {
1912        unsafe {
1913            let val: u32 = ::std::mem::transmute(val);
1914            self._bitfield_1.set(27usize, 4u8, val as u64)
1915        }
1916    }
1917    #[inline]
1918    pub unsafe fn linear_density_raw(this: *const Self) -> ::std::os::raw::c_uint {
1919        unsafe {
1920            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
1921                ::std::ptr::addr_of!((*this)._bitfield_1),
1922                27usize,
1923                4u8,
1924            ) as u32)
1925        }
1926    }
1927    #[inline]
1928    pub unsafe fn set_linear_density_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
1929        unsafe {
1930            let val: u32 = ::std::mem::transmute(val);
1931            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
1932                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1933                27usize,
1934                4u8,
1935                val as u64,
1936            )
1937        }
1938    }
1939    #[inline]
1940    pub fn bca(&self) -> ::std::os::raw::c_uint {
1941        unsafe { ::std::mem::transmute(self._bitfield_1.get(31usize, 1u8) as u32) }
1942    }
1943    #[inline]
1944    pub fn set_bca(&mut self, val: ::std::os::raw::c_uint) {
1945        unsafe {
1946            let val: u32 = ::std::mem::transmute(val);
1947            self._bitfield_1.set(31usize, 1u8, val as u64)
1948        }
1949    }
1950    #[inline]
1951    pub unsafe fn bca_raw(this: *const Self) -> ::std::os::raw::c_uint {
1952        unsafe {
1953            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
1954                ::std::ptr::addr_of!((*this)._bitfield_1),
1955                31usize,
1956                1u8,
1957            ) as u32)
1958        }
1959    }
1960    #[inline]
1961    pub unsafe fn set_bca_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
1962        unsafe {
1963            let val: u32 = ::std::mem::transmute(val);
1964            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
1965                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
1966                31usize,
1967                1u8,
1968                val as u64,
1969            )
1970        }
1971    }
1972    #[inline]
1973    pub fn new_bitfield_1(
1974        book_version: ::std::os::raw::c_uint,
1975        book_type: ::std::os::raw::c_uint,
1976        min_rate: ::std::os::raw::c_uint,
1977        disc_size: ::std::os::raw::c_uint,
1978        layer_type: ::std::os::raw::c_uint,
1979        track_path: ::std::os::raw::c_uint,
1980        nlayers: ::std::os::raw::c_uint,
1981        track_density: ::std::os::raw::c_uint,
1982        linear_density: ::std::os::raw::c_uint,
1983        bca: ::std::os::raw::c_uint,
1984    ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
1985        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
1986        __bindgen_bitfield_unit.set(0usize, 4u8, {
1987            let book_version: u32 = unsafe { ::std::mem::transmute(book_version) };
1988            book_version as u64
1989        });
1990        __bindgen_bitfield_unit.set(4usize, 4u8, {
1991            let book_type: u32 = unsafe { ::std::mem::transmute(book_type) };
1992            book_type as u64
1993        });
1994        __bindgen_bitfield_unit.set(8usize, 4u8, {
1995            let min_rate: u32 = unsafe { ::std::mem::transmute(min_rate) };
1996            min_rate as u64
1997        });
1998        __bindgen_bitfield_unit.set(12usize, 4u8, {
1999            let disc_size: u32 = unsafe { ::std::mem::transmute(disc_size) };
2000            disc_size as u64
2001        });
2002        __bindgen_bitfield_unit.set(16usize, 4u8, {
2003            let layer_type: u32 = unsafe { ::std::mem::transmute(layer_type) };
2004            layer_type as u64
2005        });
2006        __bindgen_bitfield_unit.set(20usize, 1u8, {
2007            let track_path: u32 = unsafe { ::std::mem::transmute(track_path) };
2008            track_path as u64
2009        });
2010        __bindgen_bitfield_unit.set(21usize, 2u8, {
2011            let nlayers: u32 = unsafe { ::std::mem::transmute(nlayers) };
2012            nlayers as u64
2013        });
2014        __bindgen_bitfield_unit.set(23usize, 4u8, {
2015            let track_density: u32 = unsafe { ::std::mem::transmute(track_density) };
2016            track_density as u64
2017        });
2018        __bindgen_bitfield_unit.set(27usize, 4u8, {
2019            let linear_density: u32 = unsafe { ::std::mem::transmute(linear_density) };
2020            linear_density as u64
2021        });
2022        __bindgen_bitfield_unit.set(31usize, 1u8, {
2023            let bca: u32 = unsafe { ::std::mem::transmute(bca) };
2024            bca as u64
2025        });
2026        __bindgen_bitfield_unit
2027    }
2028}
2029pub type cdio_dvd_layer_t = cdio_dvd_layer;
2030#[repr(C)]
2031#[derive(Debug, Copy, Clone)]
2032pub struct cdio_dvd_physical {
2033    pub type_: u8,
2034    pub layer_num: u8,
2035    pub layer: [cdio_dvd_layer_t; 4usize],
2036}
2037#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2038const _: () = {
2039    ["Size of cdio_dvd_physical"][::std::mem::size_of::<cdio_dvd_physical>() - 68usize];
2040    ["Alignment of cdio_dvd_physical"][::std::mem::align_of::<cdio_dvd_physical>() - 4usize];
2041    ["Offset of field: cdio_dvd_physical::type_"]
2042        [::std::mem::offset_of!(cdio_dvd_physical, type_) - 0usize];
2043    ["Offset of field: cdio_dvd_physical::layer_num"]
2044        [::std::mem::offset_of!(cdio_dvd_physical, layer_num) - 1usize];
2045    ["Offset of field: cdio_dvd_physical::layer"]
2046        [::std::mem::offset_of!(cdio_dvd_physical, layer) - 4usize];
2047};
2048pub type cdio_dvd_physical_t = cdio_dvd_physical;
2049#[repr(C)]
2050#[derive(Debug, Copy, Clone)]
2051pub struct cdio_dvd_copyright {
2052    pub type_: u8,
2053    pub layer_num: u8,
2054    pub cpst: u8,
2055    pub rmi: u8,
2056}
2057#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2058const _: () = {
2059    ["Size of cdio_dvd_copyright"][::std::mem::size_of::<cdio_dvd_copyright>() - 4usize];
2060    ["Alignment of cdio_dvd_copyright"][::std::mem::align_of::<cdio_dvd_copyright>() - 1usize];
2061    ["Offset of field: cdio_dvd_copyright::type_"]
2062        [::std::mem::offset_of!(cdio_dvd_copyright, type_) - 0usize];
2063    ["Offset of field: cdio_dvd_copyright::layer_num"]
2064        [::std::mem::offset_of!(cdio_dvd_copyright, layer_num) - 1usize];
2065    ["Offset of field: cdio_dvd_copyright::cpst"]
2066        [::std::mem::offset_of!(cdio_dvd_copyright, cpst) - 2usize];
2067    ["Offset of field: cdio_dvd_copyright::rmi"]
2068        [::std::mem::offset_of!(cdio_dvd_copyright, rmi) - 3usize];
2069};
2070pub type cdio_dvd_copyright_t = cdio_dvd_copyright;
2071#[repr(C)]
2072#[repr(align(4))]
2073#[derive(Debug, Copy, Clone)]
2074pub struct cdio_dvd_disckey {
2075    pub type_: u8,
2076    pub _bitfield_align_1: [u8; 0],
2077    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
2078    pub value: [u8; 2048usize],
2079}
2080#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2081const _: () = {
2082    ["Size of cdio_dvd_disckey"][::std::mem::size_of::<cdio_dvd_disckey>() - 2052usize];
2083    ["Alignment of cdio_dvd_disckey"][::std::mem::align_of::<cdio_dvd_disckey>() - 4usize];
2084    ["Offset of field: cdio_dvd_disckey::type_"]
2085        [::std::mem::offset_of!(cdio_dvd_disckey, type_) - 0usize];
2086    ["Offset of field: cdio_dvd_disckey::value"]
2087        [::std::mem::offset_of!(cdio_dvd_disckey, value) - 2usize];
2088};
2089impl cdio_dvd_disckey {
2090    #[inline]
2091    pub fn agid(&self) -> ::std::os::raw::c_uint {
2092        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 2u8) as u32) }
2093    }
2094    #[inline]
2095    pub fn set_agid(&mut self, val: ::std::os::raw::c_uint) {
2096        unsafe {
2097            let val: u32 = ::std::mem::transmute(val);
2098            self._bitfield_1.set(0usize, 2u8, val as u64)
2099        }
2100    }
2101    #[inline]
2102    pub unsafe fn agid_raw(this: *const Self) -> ::std::os::raw::c_uint {
2103        unsafe {
2104            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
2105                ::std::ptr::addr_of!((*this)._bitfield_1),
2106                0usize,
2107                2u8,
2108            ) as u32)
2109        }
2110    }
2111    #[inline]
2112    pub unsafe fn set_agid_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
2113        unsafe {
2114            let val: u32 = ::std::mem::transmute(val);
2115            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
2116                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
2117                0usize,
2118                2u8,
2119                val as u64,
2120            )
2121        }
2122    }
2123    #[inline]
2124    pub fn new_bitfield_1(agid: ::std::os::raw::c_uint) -> __BindgenBitfieldUnit<[u8; 1usize]> {
2125        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
2126        __bindgen_bitfield_unit.set(0usize, 2u8, {
2127            let agid: u32 = unsafe { ::std::mem::transmute(agid) };
2128            agid as u64
2129        });
2130        __bindgen_bitfield_unit
2131    }
2132}
2133pub type cdio_dvd_disckey_t = cdio_dvd_disckey;
2134#[repr(C)]
2135#[derive(Debug, Copy, Clone)]
2136pub struct cdio_dvd_bca {
2137    pub type_: u8,
2138    pub len: ::std::os::raw::c_int,
2139    pub value: [u8; 188usize],
2140}
2141#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2142const _: () = {
2143    ["Size of cdio_dvd_bca"][::std::mem::size_of::<cdio_dvd_bca>() - 196usize];
2144    ["Alignment of cdio_dvd_bca"][::std::mem::align_of::<cdio_dvd_bca>() - 4usize];
2145    ["Offset of field: cdio_dvd_bca::type_"][::std::mem::offset_of!(cdio_dvd_bca, type_) - 0usize];
2146    ["Offset of field: cdio_dvd_bca::len"][::std::mem::offset_of!(cdio_dvd_bca, len) - 4usize];
2147    ["Offset of field: cdio_dvd_bca::value"][::std::mem::offset_of!(cdio_dvd_bca, value) - 8usize];
2148};
2149pub type cdio_dvd_bca_t = cdio_dvd_bca;
2150#[repr(C)]
2151#[derive(Debug, Copy, Clone)]
2152pub struct cdio_dvd_manufact {
2153    pub type_: u8,
2154    pub layer_num: u8,
2155    pub len: ::std::os::raw::c_int,
2156    pub value: [u8; 2048usize],
2157}
2158#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2159const _: () = {
2160    ["Size of cdio_dvd_manufact"][::std::mem::size_of::<cdio_dvd_manufact>() - 2056usize];
2161    ["Alignment of cdio_dvd_manufact"][::std::mem::align_of::<cdio_dvd_manufact>() - 4usize];
2162    ["Offset of field: cdio_dvd_manufact::type_"]
2163        [::std::mem::offset_of!(cdio_dvd_manufact, type_) - 0usize];
2164    ["Offset of field: cdio_dvd_manufact::layer_num"]
2165        [::std::mem::offset_of!(cdio_dvd_manufact, layer_num) - 1usize];
2166    ["Offset of field: cdio_dvd_manufact::len"]
2167        [::std::mem::offset_of!(cdio_dvd_manufact, len) - 4usize];
2168    ["Offset of field: cdio_dvd_manufact::value"]
2169        [::std::mem::offset_of!(cdio_dvd_manufact, value) - 8usize];
2170};
2171pub type cdio_dvd_manufact_t = cdio_dvd_manufact;
2172#[repr(C)]
2173#[derive(Copy, Clone)]
2174pub union cdio_dvd_struct_t {
2175    pub type_: u8,
2176    pub physical: cdio_dvd_physical_t,
2177    pub copyright: cdio_dvd_copyright_t,
2178    pub disckey: cdio_dvd_disckey_t,
2179    pub bca: cdio_dvd_bca_t,
2180    pub manufact: cdio_dvd_manufact_t,
2181}
2182#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2183const _: () = {
2184    ["Size of cdio_dvd_struct_t"][::std::mem::size_of::<cdio_dvd_struct_t>() - 2056usize];
2185    ["Alignment of cdio_dvd_struct_t"][::std::mem::align_of::<cdio_dvd_struct_t>() - 4usize];
2186    ["Offset of field: cdio_dvd_struct_t::type_"]
2187        [::std::mem::offset_of!(cdio_dvd_struct_t, type_) - 0usize];
2188    ["Offset of field: cdio_dvd_struct_t::physical"]
2189        [::std::mem::offset_of!(cdio_dvd_struct_t, physical) - 0usize];
2190    ["Offset of field: cdio_dvd_struct_t::copyright"]
2191        [::std::mem::offset_of!(cdio_dvd_struct_t, copyright) - 0usize];
2192    ["Offset of field: cdio_dvd_struct_t::disckey"]
2193        [::std::mem::offset_of!(cdio_dvd_struct_t, disckey) - 0usize];
2194    ["Offset of field: cdio_dvd_struct_t::bca"]
2195        [::std::mem::offset_of!(cdio_dvd_struct_t, bca) - 0usize];
2196    ["Offset of field: cdio_dvd_struct_t::manufact"]
2197        [::std::mem::offset_of!(cdio_dvd_struct_t, manufact) - 0usize];
2198};
2199#[repr(C)]
2200#[derive(Debug, Copy, Clone)]
2201pub struct cdio_subchannel_s {
2202    pub format: u8,
2203    pub audio_status: u8,
2204    pub _bitfield_align_1: [u8; 0],
2205    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
2206    pub track: u8,
2207    pub index: u8,
2208    pub abs_addr: msf_t,
2209    pub rel_addr: msf_t,
2210}
2211#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2212const _: () = {
2213    ["Size of cdio_subchannel_s"][::std::mem::size_of::<cdio_subchannel_s>() - 11usize];
2214    ["Alignment of cdio_subchannel_s"][::std::mem::align_of::<cdio_subchannel_s>() - 1usize];
2215    ["Offset of field: cdio_subchannel_s::format"]
2216        [::std::mem::offset_of!(cdio_subchannel_s, format) - 0usize];
2217    ["Offset of field: cdio_subchannel_s::audio_status"]
2218        [::std::mem::offset_of!(cdio_subchannel_s, audio_status) - 1usize];
2219    ["Offset of field: cdio_subchannel_s::track"]
2220        [::std::mem::offset_of!(cdio_subchannel_s, track) - 3usize];
2221    ["Offset of field: cdio_subchannel_s::index"]
2222        [::std::mem::offset_of!(cdio_subchannel_s, index) - 4usize];
2223    ["Offset of field: cdio_subchannel_s::abs_addr"]
2224        [::std::mem::offset_of!(cdio_subchannel_s, abs_addr) - 5usize];
2225    ["Offset of field: cdio_subchannel_s::rel_addr"]
2226        [::std::mem::offset_of!(cdio_subchannel_s, rel_addr) - 8usize];
2227};
2228impl cdio_subchannel_s {
2229    #[inline]
2230    pub fn address(&self) -> u8 {
2231        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
2232    }
2233    #[inline]
2234    pub fn set_address(&mut self, val: u8) {
2235        unsafe {
2236            let val: u8 = ::std::mem::transmute(val);
2237            self._bitfield_1.set(0usize, 4u8, val as u64)
2238        }
2239    }
2240    #[inline]
2241    pub unsafe fn address_raw(this: *const Self) -> u8 {
2242        unsafe {
2243            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
2244                ::std::ptr::addr_of!((*this)._bitfield_1),
2245                0usize,
2246                4u8,
2247            ) as u8)
2248        }
2249    }
2250    #[inline]
2251    pub unsafe fn set_address_raw(this: *mut Self, val: u8) {
2252        unsafe {
2253            let val: u8 = ::std::mem::transmute(val);
2254            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
2255                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
2256                0usize,
2257                4u8,
2258                val as u64,
2259            )
2260        }
2261    }
2262    #[inline]
2263    pub fn control(&self) -> u8 {
2264        unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
2265    }
2266    #[inline]
2267    pub fn set_control(&mut self, val: u8) {
2268        unsafe {
2269            let val: u8 = ::std::mem::transmute(val);
2270            self._bitfield_1.set(4usize, 4u8, val as u64)
2271        }
2272    }
2273    #[inline]
2274    pub unsafe fn control_raw(this: *const Self) -> u8 {
2275        unsafe {
2276            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
2277                ::std::ptr::addr_of!((*this)._bitfield_1),
2278                4usize,
2279                4u8,
2280            ) as u8)
2281        }
2282    }
2283    #[inline]
2284    pub unsafe fn set_control_raw(this: *mut Self, val: u8) {
2285        unsafe {
2286            let val: u8 = ::std::mem::transmute(val);
2287            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
2288                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
2289                4usize,
2290                4u8,
2291                val as u64,
2292            )
2293        }
2294    }
2295    #[inline]
2296    pub fn new_bitfield_1(address: u8, control: u8) -> __BindgenBitfieldUnit<[u8; 1usize]> {
2297        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
2298        __bindgen_bitfield_unit.set(0usize, 4u8, {
2299            let address: u8 = unsafe { ::std::mem::transmute(address) };
2300            address as u64
2301        });
2302        __bindgen_bitfield_unit.set(4usize, 4u8, {
2303            let control: u8 = unsafe { ::std::mem::transmute(control) };
2304            control as u64
2305        });
2306        __bindgen_bitfield_unit
2307    }
2308}
2309pub type cdio_subchannel_t = cdio_subchannel_s;
2310#[repr(C)]
2311#[derive(Debug, Copy, Clone)]
2312pub struct cdio_audio_volume_s {
2313    pub level: [u8; 4usize],
2314}
2315#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2316const _: () = {
2317    ["Size of cdio_audio_volume_s"][::std::mem::size_of::<cdio_audio_volume_s>() - 4usize];
2318    ["Alignment of cdio_audio_volume_s"][::std::mem::align_of::<cdio_audio_volume_s>() - 1usize];
2319    ["Offset of field: cdio_audio_volume_s::level"]
2320        [::std::mem::offset_of!(cdio_audio_volume_s, level) - 0usize];
2321};
2322pub type cdio_audio_volume_t = cdio_audio_volume_s;
2323#[repr(C)]
2324#[derive(Debug, Copy, Clone)]
2325pub struct cdio_track_index_s {
2326    pub i_start_track: u8,
2327    pub i_start_index: u8,
2328    pub i_end_track: u8,
2329    pub i_end_index: u8,
2330}
2331#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2332const _: () = {
2333    ["Size of cdio_track_index_s"][::std::mem::size_of::<cdio_track_index_s>() - 4usize];
2334    ["Alignment of cdio_track_index_s"][::std::mem::align_of::<cdio_track_index_s>() - 1usize];
2335    ["Offset of field: cdio_track_index_s::i_start_track"]
2336        [::std::mem::offset_of!(cdio_track_index_s, i_start_track) - 0usize];
2337    ["Offset of field: cdio_track_index_s::i_start_index"]
2338        [::std::mem::offset_of!(cdio_track_index_s, i_start_index) - 1usize];
2339    ["Offset of field: cdio_track_index_s::i_end_track"]
2340        [::std::mem::offset_of!(cdio_track_index_s, i_end_track) - 2usize];
2341    ["Offset of field: cdio_track_index_s::i_end_index"]
2342        [::std::mem::offset_of!(cdio_track_index_s, i_end_index) - 3usize];
2343};
2344pub type cdio_track_index_t = cdio_track_index_s;
2345unsafe extern "C" {
2346    pub fn cdio_audio_get_volume(
2347        p_cdio: *mut CdIo_t,
2348        p_volume: *mut cdio_audio_volume_t,
2349    ) -> driver_return_code_t;
2350}
2351unsafe extern "C" {
2352    pub fn cdio_audio_get_msf_seconds(p_msf: *mut msf_t) -> u32;
2353}
2354unsafe extern "C" {
2355    pub fn cdio_audio_pause(p_cdio: *mut CdIo_t) -> driver_return_code_t;
2356}
2357unsafe extern "C" {
2358    pub fn cdio_audio_play_msf(
2359        p_cdio: *mut CdIo_t,
2360        p_start_msf: *mut msf_t,
2361        p_end_msf: *mut msf_t,
2362    ) -> driver_return_code_t;
2363}
2364unsafe extern "C" {
2365    pub fn cdio_audio_play_track_index(
2366        p_cdio: *mut CdIo_t,
2367        p_track_index: *mut cdio_track_index_t,
2368    ) -> driver_return_code_t;
2369}
2370unsafe extern "C" {
2371    pub fn cdio_audio_read_subchannel(
2372        p_cdio: *mut CdIo_t,
2373        p_subchannel: *mut cdio_subchannel_t,
2374    ) -> driver_return_code_t;
2375}
2376unsafe extern "C" {
2377    pub fn cdio_audio_resume(p_cdio: *mut CdIo_t) -> driver_return_code_t;
2378}
2379unsafe extern "C" {
2380    pub fn cdio_audio_set_volume(
2381        p_cdio: *mut CdIo_t,
2382        p_volume: *mut cdio_audio_volume_t,
2383    ) -> driver_return_code_t;
2384}
2385unsafe extern "C" {
2386    pub fn cdio_audio_stop(p_cdio: *mut CdIo_t) -> driver_return_code_t;
2387}
2388pub const cdio_mmc_feature_profile_t_CDIO_MMC_FEATURE_PROF_NON_REMOVABLE:
2389    cdio_mmc_feature_profile_t = 1;
2390pub const cdio_mmc_feature_profile_t_CDIO_MMC_FEATURE_PROF_REMOVABLE: cdio_mmc_feature_profile_t =
2391    2;
2392pub const cdio_mmc_feature_profile_t_CDIO_MMC_FEATURE_PROF_MO_ERASABLE: cdio_mmc_feature_profile_t =
2393    3;
2394pub const cdio_mmc_feature_profile_t_CDIO_MMC_FEATURE_PROF_MO_WRITE_ONCE:
2395    cdio_mmc_feature_profile_t = 4;
2396pub const cdio_mmc_feature_profile_t_CDIO_MMC_FEATURE_PROF_AS_MO: cdio_mmc_feature_profile_t = 5;
2397pub const cdio_mmc_feature_profile_t_CDIO_MMC_FEATURE_PROF_CD_ROM: cdio_mmc_feature_profile_t = 8;
2398pub const cdio_mmc_feature_profile_t_CDIO_MMC_FEATURE_PROF_CD_R: cdio_mmc_feature_profile_t = 9;
2399pub const cdio_mmc_feature_profile_t_CDIO_MMC_FEATURE_PROF_CD_RW: cdio_mmc_feature_profile_t = 10;
2400pub const cdio_mmc_feature_profile_t_CDIO_MMC_FEATURE_PROF_DVD_ROM: cdio_mmc_feature_profile_t = 16;
2401pub const cdio_mmc_feature_profile_t_CDIO_MMC_FEATURE_PROF_DVD_R_SEQ: cdio_mmc_feature_profile_t =
2402    17;
2403pub const cdio_mmc_feature_profile_t_CDIO_MMC_FEATURE_PROF_DVD_RAM: cdio_mmc_feature_profile_t = 18;
2404pub const cdio_mmc_feature_profile_t_CDIO_MMC_FEATURE_PROF_DVD_RW_RO: cdio_mmc_feature_profile_t =
2405    19;
2406pub const cdio_mmc_feature_profile_t_CDIO_MMC_FEATURE_PROF_DVD_RW_SEQ: cdio_mmc_feature_profile_t =
2407    20;
2408pub const cdio_mmc_feature_profile_t_CDIO_MMC_FEATURE_PROF_DVD_R_DL_SEQ:
2409    cdio_mmc_feature_profile_t = 21;
2410pub const cdio_mmc_feature_profile_t_CDIO_MMC_FEATURE_PROF_DVD_R_DL_JR: cdio_mmc_feature_profile_t =
2411    22;
2412pub const cdio_mmc_feature_profile_t_CDIO_MMC_FEATURE_PROF_DVD_PRW: cdio_mmc_feature_profile_t = 26;
2413pub const cdio_mmc_feature_profile_t_CDIO_MMC_FEATURE_PROF_DVD_PR: cdio_mmc_feature_profile_t = 27;
2414pub const cdio_mmc_feature_profile_t_CDIO_MMC_FEATURE_PROF_DDCD_ROM: cdio_mmc_feature_profile_t =
2415    32;
2416pub const cdio_mmc_feature_profile_t_CDIO_MMC_FEATURE_PROF_DDCD_R: cdio_mmc_feature_profile_t = 33;
2417pub const cdio_mmc_feature_profile_t_CDIO_MMC_FEATURE_PROF_DDCD_RW: cdio_mmc_feature_profile_t = 34;
2418pub const cdio_mmc_feature_profile_t_CDIO_MMC_FEATURE_PROF_DVD_PRW_DL: cdio_mmc_feature_profile_t =
2419    42;
2420pub const cdio_mmc_feature_profile_t_CDIO_MMC_FEATURE_PROF_DVD_PR_DL: cdio_mmc_feature_profile_t =
2421    43;
2422pub const cdio_mmc_feature_profile_t_CDIO_MMC_FEATURE_PROF_BD_ROM: cdio_mmc_feature_profile_t = 64;
2423pub const cdio_mmc_feature_profile_t_CDIO_MMC_FEATURE_PROF_BD_SEQ: cdio_mmc_feature_profile_t = 65;
2424pub const cdio_mmc_feature_profile_t_CDIO_MMC_FEATURE_PROF_BD_R_RANDOM: cdio_mmc_feature_profile_t =
2425    66;
2426pub const cdio_mmc_feature_profile_t_CDIO_MMC_FEATURE_PROF_BD_RE: cdio_mmc_feature_profile_t = 67;
2427pub const cdio_mmc_feature_profile_t_CDIO_MMC_FEATURE_PROF_HD_DVD_ROM: cdio_mmc_feature_profile_t =
2428    80;
2429pub const cdio_mmc_feature_profile_t_CDIO_MMC_FEATURE_PROF_HD_DVD_R: cdio_mmc_feature_profile_t =
2430    81;
2431pub const cdio_mmc_feature_profile_t_CDIO_MMC_FEATURE_PROF_HD_DVD_RAM: cdio_mmc_feature_profile_t =
2432    82;
2433pub const cdio_mmc_feature_profile_t_CDIO_MMC_FEATURE_PROF_NON_CONFORM: cdio_mmc_feature_profile_t =
2434    65535;
2435pub type cdio_mmc_feature_profile_t = ::std::os::raw::c_uint;
2436unsafe extern "C" {
2437    pub fn mmc_feature2str(i_feature: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
2438}
2439unsafe extern "C" {
2440    pub fn mmc_get_drive_cap(
2441        p_cdio: *mut CdIo_t,
2442        p_read_cap: *mut cdio_drive_read_cap_t,
2443        p_write_cap: *mut cdio_drive_write_cap_t,
2444        p_misc_cap: *mut cdio_drive_misc_cap_t,
2445    );
2446}
2447unsafe extern "C" {
2448    pub fn mmc_feature_profile2str(
2449        i_feature_profile: ::std::os::raw::c_int,
2450    ) -> *const ::std::os::raw::c_char;
2451}
2452unsafe extern "C" {
2453    pub fn mmc_is_disctype_bd(disctype: cdio_mmc_feature_profile_t) -> ::std::os::raw::c_uchar;
2454}
2455unsafe extern "C" {
2456    pub fn mmc_is_disctype_cdrom(disctype: cdio_mmc_feature_profile_t) -> ::std::os::raw::c_uchar;
2457}
2458unsafe extern "C" {
2459    pub fn mmc_is_disctype_dvd(disctype: cdio_mmc_feature_profile_t) -> ::std::os::raw::c_uchar;
2460}
2461unsafe extern "C" {
2462    pub fn mmc_is_disctype_hd_dvd(disctype: cdio_mmc_feature_profile_t) -> ::std::os::raw::c_uchar;
2463}
2464unsafe extern "C" {
2465    pub fn mmc_is_disctype_overwritable(
2466        disctype: cdio_mmc_feature_profile_t,
2467    ) -> ::std::os::raw::c_uchar;
2468}
2469unsafe extern "C" {
2470    pub fn mmc_is_disctype_rewritable(
2471        disctype: cdio_mmc_feature_profile_t,
2472    ) -> ::std::os::raw::c_uchar;
2473}
2474unsafe extern "C" {
2475    pub static mut mmc_read_timeout_ms: u32;
2476}
2477unsafe extern "C" {
2478    pub static mut mmc_sense_key2str: [[::std::os::raw::c_char; 40usize]; 16usize];
2479}
2480unsafe extern "C" {
2481    pub static mut mmc_timeout_ms: u32;
2482}
2483#[repr(C)]
2484#[derive(Debug, Copy, Clone)]
2485pub struct cdio_mmc_request_sense {
2486    pub _bitfield_align_1: [u8; 0],
2487    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
2488    pub segment_number: u8,
2489    pub _bitfield_align_2: [u8; 0],
2490    pub _bitfield_2: __BindgenBitfieldUnit<[u8; 1usize]>,
2491    pub information: [u8; 4usize],
2492    pub additional_sense_len: u8,
2493    pub command_info: [u8; 4usize],
2494    pub asc: u8,
2495    pub ascq: u8,
2496    pub fruc: u8,
2497    pub sks: [u8; 3usize],
2498    pub asb: [u8; 46usize],
2499}
2500#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2501const _: () = {
2502    ["Size of cdio_mmc_request_sense"][::std::mem::size_of::<cdio_mmc_request_sense>() - 64usize];
2503    ["Alignment of cdio_mmc_request_sense"]
2504        [::std::mem::align_of::<cdio_mmc_request_sense>() - 1usize];
2505    ["Offset of field: cdio_mmc_request_sense::segment_number"]
2506        [::std::mem::offset_of!(cdio_mmc_request_sense, segment_number) - 1usize];
2507    ["Offset of field: cdio_mmc_request_sense::information"]
2508        [::std::mem::offset_of!(cdio_mmc_request_sense, information) - 3usize];
2509    ["Offset of field: cdio_mmc_request_sense::additional_sense_len"]
2510        [::std::mem::offset_of!(cdio_mmc_request_sense, additional_sense_len) - 7usize];
2511    ["Offset of field: cdio_mmc_request_sense::command_info"]
2512        [::std::mem::offset_of!(cdio_mmc_request_sense, command_info) - 8usize];
2513    ["Offset of field: cdio_mmc_request_sense::asc"]
2514        [::std::mem::offset_of!(cdio_mmc_request_sense, asc) - 12usize];
2515    ["Offset of field: cdio_mmc_request_sense::ascq"]
2516        [::std::mem::offset_of!(cdio_mmc_request_sense, ascq) - 13usize];
2517    ["Offset of field: cdio_mmc_request_sense::fruc"]
2518        [::std::mem::offset_of!(cdio_mmc_request_sense, fruc) - 14usize];
2519    ["Offset of field: cdio_mmc_request_sense::sks"]
2520        [::std::mem::offset_of!(cdio_mmc_request_sense, sks) - 15usize];
2521    ["Offset of field: cdio_mmc_request_sense::asb"]
2522        [::std::mem::offset_of!(cdio_mmc_request_sense, asb) - 18usize];
2523};
2524impl cdio_mmc_request_sense {
2525    #[inline]
2526    pub fn error_code(&self) -> u8 {
2527        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 7u8) as u8) }
2528    }
2529    #[inline]
2530    pub fn set_error_code(&mut self, val: u8) {
2531        unsafe {
2532            let val: u8 = ::std::mem::transmute(val);
2533            self._bitfield_1.set(0usize, 7u8, val as u64)
2534        }
2535    }
2536    #[inline]
2537    pub unsafe fn error_code_raw(this: *const Self) -> u8 {
2538        unsafe {
2539            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
2540                ::std::ptr::addr_of!((*this)._bitfield_1),
2541                0usize,
2542                7u8,
2543            ) as u8)
2544        }
2545    }
2546    #[inline]
2547    pub unsafe fn set_error_code_raw(this: *mut Self, val: u8) {
2548        unsafe {
2549            let val: u8 = ::std::mem::transmute(val);
2550            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
2551                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
2552                0usize,
2553                7u8,
2554                val as u64,
2555            )
2556        }
2557    }
2558    #[inline]
2559    pub fn valid(&self) -> u8 {
2560        unsafe { ::std::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u8) }
2561    }
2562    #[inline]
2563    pub fn set_valid(&mut self, val: u8) {
2564        unsafe {
2565            let val: u8 = ::std::mem::transmute(val);
2566            self._bitfield_1.set(7usize, 1u8, val as u64)
2567        }
2568    }
2569    #[inline]
2570    pub unsafe fn valid_raw(this: *const Self) -> u8 {
2571        unsafe {
2572            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
2573                ::std::ptr::addr_of!((*this)._bitfield_1),
2574                7usize,
2575                1u8,
2576            ) as u8)
2577        }
2578    }
2579    #[inline]
2580    pub unsafe fn set_valid_raw(this: *mut Self, val: u8) {
2581        unsafe {
2582            let val: u8 = ::std::mem::transmute(val);
2583            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
2584                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
2585                7usize,
2586                1u8,
2587                val as u64,
2588            )
2589        }
2590    }
2591    #[inline]
2592    pub fn new_bitfield_1(error_code: u8, valid: u8) -> __BindgenBitfieldUnit<[u8; 1usize]> {
2593        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
2594        __bindgen_bitfield_unit.set(0usize, 7u8, {
2595            let error_code: u8 = unsafe { ::std::mem::transmute(error_code) };
2596            error_code as u64
2597        });
2598        __bindgen_bitfield_unit.set(7usize, 1u8, {
2599            let valid: u8 = unsafe { ::std::mem::transmute(valid) };
2600            valid as u64
2601        });
2602        __bindgen_bitfield_unit
2603    }
2604    #[inline]
2605    pub fn sense_key(&self) -> u8 {
2606        unsafe { ::std::mem::transmute(self._bitfield_2.get(0usize, 4u8) as u8) }
2607    }
2608    #[inline]
2609    pub fn set_sense_key(&mut self, val: u8) {
2610        unsafe {
2611            let val: u8 = ::std::mem::transmute(val);
2612            self._bitfield_2.set(0usize, 4u8, val as u64)
2613        }
2614    }
2615    #[inline]
2616    pub unsafe fn sense_key_raw(this: *const Self) -> u8 {
2617        unsafe {
2618            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
2619                ::std::ptr::addr_of!((*this)._bitfield_2),
2620                0usize,
2621                4u8,
2622            ) as u8)
2623        }
2624    }
2625    #[inline]
2626    pub unsafe fn set_sense_key_raw(this: *mut Self, val: u8) {
2627        unsafe {
2628            let val: u8 = ::std::mem::transmute(val);
2629            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
2630                ::std::ptr::addr_of_mut!((*this)._bitfield_2),
2631                0usize,
2632                4u8,
2633                val as u64,
2634            )
2635        }
2636    }
2637    #[inline]
2638    pub fn reserved1(&self) -> u8 {
2639        unsafe { ::std::mem::transmute(self._bitfield_2.get(4usize, 1u8) as u8) }
2640    }
2641    #[inline]
2642    pub fn set_reserved1(&mut self, val: u8) {
2643        unsafe {
2644            let val: u8 = ::std::mem::transmute(val);
2645            self._bitfield_2.set(4usize, 1u8, val as u64)
2646        }
2647    }
2648    #[inline]
2649    pub unsafe fn reserved1_raw(this: *const Self) -> u8 {
2650        unsafe {
2651            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
2652                ::std::ptr::addr_of!((*this)._bitfield_2),
2653                4usize,
2654                1u8,
2655            ) as u8)
2656        }
2657    }
2658    #[inline]
2659    pub unsafe fn set_reserved1_raw(this: *mut Self, val: u8) {
2660        unsafe {
2661            let val: u8 = ::std::mem::transmute(val);
2662            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
2663                ::std::ptr::addr_of_mut!((*this)._bitfield_2),
2664                4usize,
2665                1u8,
2666                val as u64,
2667            )
2668        }
2669    }
2670    #[inline]
2671    pub fn ili(&self) -> u8 {
2672        unsafe { ::std::mem::transmute(self._bitfield_2.get(5usize, 1u8) as u8) }
2673    }
2674    #[inline]
2675    pub fn set_ili(&mut self, val: u8) {
2676        unsafe {
2677            let val: u8 = ::std::mem::transmute(val);
2678            self._bitfield_2.set(5usize, 1u8, val as u64)
2679        }
2680    }
2681    #[inline]
2682    pub unsafe fn ili_raw(this: *const Self) -> u8 {
2683        unsafe {
2684            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
2685                ::std::ptr::addr_of!((*this)._bitfield_2),
2686                5usize,
2687                1u8,
2688            ) as u8)
2689        }
2690    }
2691    #[inline]
2692    pub unsafe fn set_ili_raw(this: *mut Self, val: u8) {
2693        unsafe {
2694            let val: u8 = ::std::mem::transmute(val);
2695            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
2696                ::std::ptr::addr_of_mut!((*this)._bitfield_2),
2697                5usize,
2698                1u8,
2699                val as u64,
2700            )
2701        }
2702    }
2703    #[inline]
2704    pub fn eom(&self) -> u8 {
2705        unsafe { ::std::mem::transmute(self._bitfield_2.get(6usize, 1u8) as u8) }
2706    }
2707    #[inline]
2708    pub fn set_eom(&mut self, val: u8) {
2709        unsafe {
2710            let val: u8 = ::std::mem::transmute(val);
2711            self._bitfield_2.set(6usize, 1u8, val as u64)
2712        }
2713    }
2714    #[inline]
2715    pub unsafe fn eom_raw(this: *const Self) -> u8 {
2716        unsafe {
2717            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
2718                ::std::ptr::addr_of!((*this)._bitfield_2),
2719                6usize,
2720                1u8,
2721            ) as u8)
2722        }
2723    }
2724    #[inline]
2725    pub unsafe fn set_eom_raw(this: *mut Self, val: u8) {
2726        unsafe {
2727            let val: u8 = ::std::mem::transmute(val);
2728            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
2729                ::std::ptr::addr_of_mut!((*this)._bitfield_2),
2730                6usize,
2731                1u8,
2732                val as u64,
2733            )
2734        }
2735    }
2736    #[inline]
2737    pub fn filemark(&self) -> u8 {
2738        unsafe { ::std::mem::transmute(self._bitfield_2.get(7usize, 1u8) as u8) }
2739    }
2740    #[inline]
2741    pub fn set_filemark(&mut self, val: u8) {
2742        unsafe {
2743            let val: u8 = ::std::mem::transmute(val);
2744            self._bitfield_2.set(7usize, 1u8, val as u64)
2745        }
2746    }
2747    #[inline]
2748    pub unsafe fn filemark_raw(this: *const Self) -> u8 {
2749        unsafe {
2750            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
2751                ::std::ptr::addr_of!((*this)._bitfield_2),
2752                7usize,
2753                1u8,
2754            ) as u8)
2755        }
2756    }
2757    #[inline]
2758    pub unsafe fn set_filemark_raw(this: *mut Self, val: u8) {
2759        unsafe {
2760            let val: u8 = ::std::mem::transmute(val);
2761            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
2762                ::std::ptr::addr_of_mut!((*this)._bitfield_2),
2763                7usize,
2764                1u8,
2765                val as u64,
2766            )
2767        }
2768    }
2769    #[inline]
2770    pub fn new_bitfield_2(
2771        sense_key: u8,
2772        reserved1: u8,
2773        ili: u8,
2774        eom: u8,
2775        filemark: u8,
2776    ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
2777        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
2778        __bindgen_bitfield_unit.set(0usize, 4u8, {
2779            let sense_key: u8 = unsafe { ::std::mem::transmute(sense_key) };
2780            sense_key as u64
2781        });
2782        __bindgen_bitfield_unit.set(4usize, 1u8, {
2783            let reserved1: u8 = unsafe { ::std::mem::transmute(reserved1) };
2784            reserved1 as u64
2785        });
2786        __bindgen_bitfield_unit.set(5usize, 1u8, {
2787            let ili: u8 = unsafe { ::std::mem::transmute(ili) };
2788            ili as u64
2789        });
2790        __bindgen_bitfield_unit.set(6usize, 1u8, {
2791            let eom: u8 = unsafe { ::std::mem::transmute(eom) };
2792            eom as u64
2793        });
2794        __bindgen_bitfield_unit.set(7usize, 1u8, {
2795            let filemark: u8 = unsafe { ::std::mem::transmute(filemark) };
2796            filemark as u64
2797        });
2798        __bindgen_bitfield_unit
2799    }
2800}
2801pub type cdio_mmc_request_sense_t = cdio_mmc_request_sense;
2802pub const cdio_mmc_sense_key_t_CDIO_MMC_SENSE_KEY_NO_SENSE: cdio_mmc_sense_key_t = 0;
2803pub const cdio_mmc_sense_key_t_CDIO_MMC_SENSE_KEY_RECOVERED_ERROR: cdio_mmc_sense_key_t = 1;
2804pub const cdio_mmc_sense_key_t_CDIO_MMC_SENSE_KEY_NOT_READY: cdio_mmc_sense_key_t = 2;
2805pub const cdio_mmc_sense_key_t_CDIO_MMC_SENSE_KEY_MEDIUM_ERROR: cdio_mmc_sense_key_t = 3;
2806pub const cdio_mmc_sense_key_t_CDIO_MMC_SENSE_KEY_HARDWARE_ERROR: cdio_mmc_sense_key_t = 4;
2807pub const cdio_mmc_sense_key_t_CDIO_MMC_SENSE_KEY_ILLEGAL_REQUEST: cdio_mmc_sense_key_t = 5;
2808pub const cdio_mmc_sense_key_t_CDIO_MMC_SENSE_KEY_UNIT_ATTENTION: cdio_mmc_sense_key_t = 6;
2809pub const cdio_mmc_sense_key_t_CDIO_MMC_SENSE_KEY_DATA_PROTECT: cdio_mmc_sense_key_t = 7;
2810pub const cdio_mmc_sense_key_t_CDIO_MMC_SENSE_KEY_BLANK_CHECK: cdio_mmc_sense_key_t = 8;
2811pub const cdio_mmc_sense_key_t_CDIO_MMC_SENSE_KEY_VENDOR_SPECIFIC: cdio_mmc_sense_key_t = 9;
2812pub const cdio_mmc_sense_key_t_CDIO_MMC_SENSE_KEY_COPY_ABORTED: cdio_mmc_sense_key_t = 10;
2813pub const cdio_mmc_sense_key_t_CDIO_MMC_SENSE_KEY_ABORTED_COMMAND: cdio_mmc_sense_key_t = 11;
2814pub const cdio_mmc_sense_key_t_CDIO_MMC_SENSE_KEY_OBSOLETE: cdio_mmc_sense_key_t = 12;
2815pub type cdio_mmc_sense_key_t = ::std::os::raw::c_uint;
2816pub const cdio_mmc_gpcmd_t_CDIO_MMC_GPCMD_TEST_UNIT_READY: cdio_mmc_gpcmd_t = 0;
2817pub const cdio_mmc_gpcmd_t_CDIO_MMC_GPCMD_REQUEST_SENSE: cdio_mmc_gpcmd_t = 3;
2818pub const cdio_mmc_gpcmd_t_CDIO_MMC_GPCMD_FORMAT_UNIT: cdio_mmc_gpcmd_t = 4;
2819pub const cdio_mmc_gpcmd_t_CDIO_MMC_GPCMD_INQUIRY: cdio_mmc_gpcmd_t = 18;
2820pub const cdio_mmc_gpcmd_t_CDIO_MMC_GPCMD_MODE_SELECT_6: cdio_mmc_gpcmd_t = 21;
2821pub const cdio_mmc_gpcmd_t_CDIO_MMC_GPCMD_MODE_SENSE_6: cdio_mmc_gpcmd_t = 26;
2822pub const cdio_mmc_gpcmd_t_CDIO_MMC_GPCMD_START_STOP_UNIT: cdio_mmc_gpcmd_t = 27;
2823pub const cdio_mmc_gpcmd_t_CDIO_MMC_GPCMD_PREVENT_ALLOW_MEDIUM_REMOVAL: cdio_mmc_gpcmd_t = 30;
2824pub const cdio_mmc_gpcmd_t_CDIO_MMC_GPCMD_READ_FORMAT_CAPACITIES: cdio_mmc_gpcmd_t = 35;
2825pub const cdio_mmc_gpcmd_t_CDIO_MMC_GPCMD_READ_CAPACITIY: cdio_mmc_gpcmd_t = 37;
2826pub const cdio_mmc_gpcmd_t_CDIO_MMC_GPCMD_READ_10: cdio_mmc_gpcmd_t = 40;
2827pub const cdio_mmc_gpcmd_t_CDIO_MMC_GPCMD_WRITE_10: cdio_mmc_gpcmd_t = 42;
2828pub const cdio_mmc_gpcmd_t_CDIO_MMC_GPCMD_SEEK_10: cdio_mmc_gpcmd_t = 43;
2829pub const cdio_mmc_gpcmd_t_CDIO_MMC_GPCMD_ERASE_10: cdio_mmc_gpcmd_t = 44;
2830pub const cdio_mmc_gpcmd_t_CDIO_MMC_GPCMD_WRITE_AND_VERIFY_10: cdio_mmc_gpcmd_t = 46;
2831pub const cdio_mmc_gpcmd_t_CDIO_MMC_GPCMD_VERIFY_10: cdio_mmc_gpcmd_t = 47;
2832pub const cdio_mmc_gpcmd_t_CDIO_MMC_GPCMD_SYNCHRONIZE_CACHE: cdio_mmc_gpcmd_t = 53;
2833pub const cdio_mmc_gpcmd_t_CDIO_MMC_GPCMD_WRITE_BUFFER: cdio_mmc_gpcmd_t = 59;
2834pub const cdio_mmc_gpcmd_t_CDIO_MMC_GPCMD_READ_BUFFER: cdio_mmc_gpcmd_t = 60;
2835pub const cdio_mmc_gpcmd_t_CDIO_MMC_GPCMD_READ_SUBCHANNEL: cdio_mmc_gpcmd_t = 66;
2836pub const cdio_mmc_gpcmd_t_CDIO_MMC_GPCMD_READ_TOC: cdio_mmc_gpcmd_t = 67;
2837pub const cdio_mmc_gpcmd_t_CDIO_MMC_GPCMD_READ_HEADER: cdio_mmc_gpcmd_t = 68;
2838pub const cdio_mmc_gpcmd_t_CDIO_MMC_GPCMD_PLAY_AUDIO_10: cdio_mmc_gpcmd_t = 69;
2839pub const cdio_mmc_gpcmd_t_CDIO_MMC_GPCMD_GET_CONFIGURATION: cdio_mmc_gpcmd_t = 70;
2840pub const cdio_mmc_gpcmd_t_CDIO_MMC_GPCMD_PLAY_AUDIO_MSF: cdio_mmc_gpcmd_t = 71;
2841pub const cdio_mmc_gpcmd_t_CDIO_MMC_GPCMD_PLAY_AUDIO_TI: cdio_mmc_gpcmd_t = 72;
2842pub const cdio_mmc_gpcmd_t_CDIO_MMC_GPCMD_PLAY_TRACK_REL_10: cdio_mmc_gpcmd_t = 73;
2843pub const cdio_mmc_gpcmd_t_CDIO_MMC_GPCMD_GET_EVENT_STATUS: cdio_mmc_gpcmd_t = 74;
2844pub const cdio_mmc_gpcmd_t_CDIO_MMC_GPCMD_PAUSE_RESUME: cdio_mmc_gpcmd_t = 75;
2845pub const cdio_mmc_gpcmd_t_CDIO_MMC_GPCMD_READ_DISC_INFORMATION: cdio_mmc_gpcmd_t = 81;
2846pub const cdio_mmc_gpcmd_t_CDIO_MMC_GPCMD_READ_TRACK_INFORMATION: cdio_mmc_gpcmd_t = 82;
2847pub const cdio_mmc_gpcmd_t_CDIO_MMC_GPCMD_RESERVE_TRACK: cdio_mmc_gpcmd_t = 83;
2848pub const cdio_mmc_gpcmd_t_CDIO_MMC_GPCMD_SEND_OPC_INFORMATION: cdio_mmc_gpcmd_t = 84;
2849pub const cdio_mmc_gpcmd_t_CDIO_MMC_GPCMD_MODE_SELECT_10: cdio_mmc_gpcmd_t = 85;
2850pub const cdio_mmc_gpcmd_t_CDIO_MMC_GPCMD_REPAIR_TRACK: cdio_mmc_gpcmd_t = 88;
2851pub const cdio_mmc_gpcmd_t_CDIO_MMC_GPCMD_MODE_SENSE_10: cdio_mmc_gpcmd_t = 90;
2852pub const cdio_mmc_gpcmd_t_CDIO_MMC_GPCMD_CLOSE_TRACK_SESSION: cdio_mmc_gpcmd_t = 91;
2853pub const cdio_mmc_gpcmd_t_CDIO_MMC_GPCMD_READ_BUFFER_CAPACITY: cdio_mmc_gpcmd_t = 92;
2854pub const cdio_mmc_gpcmd_t_CDIO_MMC_GPCMD_SEND_CUE_SHEET: cdio_mmc_gpcmd_t = 93;
2855pub const cdio_mmc_gpcmd_t_CDIO_MMC_GPCMD_REPORT_LUNS: cdio_mmc_gpcmd_t = 160;
2856pub const cdio_mmc_gpcmd_t_CDIO_MMC_GPCMD_BLANK: cdio_mmc_gpcmd_t = 161;
2857pub const cdio_mmc_gpcmd_t_CDIO_MMC_GPCMD_SECURITY_PROTOCOL_IN: cdio_mmc_gpcmd_t = 162;
2858pub const cdio_mmc_gpcmd_t_CDIO_MMC_GPCMD_SEND_KEY: cdio_mmc_gpcmd_t = 163;
2859pub const cdio_mmc_gpcmd_t_CDIO_MMC_GPCMD_REPORT_KEY: cdio_mmc_gpcmd_t = 164;
2860pub const cdio_mmc_gpcmd_t_CDIO_MMC_GPCMD_PLAY_AUDIO_12: cdio_mmc_gpcmd_t = 165;
2861pub const cdio_mmc_gpcmd_t_CDIO_MMC_GPCMD_LOAD_UNLOAD: cdio_mmc_gpcmd_t = 166;
2862pub const cdio_mmc_gpcmd_t_CDIO_MMC_GPCMD_SET_READ_AHEAD: cdio_mmc_gpcmd_t = 167;
2863pub const cdio_mmc_gpcmd_t_CDIO_MMC_GPCMD_READ_12: cdio_mmc_gpcmd_t = 168;
2864pub const cdio_mmc_gpcmd_t_CDIO_MMC_GPCMD_PLAY_TRACK_REL_12: cdio_mmc_gpcmd_t = 169;
2865pub const cdio_mmc_gpcmd_t_CDIO_MMC_GPCMD_WRITE_12: cdio_mmc_gpcmd_t = 170;
2866pub const cdio_mmc_gpcmd_t_CDIO_MMC_GPCMD_READ_MEDIA_SERIAL_12: cdio_mmc_gpcmd_t = 171;
2867pub const cdio_mmc_gpcmd_t_CDIO_MMC_GPCMD_GET_PERFORMANCE: cdio_mmc_gpcmd_t = 172;
2868pub const cdio_mmc_gpcmd_t_CDIO_MMC_GPCMD_READ_DVD_STRUCTURE: cdio_mmc_gpcmd_t = 173;
2869pub const cdio_mmc_gpcmd_t_CDIO_MMC_GPCMD_SECURITY_PROTOCOL_OUT: cdio_mmc_gpcmd_t = 181;
2870pub const cdio_mmc_gpcmd_t_CDIO_MMC_GPCMD_SET_STREAMING: cdio_mmc_gpcmd_t = 182;
2871pub const cdio_mmc_gpcmd_t_CDIO_MMC_GPCMD_READ_MSF: cdio_mmc_gpcmd_t = 185;
2872pub const cdio_mmc_gpcmd_t_CDIO_MMC_GPCMD_SET_SPEED: cdio_mmc_gpcmd_t = 187;
2873pub const cdio_mmc_gpcmd_t_CDIO_MMC_GPCMD_MECHANISM_STATUS: cdio_mmc_gpcmd_t = 189;
2874pub const cdio_mmc_gpcmd_t_CDIO_MMC_GPCMD_READ_CD: cdio_mmc_gpcmd_t = 190;
2875pub const cdio_mmc_gpcmd_t_CDIO_MMC_GPCMD_SEND_DISC_STRUCTURE: cdio_mmc_gpcmd_t = 191;
2876pub const cdio_mmc_gpcmd_t_CDIO_MMC_GPCMD_CD_PLAYBACK_STATUS: cdio_mmc_gpcmd_t = 196;
2877pub const cdio_mmc_gpcmd_t_CDIO_MMC_GPCMD_PLAYBACK_CONTROL: cdio_mmc_gpcmd_t = 201;
2878pub const cdio_mmc_gpcmd_t_CDIO_MMC_GPCMD_READ_CDDA: cdio_mmc_gpcmd_t = 216;
2879pub const cdio_mmc_gpcmd_t_CDIO_MMC_GPCMD_READ_CDXA: cdio_mmc_gpcmd_t = 219;
2880pub const cdio_mmc_gpcmd_t_CDIO_MMC_GPCMD_READ_ALL_SUBCODES: cdio_mmc_gpcmd_t = 223;
2881pub type cdio_mmc_gpcmd_t = ::std::os::raw::c_uint;
2882pub const cdio_mmc_read_sub_state_t_CDIO_MMC_READ_SUB_ST_INVALID: cdio_mmc_read_sub_state_t = 0;
2883pub const cdio_mmc_read_sub_state_t_CDIO_MMC_READ_SUB_ST_PLAY: cdio_mmc_read_sub_state_t = 17;
2884pub const cdio_mmc_read_sub_state_t_CDIO_MMC_READ_SUB_ST_PAUSED: cdio_mmc_read_sub_state_t = 18;
2885pub const cdio_mmc_read_sub_state_t_CDIO_MMC_READ_SUB_ST_COMPLETED: cdio_mmc_read_sub_state_t = 19;
2886pub const cdio_mmc_read_sub_state_t_CDIO_MMC_READ_SUB_ST_ERROR: cdio_mmc_read_sub_state_t = 20;
2887pub const cdio_mmc_read_sub_state_t_CDIO_MMC_READ_SUB_ST_NO_STATUS: cdio_mmc_read_sub_state_t = 21;
2888pub type cdio_mmc_read_sub_state_t = ::std::os::raw::c_uint;
2889pub const cdio_mmc_read_cd_type_t_CDIO_MMC_READ_TYPE_ANY: cdio_mmc_read_cd_type_t = 0;
2890pub const cdio_mmc_read_cd_type_t_CDIO_MMC_READ_TYPE_CDDA: cdio_mmc_read_cd_type_t = 1;
2891pub const cdio_mmc_read_cd_type_t_CDIO_MMC_READ_TYPE_MODE1: cdio_mmc_read_cd_type_t = 2;
2892pub const cdio_mmc_read_cd_type_t_CDIO_MMC_READ_TYPE_MODE2: cdio_mmc_read_cd_type_t = 3;
2893pub const cdio_mmc_read_cd_type_t_CDIO_MMC_READ_TYPE_M2F1: cdio_mmc_read_cd_type_t = 4;
2894pub const cdio_mmc_read_cd_type_t_CDIO_MMC_READ_TYPE_M2F2: cdio_mmc_read_cd_type_t = 5;
2895pub type cdio_mmc_read_cd_type_t = ::std::os::raw::c_uint;
2896pub const cdio_mmc_readtoc_t_CDIO_MMC_READTOC_FMT_TOC: cdio_mmc_readtoc_t = 0;
2897pub const cdio_mmc_readtoc_t_CDIO_MMC_READTOC_FMT_SESSION: cdio_mmc_readtoc_t = 1;
2898pub const cdio_mmc_readtoc_t_CDIO_MMC_READTOC_FMT_FULTOC: cdio_mmc_readtoc_t = 2;
2899pub const cdio_mmc_readtoc_t_CDIO_MMC_READTOC_FMT_PMA: cdio_mmc_readtoc_t = 3;
2900pub const cdio_mmc_readtoc_t_CDIO_MMC_READTOC_FMT_ATIP: cdio_mmc_readtoc_t = 4;
2901pub const cdio_mmc_readtoc_t_CDIO_MMC_READTOC_FMT_CDTEXT: cdio_mmc_readtoc_t = 5;
2902pub type cdio_mmc_readtoc_t = ::std::os::raw::c_uint;
2903pub const cdio_mmc_mode_page_t_CDIO_MMC_R_W_ERROR_PAGE: cdio_mmc_mode_page_t = 1;
2904pub const cdio_mmc_mode_page_t_CDIO_MMC_WRITE_PARMS_PAGE: cdio_mmc_mode_page_t = 5;
2905pub const cdio_mmc_mode_page_t_CDIO_MMC_CDR_PARMS_PAGE: cdio_mmc_mode_page_t = 13;
2906pub const cdio_mmc_mode_page_t_CDIO_MMC_AUDIO_CTL_PAGE: cdio_mmc_mode_page_t = 14;
2907pub const cdio_mmc_mode_page_t_CDIO_MMC_POWER_PAGE: cdio_mmc_mode_page_t = 26;
2908pub const cdio_mmc_mode_page_t_CDIO_MMC_FAULT_FAIL_PAGE: cdio_mmc_mode_page_t = 28;
2909pub const cdio_mmc_mode_page_t_CDIO_MMC_TO_PROTECT_PAGE: cdio_mmc_mode_page_t = 29;
2910pub const cdio_mmc_mode_page_t_CDIO_MMC_CAPABILITIES_PAGE: cdio_mmc_mode_page_t = 42;
2911pub const cdio_mmc_mode_page_t_CDIO_MMC_ALL_PAGES: cdio_mmc_mode_page_t = 63;
2912pub type cdio_mmc_mode_page_t = ::std::os::raw::c_uint;
2913pub const cdio_mmc_read_disc_info_datatype_t_CDIO_MMC_READ_DISC_INFO_STANDARD:
2914    cdio_mmc_read_disc_info_datatype_t = 0;
2915pub const cdio_mmc_read_disc_info_datatype_t_CDIO_MMC_READ_DISC_INFO_TRACK:
2916    cdio_mmc_read_disc_info_datatype_t = 1;
2917pub const cdio_mmc_read_disc_info_datatype_t_CDIO_MMC_READ_DISC_INFO_POW:
2918    cdio_mmc_read_disc_info_datatype_t = 2;
2919pub type cdio_mmc_read_disc_info_datatype_t = ::std::os::raw::c_uint;
2920#[repr(C, packed)]
2921#[derive(Debug, Copy, Clone)]
2922pub struct mmc_audio_volume_entry_s {
2923    pub selection: u8,
2924    pub volume: u8,
2925}
2926#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2927const _: () = {
2928    ["Size of mmc_audio_volume_entry_s"]
2929        [::std::mem::size_of::<mmc_audio_volume_entry_s>() - 2usize];
2930    ["Alignment of mmc_audio_volume_entry_s"]
2931        [::std::mem::align_of::<mmc_audio_volume_entry_s>() - 1usize];
2932    ["Offset of field: mmc_audio_volume_entry_s::selection"]
2933        [::std::mem::offset_of!(mmc_audio_volume_entry_s, selection) - 0usize];
2934    ["Offset of field: mmc_audio_volume_entry_s::volume"]
2935        [::std::mem::offset_of!(mmc_audio_volume_entry_s, volume) - 1usize];
2936};
2937pub type mmc_audio_volume_entry_t = mmc_audio_volume_entry_s;
2938#[repr(C, packed)]
2939#[derive(Debug, Copy, Clone)]
2940pub struct mmc_audio_volume_s {
2941    pub port: [mmc_audio_volume_entry_t; 4usize],
2942}
2943#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2944const _: () = {
2945    ["Size of mmc_audio_volume_s"][::std::mem::size_of::<mmc_audio_volume_s>() - 8usize];
2946    ["Alignment of mmc_audio_volume_s"][::std::mem::align_of::<mmc_audio_volume_s>() - 1usize];
2947    ["Offset of field: mmc_audio_volume_s::port"]
2948        [::std::mem::offset_of!(mmc_audio_volume_s, port) - 0usize];
2949};
2950pub type mmc_audio_volume_t = mmc_audio_volume_s;
2951pub const cdio_mmc_get_conf_t_CDIO_MMC_GET_CONF_ALL_FEATURES: cdio_mmc_get_conf_t = 0;
2952pub const cdio_mmc_get_conf_t_CDIO_MMC_GET_CONF_CURRENT_FEATURES: cdio_mmc_get_conf_t = 1;
2953pub const cdio_mmc_get_conf_t_CDIO_MMC_GET_CONF_NAMED_FEATURE: cdio_mmc_get_conf_t = 2;
2954pub type cdio_mmc_get_conf_t = ::std::os::raw::c_uint;
2955pub const cdio_mmc_feature_t_CDIO_MMC_FEATURE_PROFILE_LIST: cdio_mmc_feature_t = 0;
2956pub const cdio_mmc_feature_t_CDIO_MMC_FEATURE_CORE: cdio_mmc_feature_t = 1;
2957pub const cdio_mmc_feature_t_CDIO_MMC_FEATURE_MORPHING: cdio_mmc_feature_t = 2;
2958pub const cdio_mmc_feature_t_CDIO_MMC_FEATURE_REMOVABLE_MEDIUM: cdio_mmc_feature_t = 3;
2959pub const cdio_mmc_feature_t_CDIO_MMC_FEATURE_WRITE_PROTECT: cdio_mmc_feature_t = 4;
2960pub const cdio_mmc_feature_t_CDIO_MMC_FEATURE_RANDOM_READABLE: cdio_mmc_feature_t = 16;
2961pub const cdio_mmc_feature_t_CDIO_MMC_FEATURE_MULTI_READ: cdio_mmc_feature_t = 29;
2962pub const cdio_mmc_feature_t_CDIO_MMC_FEATURE_CD_READ: cdio_mmc_feature_t = 30;
2963pub const cdio_mmc_feature_t_CDIO_MMC_FEATURE_DVD_READ: cdio_mmc_feature_t = 31;
2964pub const cdio_mmc_feature_t_CDIO_MMC_FEATURE_RANDOM_WRITABLE: cdio_mmc_feature_t = 32;
2965pub const cdio_mmc_feature_t_CDIO_MMC_FEATURE_INCR_WRITE: cdio_mmc_feature_t = 33;
2966pub const cdio_mmc_feature_t_CDIO_MMC_FEATURE_SECTOR_ERASE: cdio_mmc_feature_t = 34;
2967pub const cdio_mmc_feature_t_CDIO_MMC_FEATURE_FORMATABLE: cdio_mmc_feature_t = 35;
2968pub const cdio_mmc_feature_t_CDIO_MMC_FEATURE_DEFECT_MGMT: cdio_mmc_feature_t = 36;
2969pub const cdio_mmc_feature_t_CDIO_MMC_FEATURE_WRITE_ONCE: cdio_mmc_feature_t = 37;
2970pub const cdio_mmc_feature_t_CDIO_MMC_FEATURE_RESTRICT_OVERW: cdio_mmc_feature_t = 38;
2971pub const cdio_mmc_feature_t_CDIO_MMC_FEATURE_CD_RW_CAV: cdio_mmc_feature_t = 39;
2972pub const cdio_mmc_feature_t_CDIO_MMC_FEATURE_MRW: cdio_mmc_feature_t = 40;
2973pub const cdio_mmc_feature_t_CDIO_MMC_FEATURE_ENHANCED_DEFECT: cdio_mmc_feature_t = 41;
2974pub const cdio_mmc_feature_t_CDIO_MMC_FEATURE_DVD_PRW: cdio_mmc_feature_t = 42;
2975pub const cdio_mmc_feature_t_CDIO_MMC_FEATURE_DVD_PR: cdio_mmc_feature_t = 43;
2976pub const cdio_mmc_feature_t_CDIO_MMC_FEATURE_RIGID_RES_OVERW: cdio_mmc_feature_t = 44;
2977pub const cdio_mmc_feature_t_CDIO_MMC_FEATURE_CD_TAO: cdio_mmc_feature_t = 45;
2978pub const cdio_mmc_feature_t_CDIO_MMC_FEATURE_CD_SAO: cdio_mmc_feature_t = 46;
2979pub const cdio_mmc_feature_t_CDIO_MMC_FEATURE_DVD_R_RW_WRITE: cdio_mmc_feature_t = 47;
2980pub const cdio_mmc_feature_t_CDIO_MMC_FEATURE_CD_RW_MEDIA_WRITE: cdio_mmc_feature_t = 55;
2981pub const cdio_mmc_feature_t_CDIO_MMC_FEATURE_DVD_PR_2_LAYER: cdio_mmc_feature_t = 59;
2982pub const cdio_mmc_feature_t_CDIO_MMC_FEATURE_POWER_MGMT: cdio_mmc_feature_t = 256;
2983pub const cdio_mmc_feature_t_CDIO_MMC_FEATURE_CDDA_EXT_PLAY: cdio_mmc_feature_t = 259;
2984pub const cdio_mmc_feature_t_CDIO_MMC_FEATURE_MCODE_UPGRADE: cdio_mmc_feature_t = 260;
2985pub const cdio_mmc_feature_t_CDIO_MMC_FEATURE_TIME_OUT: cdio_mmc_feature_t = 261;
2986pub const cdio_mmc_feature_t_CDIO_MMC_FEATURE_DVD_CSS: cdio_mmc_feature_t = 262;
2987pub const cdio_mmc_feature_t_CDIO_MMC_FEATURE_RT_STREAMING: cdio_mmc_feature_t = 263;
2988pub const cdio_mmc_feature_t_CDIO_MMC_FEATURE_LU_SN: cdio_mmc_feature_t = 264;
2989pub const cdio_mmc_feature_t_CDIO_MMC_FEATURE_FIRMWARE_DATE: cdio_mmc_feature_t = 511;
2990pub type cdio_mmc_feature_t = ::std::os::raw::c_uint;
2991pub const cdio_mmc_feature_interface_t_CDIO_MMC_FEATURE_INTERFACE_UNSPECIFIED:
2992    cdio_mmc_feature_interface_t = 0;
2993pub const cdio_mmc_feature_interface_t_CDIO_MMC_FEATURE_INTERFACE_SCSI:
2994    cdio_mmc_feature_interface_t = 1;
2995pub const cdio_mmc_feature_interface_t_CDIO_MMC_FEATURE_INTERFACE_ATAPI:
2996    cdio_mmc_feature_interface_t = 2;
2997pub const cdio_mmc_feature_interface_t_CDIO_MMC_FEATURE_INTERFACE_IEEE_1394:
2998    cdio_mmc_feature_interface_t = 3;
2999pub const cdio_mmc_feature_interface_t_CDIO_MMC_FEATURE_INTERFACE_IEEE_1394A:
3000    cdio_mmc_feature_interface_t = 4;
3001pub const cdio_mmc_feature_interface_t_CDIO_MMC_FEATURE_INTERFACE_FIBRE_CH:
3002    cdio_mmc_feature_interface_t = 5;
3003pub type cdio_mmc_feature_interface_t = ::std::os::raw::c_uint;
3004#[repr(C)]
3005#[derive(Debug, Copy, Clone)]
3006pub struct mmc_cdb_s {
3007    pub field: [u8; 12usize],
3008}
3009#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3010const _: () = {
3011    ["Size of mmc_cdb_s"][::std::mem::size_of::<mmc_cdb_s>() - 12usize];
3012    ["Alignment of mmc_cdb_s"][::std::mem::align_of::<mmc_cdb_s>() - 1usize];
3013    ["Offset of field: mmc_cdb_s::field"][::std::mem::offset_of!(mmc_cdb_s, field) - 0usize];
3014};
3015pub type mmc_cdb_t = mmc_cdb_s;
3016#[repr(C)]
3017#[derive(Debug, Copy, Clone)]
3018pub struct mmc_feature_list_header_s {
3019    pub length_msb: ::std::os::raw::c_uchar,
3020    pub length_1sb: ::std::os::raw::c_uchar,
3021    pub length_2sb: ::std::os::raw::c_uchar,
3022    pub length_lsb: ::std::os::raw::c_uchar,
3023    pub reserved1: ::std::os::raw::c_uchar,
3024    pub reserved2: ::std::os::raw::c_uchar,
3025    pub profile_msb: ::std::os::raw::c_uchar,
3026    pub profile_lsb: ::std::os::raw::c_uchar,
3027}
3028#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3029const _: () = {
3030    ["Size of mmc_feature_list_header_s"]
3031        [::std::mem::size_of::<mmc_feature_list_header_s>() - 8usize];
3032    ["Alignment of mmc_feature_list_header_s"]
3033        [::std::mem::align_of::<mmc_feature_list_header_s>() - 1usize];
3034    ["Offset of field: mmc_feature_list_header_s::length_msb"]
3035        [::std::mem::offset_of!(mmc_feature_list_header_s, length_msb) - 0usize];
3036    ["Offset of field: mmc_feature_list_header_s::length_1sb"]
3037        [::std::mem::offset_of!(mmc_feature_list_header_s, length_1sb) - 1usize];
3038    ["Offset of field: mmc_feature_list_header_s::length_2sb"]
3039        [::std::mem::offset_of!(mmc_feature_list_header_s, length_2sb) - 2usize];
3040    ["Offset of field: mmc_feature_list_header_s::length_lsb"]
3041        [::std::mem::offset_of!(mmc_feature_list_header_s, length_lsb) - 3usize];
3042    ["Offset of field: mmc_feature_list_header_s::reserved1"]
3043        [::std::mem::offset_of!(mmc_feature_list_header_s, reserved1) - 4usize];
3044    ["Offset of field: mmc_feature_list_header_s::reserved2"]
3045        [::std::mem::offset_of!(mmc_feature_list_header_s, reserved2) - 5usize];
3046    ["Offset of field: mmc_feature_list_header_s::profile_msb"]
3047        [::std::mem::offset_of!(mmc_feature_list_header_s, profile_msb) - 6usize];
3048    ["Offset of field: mmc_feature_list_header_s::profile_lsb"]
3049        [::std::mem::offset_of!(mmc_feature_list_header_s, profile_lsb) - 7usize];
3050};
3051pub type cdio_mmc_feature_list_header_t = mmc_feature_list_header_s;
3052pub const mmc_direction_s_SCSI_MMC_DATA_READ: mmc_direction_s = 0;
3053pub const mmc_direction_s_SCSI_MMC_DATA_WRITE: mmc_direction_s = 1;
3054pub const mmc_direction_s_SCSI_MMC_DATA_NONE: mmc_direction_s = 2;
3055pub type mmc_direction_s = ::std::os::raw::c_uint;
3056pub use self::mmc_direction_s as cdio_mmc_direction_t;
3057#[repr(C)]
3058#[derive(Debug, Copy, Clone)]
3059pub struct mmc_subchannel_s {
3060    pub reserved: u8,
3061    pub audio_status: u8,
3062    pub data_length: u16,
3063    pub format: u8,
3064    pub _bitfield_align_1: [u8; 0],
3065    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
3066    pub track: u8,
3067    pub index: u8,
3068    pub abs_addr: [u8; 4usize],
3069    pub rel_addr: [u8; 4usize],
3070}
3071#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3072const _: () = {
3073    ["Size of mmc_subchannel_s"][::std::mem::size_of::<mmc_subchannel_s>() - 16usize];
3074    ["Alignment of mmc_subchannel_s"][::std::mem::align_of::<mmc_subchannel_s>() - 2usize];
3075    ["Offset of field: mmc_subchannel_s::reserved"]
3076        [::std::mem::offset_of!(mmc_subchannel_s, reserved) - 0usize];
3077    ["Offset of field: mmc_subchannel_s::audio_status"]
3078        [::std::mem::offset_of!(mmc_subchannel_s, audio_status) - 1usize];
3079    ["Offset of field: mmc_subchannel_s::data_length"]
3080        [::std::mem::offset_of!(mmc_subchannel_s, data_length) - 2usize];
3081    ["Offset of field: mmc_subchannel_s::format"]
3082        [::std::mem::offset_of!(mmc_subchannel_s, format) - 4usize];
3083    ["Offset of field: mmc_subchannel_s::track"]
3084        [::std::mem::offset_of!(mmc_subchannel_s, track) - 6usize];
3085    ["Offset of field: mmc_subchannel_s::index"]
3086        [::std::mem::offset_of!(mmc_subchannel_s, index) - 7usize];
3087    ["Offset of field: mmc_subchannel_s::abs_addr"]
3088        [::std::mem::offset_of!(mmc_subchannel_s, abs_addr) - 8usize];
3089    ["Offset of field: mmc_subchannel_s::rel_addr"]
3090        [::std::mem::offset_of!(mmc_subchannel_s, rel_addr) - 12usize];
3091};
3092impl mmc_subchannel_s {
3093    #[inline]
3094    pub fn address(&self) -> u8 {
3095        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
3096    }
3097    #[inline]
3098    pub fn set_address(&mut self, val: u8) {
3099        unsafe {
3100            let val: u8 = ::std::mem::transmute(val);
3101            self._bitfield_1.set(0usize, 4u8, val as u64)
3102        }
3103    }
3104    #[inline]
3105    pub unsafe fn address_raw(this: *const Self) -> u8 {
3106        unsafe {
3107            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
3108                ::std::ptr::addr_of!((*this)._bitfield_1),
3109                0usize,
3110                4u8,
3111            ) as u8)
3112        }
3113    }
3114    #[inline]
3115    pub unsafe fn set_address_raw(this: *mut Self, val: u8) {
3116        unsafe {
3117            let val: u8 = ::std::mem::transmute(val);
3118            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
3119                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
3120                0usize,
3121                4u8,
3122                val as u64,
3123            )
3124        }
3125    }
3126    #[inline]
3127    pub fn control(&self) -> u8 {
3128        unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
3129    }
3130    #[inline]
3131    pub fn set_control(&mut self, val: u8) {
3132        unsafe {
3133            let val: u8 = ::std::mem::transmute(val);
3134            self._bitfield_1.set(4usize, 4u8, val as u64)
3135        }
3136    }
3137    #[inline]
3138    pub unsafe fn control_raw(this: *const Self) -> u8 {
3139        unsafe {
3140            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
3141                ::std::ptr::addr_of!((*this)._bitfield_1),
3142                4usize,
3143                4u8,
3144            ) as u8)
3145        }
3146    }
3147    #[inline]
3148    pub unsafe fn set_control_raw(this: *mut Self, val: u8) {
3149        unsafe {
3150            let val: u8 = ::std::mem::transmute(val);
3151            <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
3152                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
3153                4usize,
3154                4u8,
3155                val as u64,
3156            )
3157        }
3158    }
3159    #[inline]
3160    pub fn new_bitfield_1(address: u8, control: u8) -> __BindgenBitfieldUnit<[u8; 1usize]> {
3161        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
3162        __bindgen_bitfield_unit.set(0usize, 4u8, {
3163            let address: u8 = unsafe { ::std::mem::transmute(address) };
3164            address as u64
3165        });
3166        __bindgen_bitfield_unit.set(4usize, 4u8, {
3167            let control: u8 = unsafe { ::std::mem::transmute(control) };
3168            control as u64
3169        });
3170        __bindgen_bitfield_unit
3171    }
3172}
3173pub type cdio_mmc_subchannel_t = mmc_subchannel_s;
3174unsafe extern "C" {
3175    pub fn mmc_audio_get_volume(
3176        p_cdio: *mut CdIo_t,
3177        p_volume: *mut mmc_audio_volume_t,
3178    ) -> driver_return_code_t;
3179}
3180unsafe extern "C" {
3181    pub fn mmc_audio_read_subchannel(
3182        p_cdio: *mut CdIo_t,
3183        p_subchannel: *mut cdio_subchannel_t,
3184    ) -> driver_return_code_t;
3185}
3186unsafe extern "C" {
3187    pub fn mmc_audio_state2str(i_audio_state: u8) -> *const ::std::os::raw::c_char;
3188}
3189unsafe extern "C" {
3190    pub fn mmc_get_blocksize(p_cdio: *mut CdIo_t) -> ::std::os::raw::c_int;
3191}
3192unsafe extern "C" {
3193    pub fn mmc_get_cmd_len(mmc_cmd: u8) -> u8;
3194}
3195unsafe extern "C" {
3196    pub fn mmc_get_disc_last_lsn(p_cdio: *const CdIo_t) -> lsn_t;
3197}
3198unsafe extern "C" {
3199    pub fn mmc_get_discmode(p_cdio: *const CdIo_t) -> discmode_t;
3200}
3201pub const cdio_mmc_level_t_CDIO_MMC_LEVEL_WEIRD: cdio_mmc_level_t = 0;
3202pub const cdio_mmc_level_t_CDIO_MMC_LEVEL_1: cdio_mmc_level_t = 1;
3203pub const cdio_mmc_level_t_CDIO_MMC_LEVEL_2: cdio_mmc_level_t = 2;
3204pub const cdio_mmc_level_t_CDIO_MMC_LEVEL_3: cdio_mmc_level_t = 3;
3205pub const cdio_mmc_level_t_CDIO_MMC_LEVEL_NONE: cdio_mmc_level_t = 4;
3206pub type cdio_mmc_level_t = ::std::os::raw::c_uint;
3207unsafe extern "C" {
3208    pub fn mmc_get_drive_mmc_cap(p_cdio: *mut CdIo_t) -> cdio_mmc_level_t;
3209}
3210unsafe extern "C" {
3211    pub fn mmc_get_dvd_struct_physical(
3212        p_cdio: *const CdIo_t,
3213        s: *mut cdio_dvd_struct_t,
3214    ) -> discmode_t;
3215}
3216unsafe extern "C" {
3217    pub fn mmc_get_tray_status(p_cdio: *const CdIo_t) -> ::std::os::raw::c_int;
3218}
3219unsafe extern "C" {
3220    pub fn mmc_get_hwinfo(
3221        p_cdio: *const CdIo_t,
3222        p_hw_info: *mut cdio_hwinfo_t,
3223    ) -> ::std::os::raw::c_uchar;
3224}
3225unsafe extern "C" {
3226    pub fn mmc_get_media_changed(p_cdio: *const CdIo_t) -> ::std::os::raw::c_int;
3227}
3228unsafe extern "C" {
3229    pub fn mmc_get_mcn(p_cdio: *const CdIo_t) -> *mut ::std::os::raw::c_char;
3230}
3231unsafe extern "C" {
3232    pub fn mmc_get_track_isrc(
3233        p_cdio: *const CdIo_t,
3234        i_track: track_t,
3235    ) -> *mut ::std::os::raw::c_char;
3236}
3237unsafe extern "C" {
3238    pub fn mmc_read_cdtext(p_cdio: *const CdIo_t) -> *mut u8;
3239}
3240unsafe extern "C" {
3241    pub fn mmc_have_interface(
3242        p_cdio: *mut CdIo_t,
3243        e_interface: cdio_mmc_feature_interface_t,
3244    ) -> bool_3way_t;
3245}
3246unsafe extern "C" {
3247    pub fn mmc_read_data_sectors(
3248        p_cdio: *mut CdIo_t,
3249        p_buf: *mut ::std::os::raw::c_void,
3250        i_lsn: lsn_t,
3251        i_blocksize: u16,
3252        i_blocks: u32,
3253    ) -> driver_return_code_t;
3254}
3255unsafe extern "C" {
3256    pub fn mmc_read_sectors(
3257        p_cdio: *const CdIo_t,
3258        p_buf: *mut ::std::os::raw::c_void,
3259        i_lsn: lsn_t,
3260        read_sector_type: ::std::os::raw::c_int,
3261        i_blocks: u32,
3262    ) -> driver_return_code_t;
3263}
3264unsafe extern "C" {
3265    pub fn mmc_run_cmd(
3266        p_cdio: *const CdIo_t,
3267        i_timeout_ms: ::std::os::raw::c_uint,
3268        p_cdb: *const mmc_cdb_t,
3269        e_direction: cdio_mmc_direction_t,
3270        i_buf: ::std::os::raw::c_uint,
3271        p_buf: *mut ::std::os::raw::c_void,
3272    ) -> driver_return_code_t;
3273}
3274unsafe extern "C" {
3275    pub fn mmc_run_cmd_len(
3276        p_cdio: *const CdIo_t,
3277        i_timeout_ms: ::std::os::raw::c_uint,
3278        p_cdb: *const mmc_cdb_t,
3279        i_cdb: ::std::os::raw::c_uint,
3280        e_direction: cdio_mmc_direction_t,
3281        i_buf: ::std::os::raw::c_uint,
3282        p_buf: *mut ::std::os::raw::c_void,
3283    ) -> driver_return_code_t;
3284}
3285unsafe extern "C" {
3286    pub fn mmc_last_cmd_sense(
3287        p_cdio: *const CdIo_t,
3288        pp_sense: *mut *mut cdio_mmc_request_sense_t,
3289    ) -> ::std::os::raw::c_int;
3290}
3291unsafe extern "C" {
3292    pub fn mmc_set_blocksize(p_cdio: *const CdIo_t, i_blocksize: u16) -> driver_return_code_t;
3293}
3294unsafe extern "C" {
3295    pub fn mmc_cmd2str(command: u8) -> *const ::std::os::raw::c_char;
3296}
3297unsafe extern "C" {
3298    pub static mut debug_cdio_mmc_feature: cdio_mmc_feature_t;
3299}
3300unsafe extern "C" {
3301    pub static mut debug_cdio_mmc_feature_interface: cdio_mmc_feature_interface_t;
3302}
3303unsafe extern "C" {
3304    pub static mut debug_cdio_mmc_feature_profile: cdio_mmc_feature_profile_t;
3305}
3306unsafe extern "C" {
3307    pub static mut debug_cdio_mmc_get_conf: cdio_mmc_get_conf_t;
3308}
3309unsafe extern "C" {
3310    pub static mut debug_cdio_mmc_gpcmd: cdio_mmc_gpcmd_t;
3311}
3312unsafe extern "C" {
3313    pub static mut debug_cdio_mmc_read_sub_state: cdio_mmc_read_sub_state_t;
3314}
3315unsafe extern "C" {
3316    pub static mut debug_cdio_mmc_read_cd_type: cdio_mmc_read_cd_type_t;
3317}
3318unsafe extern "C" {
3319    pub static mut debug_cdio_mmc_readtoc: cdio_mmc_readtoc_t;
3320}
3321unsafe extern "C" {
3322    pub static mut debug_cdio_mmc_mode_page: cdio_mmc_mode_page_t;
3323}
3324unsafe extern "C" {
3325    pub fn mmc_get_configuration(
3326        p_cdio: *const CdIo_t,
3327        p_buf: *mut ::std::os::raw::c_void,
3328        i_size: ::std::os::raw::c_uint,
3329        i_return_type: ::std::os::raw::c_uint,
3330        i_starting_feature_number: ::std::os::raw::c_uint,
3331        i_timeout_ms: ::std::os::raw::c_uint,
3332    ) -> driver_return_code_t;
3333}
3334unsafe extern "C" {
3335    pub fn mmc_get_event_status(p_cdio: *const CdIo_t, out_buf: *mut u8) -> driver_return_code_t;
3336}
3337unsafe extern "C" {
3338    pub fn mmc_mode_select_10(
3339        p_cdio: *mut CdIo_t,
3340        p_buf: *mut ::std::os::raw::c_void,
3341        i_size: ::std::os::raw::c_uint,
3342        page: ::std::os::raw::c_int,
3343        i_timeout_ms: ::std::os::raw::c_uint,
3344    ) -> driver_return_code_t;
3345}
3346unsafe extern "C" {
3347    pub fn mmc_mode_sense_10(
3348        p_cdio: *mut CdIo_t,
3349        p_buf: *mut ::std::os::raw::c_void,
3350        i_size: ::std::os::raw::c_uint,
3351        i_page_code: ::std::os::raw::c_uint,
3352    ) -> driver_return_code_t;
3353}
3354unsafe extern "C" {
3355    pub fn mmc_mode_sense_6(
3356        p_cdio: *mut CdIo_t,
3357        p_buf: *mut ::std::os::raw::c_void,
3358        i_size: ::std::os::raw::c_uint,
3359        page: ::std::os::raw::c_int,
3360    ) -> driver_return_code_t;
3361}
3362unsafe extern "C" {
3363    pub fn mmc_prevent_allow_medium_removal(
3364        p_cdio: *const CdIo_t,
3365        b_persistent: ::std::os::raw::c_uchar,
3366        b_prevent: ::std::os::raw::c_uchar,
3367        i_timeout_ms: ::std::os::raw::c_uint,
3368    ) -> driver_return_code_t;
3369}
3370unsafe extern "C" {
3371    pub fn mmc_read_cd(
3372        p_cdio: *const CdIo_t,
3373        p_buf: *mut ::std::os::raw::c_void,
3374        i_lsn: lsn_t,
3375        expected_sector_type: ::std::os::raw::c_int,
3376        b_digital_audio_play: ::std::os::raw::c_uchar,
3377        b_sync: ::std::os::raw::c_uchar,
3378        header_codes: u8,
3379        b_user_data: ::std::os::raw::c_uchar,
3380        b_edc_ecc: ::std::os::raw::c_uchar,
3381        c2_error_information: u8,
3382        subchannel_selection: u8,
3383        i_blocksize: u16,
3384        i_blocks: u32,
3385    ) -> driver_return_code_t;
3386}
3387unsafe extern "C" {
3388    pub fn mmc_read_disc_information(
3389        p_cdio: *const CdIo_t,
3390        p_buf: *mut ::std::os::raw::c_void,
3391        i_size: ::std::os::raw::c_uint,
3392        data_type: cdio_mmc_read_disc_info_datatype_t,
3393        i_timeout_ms: ::std::os::raw::c_uint,
3394    ) -> driver_return_code_t;
3395}
3396unsafe extern "C" {
3397    pub fn mmc_set_speed(
3398        p_cdio: *const CdIo_t,
3399        i_Kbs_speed: ::std::os::raw::c_int,
3400        i_timeout_ms: ::std::os::raw::c_uint,
3401    ) -> driver_return_code_t;
3402}
3403unsafe extern "C" {
3404    pub fn mmc_start_stop_unit(
3405        p_cdio: *const CdIo_t,
3406        b_eject: ::std::os::raw::c_uchar,
3407        b_immediate: ::std::os::raw::c_uchar,
3408        power_condition: u8,
3409        i_timeout_ms: ::std::os::raw::c_uint,
3410    ) -> driver_return_code_t;
3411}
3412unsafe extern "C" {
3413    pub fn mmc_test_unit_ready(
3414        p_cdio: *const CdIo_t,
3415        i_timeout_ms: ::std::os::raw::c_uint,
3416    ) -> driver_return_code_t;
3417}
3418unsafe extern "C" {
3419    pub fn mmc_read_subchannel(
3420        p_cdio: *const CdIo_t,
3421        i_track: track_t,
3422        sub_chan_param: ::std::os::raw::c_uchar,
3423        i_length: *mut ::std::os::raw::c_uint,
3424        p_buf: *mut ::std::os::raw::c_char,
3425        i_timeout_ms: ::std::os::raw::c_uint,
3426    ) -> driver_return_code_t;
3427}
3428unsafe extern "C" {
3429    pub fn mmc_read_toc_cdtext(
3430        p_cdio: *const CdIo_t,
3431        i_length: *mut ::std::os::raw::c_uint,
3432        p_buf: *mut ::std::os::raw::c_uchar,
3433        i_timeout_ms: ::std::os::raw::c_uint,
3434    ) -> driver_return_code_t;
3435}
3436unsafe extern "C" {
3437    pub fn mmc_close_tray(p_cdio: *mut CdIo_t) -> driver_return_code_t;
3438}
3439unsafe extern "C" {
3440    pub fn mmc_get_disc_erasable(
3441        p_cdio: *const CdIo_t,
3442        b_erasable: *mut ::std::os::raw::c_uchar,
3443    ) -> driver_return_code_t;
3444}
3445unsafe extern "C" {
3446    pub fn mmc_eject_media(p_cdio: *const CdIo_t) -> driver_return_code_t;
3447}
3448unsafe extern "C" {
3449    pub fn mmc_get_disctype(
3450        p_cdio: *const CdIo_t,
3451        i_timeout_ms: ::std::os::raw::c_uint,
3452        p_disctype: *mut cdio_mmc_feature_profile_t,
3453    ) -> driver_return_code_t;
3454}
3455unsafe extern "C" {
3456    pub fn mmc_mode_sense(
3457        p_cdio: *mut CdIo_t,
3458        p_buf: *mut ::std::os::raw::c_void,
3459        i_size: ::std::os::raw::c_uint,
3460        page: ::std::os::raw::c_int,
3461    ) -> driver_return_code_t;
3462}
3463unsafe extern "C" {
3464    pub fn mmc_set_drive_speed(
3465        p_cdio: *const CdIo_t,
3466        i_drive_speed: ::std::os::raw::c_int,
3467    ) -> driver_return_code_t;
3468}
3469#[repr(C)]
3470#[derive(Debug, Copy, Clone)]
3471pub struct cdio_charset_coverter_s {
3472    _unused: [u8; 0],
3473}
3474pub type cdio_charset_coverter_t = cdio_charset_coverter_s;
3475unsafe extern "C" {
3476    pub fn cdio_charset_converter_create(
3477        src_charset: *const ::std::os::raw::c_char,
3478        dst_charset: *const ::std::os::raw::c_char,
3479    ) -> *mut cdio_charset_coverter_t;
3480}
3481unsafe extern "C" {
3482    pub fn cdio_charset_converter_destroy(cnv: *mut cdio_charset_coverter_t);
3483}
3484unsafe extern "C" {
3485    pub fn cdio_charset_convert(
3486        cnv: *mut cdio_charset_coverter_t,
3487        src: *mut ::std::os::raw::c_char,
3488        src_len: ::std::os::raw::c_int,
3489        dst: *mut *mut ::std::os::raw::c_char,
3490        dst_len: *mut ::std::os::raw::c_int,
3491    ) -> ::std::os::raw::c_uchar;
3492}
3493unsafe extern "C" {
3494    pub fn cdio_charset_from_utf8(
3495        src: *mut cdio_utf8_t,
3496        dst: *mut *mut ::std::os::raw::c_char,
3497        dst_len: *mut ::std::os::raw::c_int,
3498        dst_charset: *const ::std::os::raw::c_char,
3499    ) -> ::std::os::raw::c_uchar;
3500}
3501unsafe extern "C" {
3502    pub fn cdio_charset_to_utf8(
3503        src: *const ::std::os::raw::c_char,
3504        src_len: usize,
3505        dst: *mut *mut cdio_utf8_t,
3506        src_charset: *const ::std::os::raw::c_char,
3507    ) -> ::std::os::raw::c_uchar;
3508}
3509#[repr(C)]
3510#[derive(Debug, Copy, Clone)]
3511pub struct tm {
3512    pub tm_sec: ::std::os::raw::c_int,
3513    pub tm_min: ::std::os::raw::c_int,
3514    pub tm_hour: ::std::os::raw::c_int,
3515    pub tm_mday: ::std::os::raw::c_int,
3516    pub tm_mon: ::std::os::raw::c_int,
3517    pub tm_year: ::std::os::raw::c_int,
3518    pub tm_wday: ::std::os::raw::c_int,
3519    pub tm_yday: ::std::os::raw::c_int,
3520    pub tm_isdst: ::std::os::raw::c_int,
3521    pub tm_gmtoff: ::std::os::raw::c_long,
3522    pub tm_zone: *const ::std::os::raw::c_char,
3523}
3524#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3525const _: () = {
3526    ["Size of tm"][::std::mem::size_of::<tm>() - 56usize];
3527    ["Alignment of tm"][::std::mem::align_of::<tm>() - 8usize];
3528    ["Offset of field: tm::tm_sec"][::std::mem::offset_of!(tm, tm_sec) - 0usize];
3529    ["Offset of field: tm::tm_min"][::std::mem::offset_of!(tm, tm_min) - 4usize];
3530    ["Offset of field: tm::tm_hour"][::std::mem::offset_of!(tm, tm_hour) - 8usize];
3531    ["Offset of field: tm::tm_mday"][::std::mem::offset_of!(tm, tm_mday) - 12usize];
3532    ["Offset of field: tm::tm_mon"][::std::mem::offset_of!(tm, tm_mon) - 16usize];
3533    ["Offset of field: tm::tm_year"][::std::mem::offset_of!(tm, tm_year) - 20usize];
3534    ["Offset of field: tm::tm_wday"][::std::mem::offset_of!(tm, tm_wday) - 24usize];
3535    ["Offset of field: tm::tm_yday"][::std::mem::offset_of!(tm, tm_yday) - 28usize];
3536    ["Offset of field: tm::tm_isdst"][::std::mem::offset_of!(tm, tm_isdst) - 32usize];
3537    ["Offset of field: tm::tm_gmtoff"][::std::mem::offset_of!(tm, tm_gmtoff) - 40usize];
3538    ["Offset of field: tm::tm_zone"][::std::mem::offset_of!(tm, tm_zone) - 48usize];
3539};
3540#[repr(C)]
3541#[derive(Debug, Copy, Clone)]
3542pub struct _CdioList {
3543    _unused: [u8; 0],
3544}
3545pub type CdioList_t = _CdioList;
3546#[repr(C)]
3547#[derive(Debug, Copy, Clone)]
3548pub struct _CdioListNode {
3549    _unused: [u8; 0],
3550}
3551pub type CdioListNode_t = _CdioListNode;
3552pub type _cdio_list_cmp_func_t = ::std::option::Option<
3553    unsafe extern "C" fn(
3554        p_data1: *mut ::std::os::raw::c_void,
3555        p_data2: *mut ::std::os::raw::c_void,
3556    ) -> ::std::os::raw::c_int,
3557>;
3558pub type _cdio_list_iterfunc_t = ::std::option::Option<
3559    unsafe extern "C" fn(
3560        p_data: *mut ::std::os::raw::c_void,
3561        p_user_data: *mut ::std::os::raw::c_void,
3562    ) -> ::std::os::raw::c_int,
3563>;
3564unsafe extern "C" {
3565    pub fn _cdio_list_new() -> *mut CdioList_t;
3566}
3567unsafe extern "C" {
3568    pub fn _cdio_list_free(
3569        p_list: *mut CdioList_t,
3570        free_data: ::std::os::raw::c_int,
3571        free_fn: CdioDataFree_t,
3572    );
3573}
3574unsafe extern "C" {
3575    pub fn _cdio_list_length(list: *const CdioList_t) -> ::std::os::raw::c_uint;
3576}
3577unsafe extern "C" {
3578    pub fn _cdio_list_prepend(p_list: *mut CdioList_t, p_data: *mut ::std::os::raw::c_void);
3579}
3580unsafe extern "C" {
3581    pub fn _cdio_list_append(p_list: *mut CdioList_t, p_data: *mut ::std::os::raw::c_void);
3582}
3583unsafe extern "C" {
3584    pub fn _cdio_list_foreach(
3585        p_list: *mut CdioList_t,
3586        func: _cdio_list_iterfunc_t,
3587        p_user_data: *mut ::std::os::raw::c_void,
3588    );
3589}
3590unsafe extern "C" {
3591    pub fn _cdio_list_find(
3592        p_list: *mut CdioList_t,
3593        cmp_func: _cdio_list_iterfunc_t,
3594        p_user_data: *mut ::std::os::raw::c_void,
3595    ) -> *mut CdioListNode_t;
3596}
3597unsafe extern "C" {
3598    pub fn _cdio_list_begin(p_list: *const CdioList_t) -> *mut CdioListNode_t;
3599}
3600unsafe extern "C" {
3601    pub fn _cdio_list_end(p_list: *mut CdioList_t) -> *mut CdioListNode_t;
3602}
3603unsafe extern "C" {
3604    pub fn _cdio_list_node_next(p_node: *mut CdioListNode_t) -> *mut CdioListNode_t;
3605}
3606unsafe extern "C" {
3607    pub fn _cdio_list_node_free(
3608        p_node: *mut CdioListNode_t,
3609        i_free_data: ::std::os::raw::c_int,
3610        free_fn: CdioDataFree_t,
3611    );
3612}
3613unsafe extern "C" {
3614    pub fn _cdio_list_node_data(p_node: *mut CdioListNode_t) -> *mut ::std::os::raw::c_void;
3615}
3616pub type posix_mode_t = u32;
3617pub type posix_nlink_t = u32;
3618pub type posix_uid_t = u32;
3619pub type posix_gid_t = u32;
3620pub type unicode16_t = u16;
3621pub type iso711_t = u8;
3622pub type iso712_t = i8;
3623pub type iso721_t = u16;
3624pub type iso722_t = u16;
3625pub type iso723_t = u32;
3626pub type iso731_t = u32;
3627pub type iso732_t = u32;
3628pub type iso733_t = u64;
3629pub type achar_t = ::std::os::raw::c_char;
3630pub type dchar_t = ::std::os::raw::c_char;
3631pub const xa_misc_enum_t_ISO_XA_MARKER_OFFSET: xa_misc_enum_t = 1024;
3632pub const xa_misc_enum_t_XA_PERM_RSYS: xa_misc_enum_t = 1;
3633pub const xa_misc_enum_t_XA_PERM_XSYS: xa_misc_enum_t = 4;
3634pub const xa_misc_enum_t_XA_PERM_RUSR: xa_misc_enum_t = 16;
3635pub const xa_misc_enum_t_XA_PERM_XUSR: xa_misc_enum_t = 64;
3636pub const xa_misc_enum_t_XA_PERM_RGRP: xa_misc_enum_t = 256;
3637pub const xa_misc_enum_t_XA_PERM_XGRP: xa_misc_enum_t = 1024;
3638pub const xa_misc_enum_t_XA_PERM_ROTH: xa_misc_enum_t = 4096;
3639pub const xa_misc_enum_t_XA_PERM_XOTH: xa_misc_enum_t = 16384;
3640pub const xa_misc_enum_t_XA_ATTR_MODE2FORM1: xa_misc_enum_t = 2048;
3641pub const xa_misc_enum_t_XA_ATTR_MODE2FORM2: xa_misc_enum_t = 4096;
3642pub const xa_misc_enum_t_XA_ATTR_INTERLEAVED: xa_misc_enum_t = 8192;
3643pub const xa_misc_enum_t_XA_ATTR_CDDA: xa_misc_enum_t = 16384;
3644pub const xa_misc_enum_t_XA_ATTR_DIRECTORY: xa_misc_enum_t = 32768;
3645pub const xa_misc_enum_t_XA_PERM_ALL_READ: xa_misc_enum_t = 273;
3646pub const xa_misc_enum_t_XA_PERM_ALL_EXEC: xa_misc_enum_t = 1092;
3647pub const xa_misc_enum_t_XA_PERM_ALL_ALL: xa_misc_enum_t = 1365;
3648pub const xa_misc_enum_t_XA_FORM1_DIR: xa_misc_enum_t = 36181;
3649pub const xa_misc_enum_t_XA_FORM1_FILE: xa_misc_enum_t = 3413;
3650pub const xa_misc_enum_t_XA_FORM2_FILE: xa_misc_enum_t = 5461;
3651pub type xa_misc_enum_t = ::std::os::raw::c_uint;
3652#[repr(C, packed)]
3653#[derive(Debug, Copy, Clone)]
3654pub struct iso9660_xa_s {
3655    pub group_id: u16,
3656    pub user_id: u16,
3657    pub attributes: u16,
3658    pub signature: [::std::os::raw::c_char; 2usize],
3659    pub filenum: u8,
3660    pub reserved: [u8; 5usize],
3661}
3662#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3663const _: () = {
3664    ["Size of iso9660_xa_s"][::std::mem::size_of::<iso9660_xa_s>() - 14usize];
3665    ["Alignment of iso9660_xa_s"][::std::mem::align_of::<iso9660_xa_s>() - 1usize];
3666    ["Offset of field: iso9660_xa_s::group_id"]
3667        [::std::mem::offset_of!(iso9660_xa_s, group_id) - 0usize];
3668    ["Offset of field: iso9660_xa_s::user_id"]
3669        [::std::mem::offset_of!(iso9660_xa_s, user_id) - 2usize];
3670    ["Offset of field: iso9660_xa_s::attributes"]
3671        [::std::mem::offset_of!(iso9660_xa_s, attributes) - 4usize];
3672    ["Offset of field: iso9660_xa_s::signature"]
3673        [::std::mem::offset_of!(iso9660_xa_s, signature) - 6usize];
3674    ["Offset of field: iso9660_xa_s::filenum"]
3675        [::std::mem::offset_of!(iso9660_xa_s, filenum) - 8usize];
3676    ["Offset of field: iso9660_xa_s::reserved"]
3677        [::std::mem::offset_of!(iso9660_xa_s, reserved) - 9usize];
3678};
3679pub type iso9660_xa_t = iso9660_xa_s;
3680unsafe extern "C" {
3681    pub fn iso9660_get_posix_filemode_from_xa(i_perms: u16) -> posix_mode_t;
3682}
3683unsafe extern "C" {
3684    pub fn iso9660_get_xa_attr_str(xa_attr: u16) -> *const ::std::os::raw::c_char;
3685}
3686unsafe extern "C" {
3687    pub fn iso9660_xa_init(
3688        _xa: *mut iso9660_xa_t,
3689        uid: u16,
3690        gid: u16,
3691        attr: u16,
3692        filenum: u8,
3693    ) -> *mut iso9660_xa_t;
3694}
3695unsafe extern "C" {
3696    pub fn iso9660_xa_free(_xa: *mut iso9660_xa_t);
3697}
3698pub const iso_enum1_s_ISO_PVD_SECTOR: iso_enum1_s = 16;
3699pub const iso_enum1_s_ISO_EVD_SECTOR: iso_enum1_s = 17;
3700pub const iso_enum1_s_LEN_ISONAME: iso_enum1_s = 31;
3701pub const iso_enum1_s_ISO_MAX_SYSTEM_ID: iso_enum1_s = 32;
3702pub const iso_enum1_s_MAX_ISONAME: iso_enum1_s = 37;
3703pub const iso_enum1_s_ISO_MAX_PREPARER_ID: iso_enum1_s = 128;
3704pub const iso_enum1_s_MAX_ISOPATHNAME: iso_enum1_s = 255;
3705pub const iso_enum1_s_ISO_BLOCKSIZE: iso_enum1_s = 2048;
3706pub type iso_enum1_s = ::std::os::raw::c_uint;
3707unsafe extern "C" {
3708    pub static mut iso_enums1: iso_enum1_s;
3709}
3710pub const iso_flag_enum_s_ISO_FILE: iso_flag_enum_s = 0;
3711pub const iso_flag_enum_s_ISO_EXISTENCE: iso_flag_enum_s = 1;
3712pub const iso_flag_enum_s_ISO_DIRECTORY: iso_flag_enum_s = 2;
3713pub const iso_flag_enum_s_ISO_ASSOCIATED: iso_flag_enum_s = 4;
3714pub const iso_flag_enum_s_ISO_RECORD: iso_flag_enum_s = 8;
3715pub const iso_flag_enum_s_ISO_PROTECTION: iso_flag_enum_s = 16;
3716pub const iso_flag_enum_s_ISO_DRESERVED1: iso_flag_enum_s = 32;
3717pub const iso_flag_enum_s_ISO_DRESERVED2: iso_flag_enum_s = 64;
3718pub const iso_flag_enum_s_ISO_MULTIEXTENT: iso_flag_enum_s = 128;
3719pub type iso_flag_enum_s = ::std::os::raw::c_uint;
3720unsafe extern "C" {
3721    pub static mut iso_flag_enums: iso_flag_enum_s;
3722}
3723pub const iso_vd_enum_s_ISO_VD_BOOT_RECORD: iso_vd_enum_s = 0;
3724pub const iso_vd_enum_s_ISO_VD_PRIMARY: iso_vd_enum_s = 1;
3725pub const iso_vd_enum_s_ISO_VD_SUPPLEMENTARY: iso_vd_enum_s = 2;
3726pub const iso_vd_enum_s_ISO_VD_PARITION: iso_vd_enum_s = 3;
3727pub const iso_vd_enum_s_ISO_VD_END: iso_vd_enum_s = 255;
3728pub type iso_vd_enum_s = ::std::os::raw::c_uint;
3729unsafe extern "C" {
3730    pub static mut iso_vd_enums: iso_vd_enum_s;
3731}
3732pub const strncpy_pad_check_ISO9660_NOCHECK: strncpy_pad_check = 0;
3733pub const strncpy_pad_check_ISO9660_7BIT: strncpy_pad_check = 1;
3734pub const strncpy_pad_check_ISO9660_ACHARS: strncpy_pad_check = 2;
3735pub const strncpy_pad_check_ISO9660_DCHARS: strncpy_pad_check = 3;
3736pub type strncpy_pad_check = ::std::os::raw::c_uint;
3737pub use self::strncpy_pad_check as strncpy_pad_check_t;
3738#[repr(C, packed)]
3739#[derive(Debug, Copy, Clone)]
3740pub struct iso9660_dtime_s {
3741    pub dt_year: iso711_t,
3742    pub dt_month: iso711_t,
3743    pub dt_day: iso711_t,
3744    pub dt_hour: iso711_t,
3745    pub dt_minute: iso711_t,
3746    pub dt_second: iso711_t,
3747    pub dt_gmtoff: iso712_t,
3748}
3749#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3750const _: () = {
3751    ["Size of iso9660_dtime_s"][::std::mem::size_of::<iso9660_dtime_s>() - 7usize];
3752    ["Alignment of iso9660_dtime_s"][::std::mem::align_of::<iso9660_dtime_s>() - 1usize];
3753    ["Offset of field: iso9660_dtime_s::dt_year"]
3754        [::std::mem::offset_of!(iso9660_dtime_s, dt_year) - 0usize];
3755    ["Offset of field: iso9660_dtime_s::dt_month"]
3756        [::std::mem::offset_of!(iso9660_dtime_s, dt_month) - 1usize];
3757    ["Offset of field: iso9660_dtime_s::dt_day"]
3758        [::std::mem::offset_of!(iso9660_dtime_s, dt_day) - 2usize];
3759    ["Offset of field: iso9660_dtime_s::dt_hour"]
3760        [::std::mem::offset_of!(iso9660_dtime_s, dt_hour) - 3usize];
3761    ["Offset of field: iso9660_dtime_s::dt_minute"]
3762        [::std::mem::offset_of!(iso9660_dtime_s, dt_minute) - 4usize];
3763    ["Offset of field: iso9660_dtime_s::dt_second"]
3764        [::std::mem::offset_of!(iso9660_dtime_s, dt_second) - 5usize];
3765    ["Offset of field: iso9660_dtime_s::dt_gmtoff"]
3766        [::std::mem::offset_of!(iso9660_dtime_s, dt_gmtoff) - 6usize];
3767};
3768pub type iso9660_dtime_t = iso9660_dtime_s;
3769#[repr(C, packed)]
3770#[derive(Debug, Copy, Clone)]
3771pub struct iso9660_ltime_s {
3772    pub lt_year: [::std::os::raw::c_char; 4usize],
3773    pub lt_month: [::std::os::raw::c_char; 2usize],
3774    pub lt_day: [::std::os::raw::c_char; 2usize],
3775    pub lt_hour: [::std::os::raw::c_char; 2usize],
3776    pub lt_minute: [::std::os::raw::c_char; 2usize],
3777    pub lt_second: [::std::os::raw::c_char; 2usize],
3778    pub lt_hsecond: [::std::os::raw::c_char; 2usize],
3779    pub lt_gmtoff: iso712_t,
3780}
3781#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3782const _: () = {
3783    ["Size of iso9660_ltime_s"][::std::mem::size_of::<iso9660_ltime_s>() - 17usize];
3784    ["Alignment of iso9660_ltime_s"][::std::mem::align_of::<iso9660_ltime_s>() - 1usize];
3785    ["Offset of field: iso9660_ltime_s::lt_year"]
3786        [::std::mem::offset_of!(iso9660_ltime_s, lt_year) - 0usize];
3787    ["Offset of field: iso9660_ltime_s::lt_month"]
3788        [::std::mem::offset_of!(iso9660_ltime_s, lt_month) - 4usize];
3789    ["Offset of field: iso9660_ltime_s::lt_day"]
3790        [::std::mem::offset_of!(iso9660_ltime_s, lt_day) - 6usize];
3791    ["Offset of field: iso9660_ltime_s::lt_hour"]
3792        [::std::mem::offset_of!(iso9660_ltime_s, lt_hour) - 8usize];
3793    ["Offset of field: iso9660_ltime_s::lt_minute"]
3794        [::std::mem::offset_of!(iso9660_ltime_s, lt_minute) - 10usize];
3795    ["Offset of field: iso9660_ltime_s::lt_second"]
3796        [::std::mem::offset_of!(iso9660_ltime_s, lt_second) - 12usize];
3797    ["Offset of field: iso9660_ltime_s::lt_hsecond"]
3798        [::std::mem::offset_of!(iso9660_ltime_s, lt_hsecond) - 14usize];
3799    ["Offset of field: iso9660_ltime_s::lt_gmtoff"]
3800        [::std::mem::offset_of!(iso9660_ltime_s, lt_gmtoff) - 16usize];
3801};
3802pub type iso9660_ltime_t = iso9660_ltime_s;
3803pub type iso9660_dir_t = iso9660_dir_s;
3804pub type iso9660_stat_t = iso9660_stat_s;
3805pub const iso_rock_enums_ISO_ROCK_IRUSR: iso_rock_enums = 256;
3806pub const iso_rock_enums_ISO_ROCK_IWUSR: iso_rock_enums = 128;
3807pub const iso_rock_enums_ISO_ROCK_IXUSR: iso_rock_enums = 64;
3808pub const iso_rock_enums_ISO_ROCK_IRGRP: iso_rock_enums = 32;
3809pub const iso_rock_enums_ISO_ROCK_IWGRP: iso_rock_enums = 16;
3810pub const iso_rock_enums_ISO_ROCK_IXGRP: iso_rock_enums = 8;
3811pub const iso_rock_enums_ISO_ROCK_IROTH: iso_rock_enums = 4;
3812pub const iso_rock_enums_ISO_ROCK_IWOTH: iso_rock_enums = 2;
3813pub const iso_rock_enums_ISO_ROCK_IXOTH: iso_rock_enums = 1;
3814pub const iso_rock_enums_ISO_ROCK_ISUID: iso_rock_enums = 2048;
3815pub const iso_rock_enums_ISO_ROCK_ISGID: iso_rock_enums = 1024;
3816pub const iso_rock_enums_ISO_ROCK_ISVTX: iso_rock_enums = 512;
3817pub const iso_rock_enums_ISO_ROCK_ISSOCK: iso_rock_enums = 49152;
3818pub const iso_rock_enums_ISO_ROCK_ISLNK: iso_rock_enums = 40960;
3819pub const iso_rock_enums_ISO_ROCK_ISREG: iso_rock_enums = 32768;
3820pub const iso_rock_enums_ISO_ROCK_ISBLK: iso_rock_enums = 24576;
3821pub const iso_rock_enums_ISO_ROCK_ISCHR: iso_rock_enums = 8192;
3822pub const iso_rock_enums_ISO_ROCK_ISDIR: iso_rock_enums = 16384;
3823pub const iso_rock_enums_ISO_ROCK_ISFIFO: iso_rock_enums = 4096;
3824pub type iso_rock_enums = ::std::os::raw::c_uint;
3825unsafe extern "C" {
3826    pub static mut iso_rock_enums: iso_rock_enums;
3827}
3828#[repr(C, packed)]
3829#[derive(Debug, Copy, Clone)]
3830pub struct iso_su_sp_s {
3831    pub magic: [::std::os::raw::c_uchar; 2usize],
3832    pub skip: u8,
3833}
3834#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3835const _: () = {
3836    ["Size of iso_su_sp_s"][::std::mem::size_of::<iso_su_sp_s>() - 3usize];
3837    ["Alignment of iso_su_sp_s"][::std::mem::align_of::<iso_su_sp_s>() - 1usize];
3838    ["Offset of field: iso_su_sp_s::magic"][::std::mem::offset_of!(iso_su_sp_s, magic) - 0usize];
3839    ["Offset of field: iso_su_sp_s::skip"][::std::mem::offset_of!(iso_su_sp_s, skip) - 2usize];
3840};
3841pub type iso_su_sp_t = iso_su_sp_s;
3842#[repr(C, packed)]
3843pub struct iso_su_er_s {
3844    pub len_id: iso711_t,
3845    pub len_des: ::std::os::raw::c_uchar,
3846    pub len_src: ::std::os::raw::c_uchar,
3847    pub ext_ver: iso711_t,
3848    pub data: __IncompleteArrayField<::std::os::raw::c_char>,
3849}
3850#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3851const _: () = {
3852    ["Size of iso_su_er_s"][::std::mem::size_of::<iso_su_er_s>() - 4usize];
3853    ["Alignment of iso_su_er_s"][::std::mem::align_of::<iso_su_er_s>() - 1usize];
3854    ["Offset of field: iso_su_er_s::len_id"][::std::mem::offset_of!(iso_su_er_s, len_id) - 0usize];
3855    ["Offset of field: iso_su_er_s::len_des"]
3856        [::std::mem::offset_of!(iso_su_er_s, len_des) - 1usize];
3857    ["Offset of field: iso_su_er_s::len_src"]
3858        [::std::mem::offset_of!(iso_su_er_s, len_src) - 2usize];
3859    ["Offset of field: iso_su_er_s::ext_ver"]
3860        [::std::mem::offset_of!(iso_su_er_s, ext_ver) - 3usize];
3861    ["Offset of field: iso_su_er_s::data"][::std::mem::offset_of!(iso_su_er_s, data) - 4usize];
3862};
3863pub type iso_su_er_t = iso_su_er_s;
3864#[repr(C)]
3865#[derive(Debug, Copy, Clone)]
3866pub struct iso_su_ce_s {
3867    pub extent: [::std::os::raw::c_char; 8usize],
3868    pub offset: [::std::os::raw::c_char; 8usize],
3869    pub size: [::std::os::raw::c_char; 8usize],
3870}
3871#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3872const _: () = {
3873    ["Size of iso_su_ce_s"][::std::mem::size_of::<iso_su_ce_s>() - 24usize];
3874    ["Alignment of iso_su_ce_s"][::std::mem::align_of::<iso_su_ce_s>() - 1usize];
3875    ["Offset of field: iso_su_ce_s::extent"][::std::mem::offset_of!(iso_su_ce_s, extent) - 0usize];
3876    ["Offset of field: iso_su_ce_s::offset"][::std::mem::offset_of!(iso_su_ce_s, offset) - 8usize];
3877    ["Offset of field: iso_su_ce_s::size"][::std::mem::offset_of!(iso_su_ce_s, size) - 16usize];
3878};
3879pub type iso_su_ce_t = iso_su_ce_s;
3880#[repr(C, packed)]
3881#[derive(Debug, Copy, Clone)]
3882pub struct iso_rock_px_s {
3883    pub st_mode: iso733_t,
3884    pub st_nlinks: iso733_t,
3885    pub st_uid: iso733_t,
3886    pub st_gid: iso733_t,
3887}
3888#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3889const _: () = {
3890    ["Size of iso_rock_px_s"][::std::mem::size_of::<iso_rock_px_s>() - 32usize];
3891    ["Alignment of iso_rock_px_s"][::std::mem::align_of::<iso_rock_px_s>() - 1usize];
3892    ["Offset of field: iso_rock_px_s::st_mode"]
3893        [::std::mem::offset_of!(iso_rock_px_s, st_mode) - 0usize];
3894    ["Offset of field: iso_rock_px_s::st_nlinks"]
3895        [::std::mem::offset_of!(iso_rock_px_s, st_nlinks) - 8usize];
3896    ["Offset of field: iso_rock_px_s::st_uid"]
3897        [::std::mem::offset_of!(iso_rock_px_s, st_uid) - 16usize];
3898    ["Offset of field: iso_rock_px_s::st_gid"]
3899        [::std::mem::offset_of!(iso_rock_px_s, st_gid) - 24usize];
3900};
3901pub type iso_rock_px_t = iso_rock_px_s;
3902#[repr(C, packed)]
3903#[derive(Debug, Copy, Clone)]
3904pub struct iso_rock_pn_s {
3905    pub dev_high: iso733_t,
3906    pub dev_low: iso733_t,
3907}
3908#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3909const _: () = {
3910    ["Size of iso_rock_pn_s"][::std::mem::size_of::<iso_rock_pn_s>() - 16usize];
3911    ["Alignment of iso_rock_pn_s"][::std::mem::align_of::<iso_rock_pn_s>() - 1usize];
3912    ["Offset of field: iso_rock_pn_s::dev_high"]
3913        [::std::mem::offset_of!(iso_rock_pn_s, dev_high) - 0usize];
3914    ["Offset of field: iso_rock_pn_s::dev_low"]
3915        [::std::mem::offset_of!(iso_rock_pn_s, dev_low) - 8usize];
3916};
3917pub type iso_rock_pn_t = iso_rock_pn_s;
3918pub const iso_rock_sl_flag_t_ISO_ROCK_SL_CONTINUE: iso_rock_sl_flag_t = 1;
3919pub const iso_rock_sl_flag_t_ISO_ROCK_SL_CURRENT: iso_rock_sl_flag_t = 2;
3920pub const iso_rock_sl_flag_t_ISO_ROCK_SL_PARENT: iso_rock_sl_flag_t = 4;
3921pub const iso_rock_sl_flag_t_ISO_ROCK_SL_ROOT: iso_rock_sl_flag_t = 8;
3922pub type iso_rock_sl_flag_t = ::std::os::raw::c_uint;
3923#[repr(C, packed)]
3924pub struct iso_rock_sl_part_s {
3925    pub flags: u8,
3926    pub len: u8,
3927    pub text: __IncompleteArrayField<::std::os::raw::c_char>,
3928}
3929#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3930const _: () = {
3931    ["Size of iso_rock_sl_part_s"][::std::mem::size_of::<iso_rock_sl_part_s>() - 2usize];
3932    ["Alignment of iso_rock_sl_part_s"][::std::mem::align_of::<iso_rock_sl_part_s>() - 1usize];
3933    ["Offset of field: iso_rock_sl_part_s::flags"]
3934        [::std::mem::offset_of!(iso_rock_sl_part_s, flags) - 0usize];
3935    ["Offset of field: iso_rock_sl_part_s::len"]
3936        [::std::mem::offset_of!(iso_rock_sl_part_s, len) - 1usize];
3937    ["Offset of field: iso_rock_sl_part_s::text"]
3938        [::std::mem::offset_of!(iso_rock_sl_part_s, text) - 2usize];
3939};
3940pub type iso_rock_sl_part_t = iso_rock_sl_part_s;
3941#[repr(C, packed)]
3942pub struct iso_rock_sl_s {
3943    pub flags: ::std::os::raw::c_uchar,
3944    pub link: iso_rock_sl_part_t,
3945}
3946#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3947const _: () = {
3948    ["Size of iso_rock_sl_s"][::std::mem::size_of::<iso_rock_sl_s>() - 3usize];
3949    ["Alignment of iso_rock_sl_s"][::std::mem::align_of::<iso_rock_sl_s>() - 1usize];
3950    ["Offset of field: iso_rock_sl_s::flags"]
3951        [::std::mem::offset_of!(iso_rock_sl_s, flags) - 0usize];
3952    ["Offset of field: iso_rock_sl_s::link"][::std::mem::offset_of!(iso_rock_sl_s, link) - 1usize];
3953};
3954pub type iso_rock_sl_t = iso_rock_sl_s;
3955pub const iso_rock_nm_flag_t_ISO_ROCK_NM_CONTINUE: iso_rock_nm_flag_t = 1;
3956pub const iso_rock_nm_flag_t_ISO_ROCK_NM_CURRENT: iso_rock_nm_flag_t = 2;
3957pub const iso_rock_nm_flag_t_ISO_ROCK_NM_PARENT: iso_rock_nm_flag_t = 4;
3958pub type iso_rock_nm_flag_t = ::std::os::raw::c_uint;
3959#[repr(C, packed)]
3960pub struct iso_rock_nm_s {
3961    pub flags: ::std::os::raw::c_uchar,
3962    pub name: __IncompleteArrayField<::std::os::raw::c_char>,
3963}
3964#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3965const _: () = {
3966    ["Size of iso_rock_nm_s"][::std::mem::size_of::<iso_rock_nm_s>() - 1usize];
3967    ["Alignment of iso_rock_nm_s"][::std::mem::align_of::<iso_rock_nm_s>() - 1usize];
3968    ["Offset of field: iso_rock_nm_s::flags"]
3969        [::std::mem::offset_of!(iso_rock_nm_s, flags) - 0usize];
3970    ["Offset of field: iso_rock_nm_s::name"][::std::mem::offset_of!(iso_rock_nm_s, name) - 1usize];
3971};
3972pub type iso_rock_nm_t = iso_rock_nm_s;
3973#[repr(C, packed)]
3974#[derive(Debug, Copy, Clone)]
3975pub struct iso_rock_cl_s {
3976    pub location: [::std::os::raw::c_char; 1usize],
3977}
3978#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3979const _: () = {
3980    ["Size of iso_rock_cl_s"][::std::mem::size_of::<iso_rock_cl_s>() - 1usize];
3981    ["Alignment of iso_rock_cl_s"][::std::mem::align_of::<iso_rock_cl_s>() - 1usize];
3982    ["Offset of field: iso_rock_cl_s::location"]
3983        [::std::mem::offset_of!(iso_rock_cl_s, location) - 0usize];
3984};
3985pub type iso_rock_cl_t = iso_rock_cl_s;
3986#[repr(C, packed)]
3987#[derive(Debug, Copy, Clone)]
3988pub struct iso_rock_pl_s {
3989    pub location: [::std::os::raw::c_char; 1usize],
3990}
3991#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3992const _: () = {
3993    ["Size of iso_rock_pl_s"][::std::mem::size_of::<iso_rock_pl_s>() - 1usize];
3994    ["Alignment of iso_rock_pl_s"][::std::mem::align_of::<iso_rock_pl_s>() - 1usize];
3995    ["Offset of field: iso_rock_pl_s::location"]
3996        [::std::mem::offset_of!(iso_rock_pl_s, location) - 0usize];
3997};
3998pub type iso_rock_pl_t = iso_rock_pl_s;
3999pub const iso_rock_tf_flag_t_ISO_ROCK_TF_CREATE: iso_rock_tf_flag_t = 1;
4000pub const iso_rock_tf_flag_t_ISO_ROCK_TF_MODIFY: iso_rock_tf_flag_t = 2;
4001pub const iso_rock_tf_flag_t_ISO_ROCK_TF_ACCESS: iso_rock_tf_flag_t = 4;
4002pub const iso_rock_tf_flag_t_ISO_ROCK_TF_ATTRIBUTES: iso_rock_tf_flag_t = 8;
4003pub const iso_rock_tf_flag_t_ISO_ROCK_TF_BACKUP: iso_rock_tf_flag_t = 16;
4004pub const iso_rock_tf_flag_t_ISO_ROCK_TF_EXPIRATION: iso_rock_tf_flag_t = 32;
4005pub const iso_rock_tf_flag_t_ISO_ROCK_TF_EFFECTIVE: iso_rock_tf_flag_t = 64;
4006pub const iso_rock_tf_flag_t_ISO_ROCK_TF_LONG_FORM: iso_rock_tf_flag_t = 128;
4007pub type iso_rock_tf_flag_t = ::std::os::raw::c_uint;
4008#[repr(C, packed)]
4009pub struct iso_rock_tf_s {
4010    pub flags: u8,
4011    pub time_bytes: __IncompleteArrayField<u8>,
4012}
4013#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4014const _: () = {
4015    ["Size of iso_rock_tf_s"][::std::mem::size_of::<iso_rock_tf_s>() - 1usize];
4016    ["Alignment of iso_rock_tf_s"][::std::mem::align_of::<iso_rock_tf_s>() - 1usize];
4017    ["Offset of field: iso_rock_tf_s::flags"]
4018        [::std::mem::offset_of!(iso_rock_tf_s, flags) - 0usize];
4019    ["Offset of field: iso_rock_tf_s::time_bytes"]
4020        [::std::mem::offset_of!(iso_rock_tf_s, time_bytes) - 1usize];
4021};
4022pub type iso_rock_tf_t = iso_rock_tf_s;
4023#[repr(C, packed)]
4024#[derive(Debug, Copy, Clone)]
4025pub struct iso_rock_sf_s {
4026    pub virtual_size_high: iso733_t,
4027    pub virtual_size_low: iso733_t,
4028    pub table_depth: u8,
4029}
4030#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4031const _: () = {
4032    ["Size of iso_rock_sf_s"][::std::mem::size_of::<iso_rock_sf_s>() - 17usize];
4033    ["Alignment of iso_rock_sf_s"][::std::mem::align_of::<iso_rock_sf_s>() - 1usize];
4034    ["Offset of field: iso_rock_sf_s::virtual_size_high"]
4035        [::std::mem::offset_of!(iso_rock_sf_s, virtual_size_high) - 0usize];
4036    ["Offset of field: iso_rock_sf_s::virtual_size_low"]
4037        [::std::mem::offset_of!(iso_rock_sf_s, virtual_size_low) - 8usize];
4038    ["Offset of field: iso_rock_sf_s::table_depth"]
4039        [::std::mem::offset_of!(iso_rock_sf_s, table_depth) - 16usize];
4040};
4041pub type iso_rock_sf_t = iso_rock_sf_s;
4042#[repr(C, packed)]
4043pub struct iso_extension_record_s {
4044    pub signature: [::std::os::raw::c_char; 2usize],
4045    pub len: iso711_t,
4046    pub version: iso711_t,
4047    pub u: iso_extension_record_s__bindgen_ty_1,
4048}
4049#[repr(C)]
4050pub struct iso_extension_record_s__bindgen_ty_1 {
4051    pub SP: __BindgenUnionField<iso_su_sp_t>,
4052    pub ER: __BindgenUnionField<iso_su_er_t>,
4053    pub CE: __BindgenUnionField<iso_su_ce_t>,
4054    pub PX: __BindgenUnionField<iso_rock_px_t>,
4055    pub PN: __BindgenUnionField<iso_rock_pn_t>,
4056    pub SL: __BindgenUnionField<iso_rock_sl_t>,
4057    pub NM: __BindgenUnionField<iso_rock_nm_t>,
4058    pub CL: __BindgenUnionField<iso_rock_cl_t>,
4059    pub PL: __BindgenUnionField<iso_rock_pl_t>,
4060    pub TF: __BindgenUnionField<iso_rock_tf_t>,
4061    pub bindgen_union_field: [u8; 32usize],
4062}
4063#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4064const _: () = {
4065    ["Size of iso_extension_record_s__bindgen_ty_1"]
4066        [::std::mem::size_of::<iso_extension_record_s__bindgen_ty_1>() - 32usize];
4067    ["Alignment of iso_extension_record_s__bindgen_ty_1"]
4068        [::std::mem::align_of::<iso_extension_record_s__bindgen_ty_1>() - 1usize];
4069    ["Offset of field: iso_extension_record_s__bindgen_ty_1::SP"]
4070        [::std::mem::offset_of!(iso_extension_record_s__bindgen_ty_1, SP) - 0usize];
4071    ["Offset of field: iso_extension_record_s__bindgen_ty_1::ER"]
4072        [::std::mem::offset_of!(iso_extension_record_s__bindgen_ty_1, ER) - 0usize];
4073    ["Offset of field: iso_extension_record_s__bindgen_ty_1::CE"]
4074        [::std::mem::offset_of!(iso_extension_record_s__bindgen_ty_1, CE) - 0usize];
4075    ["Offset of field: iso_extension_record_s__bindgen_ty_1::PX"]
4076        [::std::mem::offset_of!(iso_extension_record_s__bindgen_ty_1, PX) - 0usize];
4077    ["Offset of field: iso_extension_record_s__bindgen_ty_1::PN"]
4078        [::std::mem::offset_of!(iso_extension_record_s__bindgen_ty_1, PN) - 0usize];
4079    ["Offset of field: iso_extension_record_s__bindgen_ty_1::SL"]
4080        [::std::mem::offset_of!(iso_extension_record_s__bindgen_ty_1, SL) - 0usize];
4081    ["Offset of field: iso_extension_record_s__bindgen_ty_1::NM"]
4082        [::std::mem::offset_of!(iso_extension_record_s__bindgen_ty_1, NM) - 0usize];
4083    ["Offset of field: iso_extension_record_s__bindgen_ty_1::CL"]
4084        [::std::mem::offset_of!(iso_extension_record_s__bindgen_ty_1, CL) - 0usize];
4085    ["Offset of field: iso_extension_record_s__bindgen_ty_1::PL"]
4086        [::std::mem::offset_of!(iso_extension_record_s__bindgen_ty_1, PL) - 0usize];
4087    ["Offset of field: iso_extension_record_s__bindgen_ty_1::TF"]
4088        [::std::mem::offset_of!(iso_extension_record_s__bindgen_ty_1, TF) - 0usize];
4089};
4090#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4091const _: () = {
4092    ["Size of iso_extension_record_s"][::std::mem::size_of::<iso_extension_record_s>() - 36usize];
4093    ["Alignment of iso_extension_record_s"]
4094        [::std::mem::align_of::<iso_extension_record_s>() - 1usize];
4095    ["Offset of field: iso_extension_record_s::signature"]
4096        [::std::mem::offset_of!(iso_extension_record_s, signature) - 0usize];
4097    ["Offset of field: iso_extension_record_s::len"]
4098        [::std::mem::offset_of!(iso_extension_record_s, len) - 2usize];
4099    ["Offset of field: iso_extension_record_s::version"]
4100        [::std::mem::offset_of!(iso_extension_record_s, version) - 3usize];
4101    ["Offset of field: iso_extension_record_s::u"]
4102        [::std::mem::offset_of!(iso_extension_record_s, u) - 4usize];
4103};
4104pub type iso_extension_record_t = iso_extension_record_s;
4105#[repr(C, packed)]
4106#[derive(Copy, Clone)]
4107pub struct iso_rock_time_s {
4108    pub b_used: ::std::os::raw::c_uchar,
4109    pub b_longdate: ::std::os::raw::c_uchar,
4110    pub t: iso_rock_time_s__bindgen_ty_1,
4111}
4112#[repr(C)]
4113#[derive(Copy, Clone)]
4114pub union iso_rock_time_s__bindgen_ty_1 {
4115    pub ltime: iso9660_ltime_t,
4116    pub dtime: iso9660_dtime_t,
4117}
4118#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4119const _: () = {
4120    ["Size of iso_rock_time_s__bindgen_ty_1"]
4121        [::std::mem::size_of::<iso_rock_time_s__bindgen_ty_1>() - 17usize];
4122    ["Alignment of iso_rock_time_s__bindgen_ty_1"]
4123        [::std::mem::align_of::<iso_rock_time_s__bindgen_ty_1>() - 1usize];
4124    ["Offset of field: iso_rock_time_s__bindgen_ty_1::ltime"]
4125        [::std::mem::offset_of!(iso_rock_time_s__bindgen_ty_1, ltime) - 0usize];
4126    ["Offset of field: iso_rock_time_s__bindgen_ty_1::dtime"]
4127        [::std::mem::offset_of!(iso_rock_time_s__bindgen_ty_1, dtime) - 0usize];
4128};
4129#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4130const _: () = {
4131    ["Size of iso_rock_time_s"][::std::mem::size_of::<iso_rock_time_s>() - 19usize];
4132    ["Alignment of iso_rock_time_s"][::std::mem::align_of::<iso_rock_time_s>() - 1usize];
4133    ["Offset of field: iso_rock_time_s::b_used"]
4134        [::std::mem::offset_of!(iso_rock_time_s, b_used) - 0usize];
4135    ["Offset of field: iso_rock_time_s::b_longdate"]
4136        [::std::mem::offset_of!(iso_rock_time_s, b_longdate) - 1usize];
4137    ["Offset of field: iso_rock_time_s::t"][::std::mem::offset_of!(iso_rock_time_s, t) - 2usize];
4138};
4139pub type iso_rock_time_t = iso_rock_time_s;
4140#[repr(C, packed)]
4141#[derive(Copy, Clone)]
4142pub struct iso_rock_statbuf_s {
4143    pub b3_rock: bool_3way_t,
4144    pub st_mode: posix_mode_t,
4145    pub st_nlinks: posix_nlink_t,
4146    pub st_uid: posix_uid_t,
4147    pub st_gid: posix_gid_t,
4148    pub s_rock_offset: u8,
4149    pub i_symlink: ::std::os::raw::c_int,
4150    pub i_symlink_max: ::std::os::raw::c_int,
4151    pub psz_symlink: *mut ::std::os::raw::c_char,
4152    pub create: iso_rock_time_t,
4153    pub modify: iso_rock_time_t,
4154    pub access: iso_rock_time_t,
4155    pub attributes: iso_rock_time_t,
4156    pub backup: iso_rock_time_t,
4157    pub expiration: iso_rock_time_t,
4158    pub effective: iso_rock_time_t,
4159    pub i_rdev: u32,
4160}
4161#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4162const _: () = {
4163    ["Size of iso_rock_statbuf_s"][::std::mem::size_of::<iso_rock_statbuf_s>() - 174usize];
4164    ["Alignment of iso_rock_statbuf_s"][::std::mem::align_of::<iso_rock_statbuf_s>() - 1usize];
4165    ["Offset of field: iso_rock_statbuf_s::b3_rock"]
4166        [::std::mem::offset_of!(iso_rock_statbuf_s, b3_rock) - 0usize];
4167    ["Offset of field: iso_rock_statbuf_s::st_mode"]
4168        [::std::mem::offset_of!(iso_rock_statbuf_s, st_mode) - 4usize];
4169    ["Offset of field: iso_rock_statbuf_s::st_nlinks"]
4170        [::std::mem::offset_of!(iso_rock_statbuf_s, st_nlinks) - 8usize];
4171    ["Offset of field: iso_rock_statbuf_s::st_uid"]
4172        [::std::mem::offset_of!(iso_rock_statbuf_s, st_uid) - 12usize];
4173    ["Offset of field: iso_rock_statbuf_s::st_gid"]
4174        [::std::mem::offset_of!(iso_rock_statbuf_s, st_gid) - 16usize];
4175    ["Offset of field: iso_rock_statbuf_s::s_rock_offset"]
4176        [::std::mem::offset_of!(iso_rock_statbuf_s, s_rock_offset) - 20usize];
4177    ["Offset of field: iso_rock_statbuf_s::i_symlink"]
4178        [::std::mem::offset_of!(iso_rock_statbuf_s, i_symlink) - 21usize];
4179    ["Offset of field: iso_rock_statbuf_s::i_symlink_max"]
4180        [::std::mem::offset_of!(iso_rock_statbuf_s, i_symlink_max) - 25usize];
4181    ["Offset of field: iso_rock_statbuf_s::psz_symlink"]
4182        [::std::mem::offset_of!(iso_rock_statbuf_s, psz_symlink) - 29usize];
4183    ["Offset of field: iso_rock_statbuf_s::create"]
4184        [::std::mem::offset_of!(iso_rock_statbuf_s, create) - 37usize];
4185    ["Offset of field: iso_rock_statbuf_s::modify"]
4186        [::std::mem::offset_of!(iso_rock_statbuf_s, modify) - 56usize];
4187    ["Offset of field: iso_rock_statbuf_s::access"]
4188        [::std::mem::offset_of!(iso_rock_statbuf_s, access) - 75usize];
4189    ["Offset of field: iso_rock_statbuf_s::attributes"]
4190        [::std::mem::offset_of!(iso_rock_statbuf_s, attributes) - 94usize];
4191    ["Offset of field: iso_rock_statbuf_s::backup"]
4192        [::std::mem::offset_of!(iso_rock_statbuf_s, backup) - 113usize];
4193    ["Offset of field: iso_rock_statbuf_s::expiration"]
4194        [::std::mem::offset_of!(iso_rock_statbuf_s, expiration) - 132usize];
4195    ["Offset of field: iso_rock_statbuf_s::effective"]
4196        [::std::mem::offset_of!(iso_rock_statbuf_s, effective) - 151usize];
4197    ["Offset of field: iso_rock_statbuf_s::i_rdev"]
4198        [::std::mem::offset_of!(iso_rock_statbuf_s, i_rdev) - 170usize];
4199};
4200pub type iso_rock_statbuf_t = iso_rock_statbuf_s;
4201unsafe extern "C" {
4202    pub fn get_rock_ridge_filename(
4203        de: *mut iso9660_dir_t,
4204        retname: *mut ::std::os::raw::c_char,
4205        p_stat: *mut iso9660_stat_t,
4206    ) -> ::std::os::raw::c_int;
4207}
4208unsafe extern "C" {
4209    pub fn parse_rock_ridge_stat(
4210        de: *mut iso9660_dir_t,
4211        p_stat: *mut iso9660_stat_t,
4212    ) -> ::std::os::raw::c_int;
4213}
4214unsafe extern "C" {
4215    pub fn iso9660_get_posix_filemode_from_rock(rr: *const iso_rock_statbuf_t) -> mode_t;
4216}
4217unsafe extern "C" {
4218    pub fn iso9660_get_rock_attr_str(st_mode: posix_mode_t) -> *const ::std::os::raw::c_char;
4219}
4220unsafe extern "C" {
4221    pub static mut iso_rock_nm_flag: iso_rock_nm_flag_t;
4222}
4223unsafe extern "C" {
4224    pub static mut iso_rock_sl_flag: iso_rock_sl_flag_t;
4225}
4226unsafe extern "C" {
4227    pub static mut iso_rock_tf_flag: iso_rock_tf_flag_t;
4228}
4229#[repr(C, packed)]
4230#[derive(Copy, Clone)]
4231pub struct iso9660_dir_s {
4232    pub length: iso711_t,
4233    pub xa_length: iso711_t,
4234    pub extent: iso733_t,
4235    pub size: iso733_t,
4236    pub recording_time: iso9660_dtime_t,
4237    pub file_flags: u8,
4238    pub file_unit_size: iso711_t,
4239    pub interleave_gap: iso711_t,
4240    pub volume_sequence_number: iso723_t,
4241    pub filename: iso9660_dir_s__bindgen_ty_1,
4242}
4243#[repr(C)]
4244#[derive(Copy, Clone)]
4245pub union iso9660_dir_s__bindgen_ty_1 {
4246    pub len: iso711_t,
4247    pub str_: [::std::os::raw::c_char; 1usize],
4248}
4249#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4250const _: () = {
4251    ["Size of iso9660_dir_s__bindgen_ty_1"]
4252        [::std::mem::size_of::<iso9660_dir_s__bindgen_ty_1>() - 1usize];
4253    ["Alignment of iso9660_dir_s__bindgen_ty_1"]
4254        [::std::mem::align_of::<iso9660_dir_s__bindgen_ty_1>() - 1usize];
4255    ["Offset of field: iso9660_dir_s__bindgen_ty_1::len"]
4256        [::std::mem::offset_of!(iso9660_dir_s__bindgen_ty_1, len) - 0usize];
4257    ["Offset of field: iso9660_dir_s__bindgen_ty_1::str_"]
4258        [::std::mem::offset_of!(iso9660_dir_s__bindgen_ty_1, str_) - 0usize];
4259};
4260#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4261const _: () = {
4262    ["Size of iso9660_dir_s"][::std::mem::size_of::<iso9660_dir_s>() - 33usize];
4263    ["Alignment of iso9660_dir_s"][::std::mem::align_of::<iso9660_dir_s>() - 1usize];
4264    ["Offset of field: iso9660_dir_s::length"]
4265        [::std::mem::offset_of!(iso9660_dir_s, length) - 0usize];
4266    ["Offset of field: iso9660_dir_s::xa_length"]
4267        [::std::mem::offset_of!(iso9660_dir_s, xa_length) - 1usize];
4268    ["Offset of field: iso9660_dir_s::extent"]
4269        [::std::mem::offset_of!(iso9660_dir_s, extent) - 2usize];
4270    ["Offset of field: iso9660_dir_s::size"][::std::mem::offset_of!(iso9660_dir_s, size) - 10usize];
4271    ["Offset of field: iso9660_dir_s::recording_time"]
4272        [::std::mem::offset_of!(iso9660_dir_s, recording_time) - 18usize];
4273    ["Offset of field: iso9660_dir_s::file_flags"]
4274        [::std::mem::offset_of!(iso9660_dir_s, file_flags) - 25usize];
4275    ["Offset of field: iso9660_dir_s::file_unit_size"]
4276        [::std::mem::offset_of!(iso9660_dir_s, file_unit_size) - 26usize];
4277    ["Offset of field: iso9660_dir_s::interleave_gap"]
4278        [::std::mem::offset_of!(iso9660_dir_s, interleave_gap) - 27usize];
4279    ["Offset of field: iso9660_dir_s::volume_sequence_number"]
4280        [::std::mem::offset_of!(iso9660_dir_s, volume_sequence_number) - 28usize];
4281    ["Offset of field: iso9660_dir_s::filename"]
4282        [::std::mem::offset_of!(iso9660_dir_s, filename) - 32usize];
4283};
4284#[repr(C, packed)]
4285#[derive(Copy, Clone)]
4286pub struct iso9660_pvd_s {
4287    pub type_: iso711_t,
4288    pub id: [::std::os::raw::c_char; 5usize],
4289    pub version: iso711_t,
4290    pub unused1: [::std::os::raw::c_char; 1usize],
4291    pub system_id: [achar_t; 32usize],
4292    pub volume_id: [dchar_t; 32usize],
4293    pub unused2: [u8; 8usize],
4294    pub volume_space_size: iso733_t,
4295    pub unused3: [u8; 32usize],
4296    pub volume_set_size: iso723_t,
4297    pub volume_sequence_number: iso723_t,
4298    pub logical_block_size: iso723_t,
4299    pub path_table_size: iso733_t,
4300    pub type_l_path_table: iso731_t,
4301    pub opt_type_l_path_table: iso731_t,
4302    pub type_m_path_table: iso732_t,
4303    pub opt_type_m_path_table: iso732_t,
4304    pub root_directory_record: iso9660_dir_t,
4305    pub root_directory_filename: ::std::os::raw::c_char,
4306    pub volume_set_id: [dchar_t; 128usize],
4307    pub publisher_id: [achar_t; 128usize],
4308    pub preparer_id: [achar_t; 128usize],
4309    pub application_id: [achar_t; 128usize],
4310    pub copyright_file_id: [dchar_t; 37usize],
4311    pub abstract_file_id: [dchar_t; 37usize],
4312    pub bibliographic_file_id: [dchar_t; 37usize],
4313    pub creation_date: iso9660_ltime_t,
4314    pub modification_date: iso9660_ltime_t,
4315    pub expiration_date: iso9660_ltime_t,
4316    pub effective_date: iso9660_ltime_t,
4317    pub file_structure_version: iso711_t,
4318    pub unused4: [u8; 1usize],
4319    pub application_data: [::std::os::raw::c_char; 512usize],
4320    pub unused5: [u8; 653usize],
4321}
4322#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4323const _: () = {
4324    ["Size of iso9660_pvd_s"][::std::mem::size_of::<iso9660_pvd_s>() - 2048usize];
4325    ["Alignment of iso9660_pvd_s"][::std::mem::align_of::<iso9660_pvd_s>() - 1usize];
4326    ["Offset of field: iso9660_pvd_s::type_"]
4327        [::std::mem::offset_of!(iso9660_pvd_s, type_) - 0usize];
4328    ["Offset of field: iso9660_pvd_s::id"][::std::mem::offset_of!(iso9660_pvd_s, id) - 1usize];
4329    ["Offset of field: iso9660_pvd_s::version"]
4330        [::std::mem::offset_of!(iso9660_pvd_s, version) - 6usize];
4331    ["Offset of field: iso9660_pvd_s::unused1"]
4332        [::std::mem::offset_of!(iso9660_pvd_s, unused1) - 7usize];
4333    ["Offset of field: iso9660_pvd_s::system_id"]
4334        [::std::mem::offset_of!(iso9660_pvd_s, system_id) - 8usize];
4335    ["Offset of field: iso9660_pvd_s::volume_id"]
4336        [::std::mem::offset_of!(iso9660_pvd_s, volume_id) - 40usize];
4337    ["Offset of field: iso9660_pvd_s::unused2"]
4338        [::std::mem::offset_of!(iso9660_pvd_s, unused2) - 72usize];
4339    ["Offset of field: iso9660_pvd_s::volume_space_size"]
4340        [::std::mem::offset_of!(iso9660_pvd_s, volume_space_size) - 80usize];
4341    ["Offset of field: iso9660_pvd_s::unused3"]
4342        [::std::mem::offset_of!(iso9660_pvd_s, unused3) - 88usize];
4343    ["Offset of field: iso9660_pvd_s::volume_set_size"]
4344        [::std::mem::offset_of!(iso9660_pvd_s, volume_set_size) - 120usize];
4345    ["Offset of field: iso9660_pvd_s::volume_sequence_number"]
4346        [::std::mem::offset_of!(iso9660_pvd_s, volume_sequence_number) - 124usize];
4347    ["Offset of field: iso9660_pvd_s::logical_block_size"]
4348        [::std::mem::offset_of!(iso9660_pvd_s, logical_block_size) - 128usize];
4349    ["Offset of field: iso9660_pvd_s::path_table_size"]
4350        [::std::mem::offset_of!(iso9660_pvd_s, path_table_size) - 132usize];
4351    ["Offset of field: iso9660_pvd_s::type_l_path_table"]
4352        [::std::mem::offset_of!(iso9660_pvd_s, type_l_path_table) - 140usize];
4353    ["Offset of field: iso9660_pvd_s::opt_type_l_path_table"]
4354        [::std::mem::offset_of!(iso9660_pvd_s, opt_type_l_path_table) - 144usize];
4355    ["Offset of field: iso9660_pvd_s::type_m_path_table"]
4356        [::std::mem::offset_of!(iso9660_pvd_s, type_m_path_table) - 148usize];
4357    ["Offset of field: iso9660_pvd_s::opt_type_m_path_table"]
4358        [::std::mem::offset_of!(iso9660_pvd_s, opt_type_m_path_table) - 152usize];
4359    ["Offset of field: iso9660_pvd_s::root_directory_record"]
4360        [::std::mem::offset_of!(iso9660_pvd_s, root_directory_record) - 156usize];
4361    ["Offset of field: iso9660_pvd_s::root_directory_filename"]
4362        [::std::mem::offset_of!(iso9660_pvd_s, root_directory_filename) - 189usize];
4363    ["Offset of field: iso9660_pvd_s::volume_set_id"]
4364        [::std::mem::offset_of!(iso9660_pvd_s, volume_set_id) - 190usize];
4365    ["Offset of field: iso9660_pvd_s::publisher_id"]
4366        [::std::mem::offset_of!(iso9660_pvd_s, publisher_id) - 318usize];
4367    ["Offset of field: iso9660_pvd_s::preparer_id"]
4368        [::std::mem::offset_of!(iso9660_pvd_s, preparer_id) - 446usize];
4369    ["Offset of field: iso9660_pvd_s::application_id"]
4370        [::std::mem::offset_of!(iso9660_pvd_s, application_id) - 574usize];
4371    ["Offset of field: iso9660_pvd_s::copyright_file_id"]
4372        [::std::mem::offset_of!(iso9660_pvd_s, copyright_file_id) - 702usize];
4373    ["Offset of field: iso9660_pvd_s::abstract_file_id"]
4374        [::std::mem::offset_of!(iso9660_pvd_s, abstract_file_id) - 739usize];
4375    ["Offset of field: iso9660_pvd_s::bibliographic_file_id"]
4376        [::std::mem::offset_of!(iso9660_pvd_s, bibliographic_file_id) - 776usize];
4377    ["Offset of field: iso9660_pvd_s::creation_date"]
4378        [::std::mem::offset_of!(iso9660_pvd_s, creation_date) - 813usize];
4379    ["Offset of field: iso9660_pvd_s::modification_date"]
4380        [::std::mem::offset_of!(iso9660_pvd_s, modification_date) - 830usize];
4381    ["Offset of field: iso9660_pvd_s::expiration_date"]
4382        [::std::mem::offset_of!(iso9660_pvd_s, expiration_date) - 847usize];
4383    ["Offset of field: iso9660_pvd_s::effective_date"]
4384        [::std::mem::offset_of!(iso9660_pvd_s, effective_date) - 864usize];
4385    ["Offset of field: iso9660_pvd_s::file_structure_version"]
4386        [::std::mem::offset_of!(iso9660_pvd_s, file_structure_version) - 881usize];
4387    ["Offset of field: iso9660_pvd_s::unused4"]
4388        [::std::mem::offset_of!(iso9660_pvd_s, unused4) - 882usize];
4389    ["Offset of field: iso9660_pvd_s::application_data"]
4390        [::std::mem::offset_of!(iso9660_pvd_s, application_data) - 883usize];
4391    ["Offset of field: iso9660_pvd_s::unused5"]
4392        [::std::mem::offset_of!(iso9660_pvd_s, unused5) - 1395usize];
4393};
4394pub type iso9660_pvd_t = iso9660_pvd_s;
4395#[repr(C, packed)]
4396#[derive(Copy, Clone)]
4397pub struct iso9660_svd_s {
4398    pub type_: iso711_t,
4399    pub id: [::std::os::raw::c_char; 5usize],
4400    pub version: iso711_t,
4401    pub flags: ::std::os::raw::c_char,
4402    pub system_id: [achar_t; 32usize],
4403    pub volume_id: [dchar_t; 32usize],
4404    pub unused2: [::std::os::raw::c_char; 8usize],
4405    pub volume_space_size: iso733_t,
4406    pub escape_sequences: [::std::os::raw::c_char; 32usize],
4407    pub volume_set_size: iso723_t,
4408    pub volume_sequence_number: iso723_t,
4409    pub logical_block_size: iso723_t,
4410    pub path_table_size: iso733_t,
4411    pub type_l_path_table: iso731_t,
4412    pub opt_type_l_path_table: iso731_t,
4413    pub type_m_path_table: iso732_t,
4414    pub opt_type_m_path_table: iso732_t,
4415    pub root_directory_record: iso9660_dir_t,
4416    pub root_directory_filename: ::std::os::raw::c_char,
4417    pub volume_set_id: [dchar_t; 128usize],
4418    pub publisher_id: [achar_t; 128usize],
4419    pub preparer_id: [achar_t; 128usize],
4420    pub application_id: [achar_t; 128usize],
4421    pub copyright_file_id: [dchar_t; 37usize],
4422    pub abstract_file_id: [dchar_t; 37usize],
4423    pub bibliographic_file_id: [dchar_t; 37usize],
4424    pub creation_date: iso9660_ltime_t,
4425    pub modification_date: iso9660_ltime_t,
4426    pub expiration_date: iso9660_ltime_t,
4427    pub effective_date: iso9660_ltime_t,
4428    pub file_structure_version: iso711_t,
4429    pub unused4: [u8; 1usize],
4430    pub application_data: [::std::os::raw::c_char; 512usize],
4431    pub unused5: [u8; 653usize],
4432}
4433#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4434const _: () = {
4435    ["Size of iso9660_svd_s"][::std::mem::size_of::<iso9660_svd_s>() - 2048usize];
4436    ["Alignment of iso9660_svd_s"][::std::mem::align_of::<iso9660_svd_s>() - 1usize];
4437    ["Offset of field: iso9660_svd_s::type_"]
4438        [::std::mem::offset_of!(iso9660_svd_s, type_) - 0usize];
4439    ["Offset of field: iso9660_svd_s::id"][::std::mem::offset_of!(iso9660_svd_s, id) - 1usize];
4440    ["Offset of field: iso9660_svd_s::version"]
4441        [::std::mem::offset_of!(iso9660_svd_s, version) - 6usize];
4442    ["Offset of field: iso9660_svd_s::flags"]
4443        [::std::mem::offset_of!(iso9660_svd_s, flags) - 7usize];
4444    ["Offset of field: iso9660_svd_s::system_id"]
4445        [::std::mem::offset_of!(iso9660_svd_s, system_id) - 8usize];
4446    ["Offset of field: iso9660_svd_s::volume_id"]
4447        [::std::mem::offset_of!(iso9660_svd_s, volume_id) - 40usize];
4448    ["Offset of field: iso9660_svd_s::unused2"]
4449        [::std::mem::offset_of!(iso9660_svd_s, unused2) - 72usize];
4450    ["Offset of field: iso9660_svd_s::volume_space_size"]
4451        [::std::mem::offset_of!(iso9660_svd_s, volume_space_size) - 80usize];
4452    ["Offset of field: iso9660_svd_s::escape_sequences"]
4453        [::std::mem::offset_of!(iso9660_svd_s, escape_sequences) - 88usize];
4454    ["Offset of field: iso9660_svd_s::volume_set_size"]
4455        [::std::mem::offset_of!(iso9660_svd_s, volume_set_size) - 120usize];
4456    ["Offset of field: iso9660_svd_s::volume_sequence_number"]
4457        [::std::mem::offset_of!(iso9660_svd_s, volume_sequence_number) - 124usize];
4458    ["Offset of field: iso9660_svd_s::logical_block_size"]
4459        [::std::mem::offset_of!(iso9660_svd_s, logical_block_size) - 128usize];
4460    ["Offset of field: iso9660_svd_s::path_table_size"]
4461        [::std::mem::offset_of!(iso9660_svd_s, path_table_size) - 132usize];
4462    ["Offset of field: iso9660_svd_s::type_l_path_table"]
4463        [::std::mem::offset_of!(iso9660_svd_s, type_l_path_table) - 140usize];
4464    ["Offset of field: iso9660_svd_s::opt_type_l_path_table"]
4465        [::std::mem::offset_of!(iso9660_svd_s, opt_type_l_path_table) - 144usize];
4466    ["Offset of field: iso9660_svd_s::type_m_path_table"]
4467        [::std::mem::offset_of!(iso9660_svd_s, type_m_path_table) - 148usize];
4468    ["Offset of field: iso9660_svd_s::opt_type_m_path_table"]
4469        [::std::mem::offset_of!(iso9660_svd_s, opt_type_m_path_table) - 152usize];
4470    ["Offset of field: iso9660_svd_s::root_directory_record"]
4471        [::std::mem::offset_of!(iso9660_svd_s, root_directory_record) - 156usize];
4472    ["Offset of field: iso9660_svd_s::root_directory_filename"]
4473        [::std::mem::offset_of!(iso9660_svd_s, root_directory_filename) - 189usize];
4474    ["Offset of field: iso9660_svd_s::volume_set_id"]
4475        [::std::mem::offset_of!(iso9660_svd_s, volume_set_id) - 190usize];
4476    ["Offset of field: iso9660_svd_s::publisher_id"]
4477        [::std::mem::offset_of!(iso9660_svd_s, publisher_id) - 318usize];
4478    ["Offset of field: iso9660_svd_s::preparer_id"]
4479        [::std::mem::offset_of!(iso9660_svd_s, preparer_id) - 446usize];
4480    ["Offset of field: iso9660_svd_s::application_id"]
4481        [::std::mem::offset_of!(iso9660_svd_s, application_id) - 574usize];
4482    ["Offset of field: iso9660_svd_s::copyright_file_id"]
4483        [::std::mem::offset_of!(iso9660_svd_s, copyright_file_id) - 702usize];
4484    ["Offset of field: iso9660_svd_s::abstract_file_id"]
4485        [::std::mem::offset_of!(iso9660_svd_s, abstract_file_id) - 739usize];
4486    ["Offset of field: iso9660_svd_s::bibliographic_file_id"]
4487        [::std::mem::offset_of!(iso9660_svd_s, bibliographic_file_id) - 776usize];
4488    ["Offset of field: iso9660_svd_s::creation_date"]
4489        [::std::mem::offset_of!(iso9660_svd_s, creation_date) - 813usize];
4490    ["Offset of field: iso9660_svd_s::modification_date"]
4491        [::std::mem::offset_of!(iso9660_svd_s, modification_date) - 830usize];
4492    ["Offset of field: iso9660_svd_s::expiration_date"]
4493        [::std::mem::offset_of!(iso9660_svd_s, expiration_date) - 847usize];
4494    ["Offset of field: iso9660_svd_s::effective_date"]
4495        [::std::mem::offset_of!(iso9660_svd_s, effective_date) - 864usize];
4496    ["Offset of field: iso9660_svd_s::file_structure_version"]
4497        [::std::mem::offset_of!(iso9660_svd_s, file_structure_version) - 881usize];
4498    ["Offset of field: iso9660_svd_s::unused4"]
4499        [::std::mem::offset_of!(iso9660_svd_s, unused4) - 882usize];
4500    ["Offset of field: iso9660_svd_s::application_data"]
4501        [::std::mem::offset_of!(iso9660_svd_s, application_data) - 883usize];
4502    ["Offset of field: iso9660_svd_s::unused5"]
4503        [::std::mem::offset_of!(iso9660_svd_s, unused5) - 1395usize];
4504};
4505pub type iso9660_svd_t = iso9660_svd_s;
4506pub type CdioISO9660FileList_t = CdioList_t;
4507pub type CdioISO9660DirList_t = CdioList_t;
4508#[repr(C)]
4509pub struct iso9660_stat_s {
4510    pub rr: iso_rock_statbuf_t,
4511    pub tm: tm,
4512    pub lsn: lsn_t,
4513    pub size: u32,
4514    pub secsize: u32,
4515    pub xa: iso9660_xa_t,
4516    pub type_: iso9660_stat_s__bindgen_ty_1,
4517    pub b_xa: ::std::os::raw::c_uchar,
4518    pub filename: __IncompleteArrayField<::std::os::raw::c_char>,
4519}
4520pub const iso9660_stat_s__STAT_FILE: iso9660_stat_s__bindgen_ty_1 = 1;
4521pub const iso9660_stat_s__STAT_DIR: iso9660_stat_s__bindgen_ty_1 = 2;
4522pub type iso9660_stat_s__bindgen_ty_1 = ::std::os::raw::c_uint;
4523#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4524const _: () = {
4525    ["Size of iso9660_stat_s"][::std::mem::size_of::<iso9660_stat_s>() - 272usize];
4526    ["Alignment of iso9660_stat_s"][::std::mem::align_of::<iso9660_stat_s>() - 8usize];
4527    ["Offset of field: iso9660_stat_s::rr"][::std::mem::offset_of!(iso9660_stat_s, rr) - 0usize];
4528    ["Offset of field: iso9660_stat_s::tm"][::std::mem::offset_of!(iso9660_stat_s, tm) - 176usize];
4529    ["Offset of field: iso9660_stat_s::lsn"]
4530        [::std::mem::offset_of!(iso9660_stat_s, lsn) - 232usize];
4531    ["Offset of field: iso9660_stat_s::size"]
4532        [::std::mem::offset_of!(iso9660_stat_s, size) - 236usize];
4533    ["Offset of field: iso9660_stat_s::secsize"]
4534        [::std::mem::offset_of!(iso9660_stat_s, secsize) - 240usize];
4535    ["Offset of field: iso9660_stat_s::xa"][::std::mem::offset_of!(iso9660_stat_s, xa) - 244usize];
4536    ["Offset of field: iso9660_stat_s::type_"]
4537        [::std::mem::offset_of!(iso9660_stat_s, type_) - 260usize];
4538    ["Offset of field: iso9660_stat_s::b_xa"]
4539        [::std::mem::offset_of!(iso9660_stat_s, b_xa) - 264usize];
4540    ["Offset of field: iso9660_stat_s::filename"]
4541        [::std::mem::offset_of!(iso9660_stat_s, filename) - 265usize];
4542};
4543pub type iso_extension_mask_t = u8;
4544pub const iso_extension_enum_s_ISO_EXTENSION_JOLIET_LEVEL1: iso_extension_enum_s = 1;
4545pub const iso_extension_enum_s_ISO_EXTENSION_JOLIET_LEVEL2: iso_extension_enum_s = 2;
4546pub const iso_extension_enum_s_ISO_EXTENSION_JOLIET_LEVEL3: iso_extension_enum_s = 4;
4547pub const iso_extension_enum_s_ISO_EXTENSION_ROCK_RIDGE: iso_extension_enum_s = 8;
4548pub const iso_extension_enum_s_ISO_EXTENSION_HIGH_SIERRA: iso_extension_enum_s = 16;
4549pub type iso_extension_enum_s = ::std::os::raw::c_uint;
4550unsafe extern "C" {
4551    pub static mut iso_extension_enums: iso_extension_enum_s;
4552}
4553#[repr(C)]
4554#[derive(Debug, Copy, Clone)]
4555pub struct _iso9660_s {
4556    _unused: [u8; 0],
4557}
4558pub type iso9660_t = _iso9660_s;
4559unsafe extern "C" {
4560    pub fn iso9660_close(p_iso: *mut iso9660_t) -> ::std::os::raw::c_uchar;
4561}
4562unsafe extern "C" {
4563    pub fn iso9660_open(psz_path: *const ::std::os::raw::c_char) -> *mut iso9660_t;
4564}
4565unsafe extern "C" {
4566    pub fn iso9660_open_ext(
4567        psz_path: *const ::std::os::raw::c_char,
4568        iso_extension_mask: iso_extension_mask_t,
4569    ) -> *mut iso9660_t;
4570}
4571unsafe extern "C" {
4572    pub fn iso9660_open_fuzzy(
4573        psz_path: *const ::std::os::raw::c_char,
4574        i_fuzz: u16,
4575    ) -> *mut iso9660_t;
4576}
4577unsafe extern "C" {
4578    pub fn iso9660_open_fuzzy_ext(
4579        psz_path: *const ::std::os::raw::c_char,
4580        iso_extension_mask: iso_extension_mask_t,
4581        i_fuzz: u16,
4582    ) -> *mut iso9660_t;
4583}
4584unsafe extern "C" {
4585    pub fn iso9660_ifs_fuzzy_read_superblock(
4586        p_iso: *mut iso9660_t,
4587        iso_extension_mask: iso_extension_mask_t,
4588        i_fuzz: u16,
4589    ) -> ::std::os::raw::c_uchar;
4590}
4591unsafe extern "C" {
4592    pub fn iso9660_iso_seek_read(
4593        p_iso: *const iso9660_t,
4594        ptr: *mut ::std::os::raw::c_void,
4595        start: lsn_t,
4596        i_size: ::std::os::raw::c_long,
4597    ) -> ::std::os::raw::c_long;
4598}
4599unsafe extern "C" {
4600    pub fn iso9660_fs_read_pvd(
4601        p_cdio: *const CdIo_t,
4602        p_pvd: *mut iso9660_pvd_t,
4603    ) -> ::std::os::raw::c_uchar;
4604}
4605unsafe extern "C" {
4606    pub fn iso9660_ifs_read_pvd(
4607        p_iso: *const iso9660_t,
4608        p_pvd: *mut iso9660_pvd_t,
4609    ) -> ::std::os::raw::c_uchar;
4610}
4611unsafe extern "C" {
4612    pub fn iso9660_fs_read_superblock(
4613        p_cdio: *mut CdIo_t,
4614        iso_extension_mask: iso_extension_mask_t,
4615    ) -> ::std::os::raw::c_uchar;
4616}
4617unsafe extern "C" {
4618    pub fn iso9660_ifs_read_superblock(
4619        p_iso: *mut iso9660_t,
4620        iso_extension_mask: iso_extension_mask_t,
4621    ) -> ::std::os::raw::c_uchar;
4622}
4623unsafe extern "C" {
4624    pub fn iso9660_set_dtime(tm: *const tm, idr_date: *mut iso9660_dtime_t);
4625}
4626unsafe extern "C" {
4627    pub fn iso9660_set_dtime_with_timezone(
4628        p_tm: *const tm,
4629        timezone: ::std::os::raw::c_int,
4630        p_idr_date: *mut iso9660_dtime_t,
4631    );
4632}
4633unsafe extern "C" {
4634    pub fn iso9660_set_ltime(_tm: *const tm, p_pvd_date: *mut iso9660_ltime_t);
4635}
4636unsafe extern "C" {
4637    pub fn iso9660_set_ltime_with_timezone(
4638        _tm: *const tm,
4639        timezone: ::std::os::raw::c_int,
4640        p_pvd_date: *mut iso9660_ltime_t,
4641    );
4642}
4643unsafe extern "C" {
4644    pub fn iso9660_get_dtime(
4645        idr_date: *const iso9660_dtime_t,
4646        b_localtime: ::std::os::raw::c_uchar,
4647        tm: *mut tm,
4648    ) -> ::std::os::raw::c_uchar;
4649}
4650unsafe extern "C" {
4651    pub fn iso9660_get_ltime(
4652        p_ldate: *const iso9660_ltime_t,
4653        p_tm: *mut tm,
4654    ) -> ::std::os::raw::c_uchar;
4655}
4656unsafe extern "C" {
4657    pub fn iso9660_is_dchar(c: ::std::os::raw::c_int) -> ::std::os::raw::c_uchar;
4658}
4659unsafe extern "C" {
4660    pub fn iso9660_is_achar(c: ::std::os::raw::c_int) -> ::std::os::raw::c_uchar;
4661}
4662unsafe extern "C" {
4663    pub fn iso9660_name_translate(
4664        psz_oldname: *const ::std::os::raw::c_char,
4665        psz_newname: *mut ::std::os::raw::c_char,
4666    ) -> ::std::os::raw::c_int;
4667}
4668unsafe extern "C" {
4669    pub fn iso9660_name_translate_ext(
4670        psz_oldname: *const ::std::os::raw::c_char,
4671        psz_newname: *mut ::std::os::raw::c_char,
4672        i_joliet_level: u8,
4673    ) -> ::std::os::raw::c_int;
4674}
4675unsafe extern "C" {
4676    pub fn iso9660_strncpy_pad(
4677        dst: *mut ::std::os::raw::c_char,
4678        src: *const ::std::os::raw::c_char,
4679        len: usize,
4680        _check: strncpy_pad_check,
4681    ) -> *mut ::std::os::raw::c_char;
4682}
4683unsafe extern "C" {
4684    pub fn iso9660_dirname_valid_p(
4685        psz_path: *const ::std::os::raw::c_char,
4686    ) -> ::std::os::raw::c_uchar;
4687}
4688unsafe extern "C" {
4689    pub fn iso9660_pathname_isofy(
4690        psz_path: *const ::std::os::raw::c_char,
4691        i_version: u16,
4692    ) -> *mut ::std::os::raw::c_char;
4693}
4694unsafe extern "C" {
4695    pub fn iso9660_pathname_valid_p(
4696        psz_path: *const ::std::os::raw::c_char,
4697    ) -> ::std::os::raw::c_uchar;
4698}
4699unsafe extern "C" {
4700    pub fn iso9660_dir_init_new(
4701        dir: *mut ::std::os::raw::c_void,
4702        self_: u32,
4703        ssize: u32,
4704        parent: u32,
4705        psize: u32,
4706        dir_time: *const time_t,
4707    );
4708}
4709unsafe extern "C" {
4710    pub fn iso9660_dir_init_new_su(
4711        dir: *mut ::std::os::raw::c_void,
4712        self_: u32,
4713        ssize: u32,
4714        ssu_data: *const ::std::os::raw::c_void,
4715        ssu_size: ::std::os::raw::c_uint,
4716        parent: u32,
4717        psize: u32,
4718        psu_data: *const ::std::os::raw::c_void,
4719        psu_size: ::std::os::raw::c_uint,
4720        dir_time: *const time_t,
4721    );
4722}
4723unsafe extern "C" {
4724    pub fn iso9660_dir_add_entry_su(
4725        dir: *mut ::std::os::raw::c_void,
4726        filename: *const ::std::os::raw::c_char,
4727        extent: u32,
4728        size: u32,
4729        file_flags: u8,
4730        su_data: *const ::std::os::raw::c_void,
4731        su_size: ::std::os::raw::c_uint,
4732        entry_time: *const time_t,
4733    );
4734}
4735unsafe extern "C" {
4736    pub fn iso9660_dir_calc_record_size(
4737        namelen: ::std::os::raw::c_uint,
4738        su_len: ::std::os::raw::c_uint,
4739    ) -> ::std::os::raw::c_uint;
4740}
4741unsafe extern "C" {
4742    pub fn iso9660_find_fs_lsn(p_cdio: *mut CdIo_t, i_lsn: lsn_t) -> *mut iso9660_stat_t;
4743}
4744unsafe extern "C" {
4745    pub fn iso9660_fs_find_lsn_with_path(
4746        p_cdio: *mut CdIo_t,
4747        i_lsn: lsn_t,
4748        ppsz_full_filename: *mut *mut ::std::os::raw::c_char,
4749    ) -> *mut iso9660_stat_t;
4750}
4751unsafe extern "C" {
4752    pub fn iso9660_ifs_find_lsn(p_iso: *mut iso9660_t, i_lsn: lsn_t) -> *mut iso9660_stat_t;
4753}
4754unsafe extern "C" {
4755    pub fn iso9660_ifs_find_lsn_with_path(
4756        p_iso: *mut iso9660_t,
4757        i_lsn: lsn_t,
4758        ppsz_path: *mut *mut ::std::os::raw::c_char,
4759    ) -> *mut iso9660_stat_t;
4760}
4761unsafe extern "C" {
4762    pub fn iso9660_stat_free(p_stat: *mut iso9660_stat_t);
4763}
4764unsafe extern "C" {
4765    pub fn iso9660_fs_stat(
4766        p_cdio: *mut CdIo_t,
4767        psz_path: *const ::std::os::raw::c_char,
4768    ) -> *mut iso9660_stat_t;
4769}
4770unsafe extern "C" {
4771    pub fn iso9660_fs_stat_translate(
4772        p_cdio: *mut CdIo_t,
4773        psz_path: *const ::std::os::raw::c_char,
4774    ) -> *mut iso9660_stat_t;
4775}
4776unsafe extern "C" {
4777    pub fn iso9660_ifs_stat(
4778        p_iso: *mut iso9660_t,
4779        psz_path: *const ::std::os::raw::c_char,
4780    ) -> *mut iso9660_stat_t;
4781}
4782unsafe extern "C" {
4783    pub fn iso9660_ifs_stat_translate(
4784        p_iso: *mut iso9660_t,
4785        psz_path: *const ::std::os::raw::c_char,
4786    ) -> *mut iso9660_stat_t;
4787}
4788unsafe extern "C" {
4789    pub fn iso9660_filelist_new() -> *mut CdioISO9660FileList_t;
4790}
4791unsafe extern "C" {
4792    pub fn iso9660_dirlist_new() -> *mut CdioISO9660DirList_t;
4793}
4794unsafe extern "C" {
4795    pub fn iso9660_filelist_free(p_filelist: *mut CdioISO9660FileList_t);
4796}
4797unsafe extern "C" {
4798    pub fn iso9660_dirlist_free(p_filelist: *mut CdioISO9660DirList_t);
4799}
4800unsafe extern "C" {
4801    pub fn iso9660_fs_readdir(
4802        p_cdio: *mut CdIo_t,
4803        psz_path: *const ::std::os::raw::c_char,
4804    ) -> *mut CdioList_t;
4805}
4806unsafe extern "C" {
4807    pub fn iso9660_ifs_readdir(
4808        p_iso: *mut iso9660_t,
4809        psz_path: *const ::std::os::raw::c_char,
4810    ) -> *mut CdioList_t;
4811}
4812unsafe extern "C" {
4813    pub fn iso9660_get_application_id(p_pvd: *mut iso9660_pvd_t) -> *mut ::std::os::raw::c_char;
4814}
4815unsafe extern "C" {
4816    pub fn iso9660_ifs_get_application_id(
4817        p_iso: *mut iso9660_t,
4818        p_psz_app_id: *mut *mut cdio_utf8_t,
4819    ) -> ::std::os::raw::c_uchar;
4820}
4821unsafe extern "C" {
4822    pub fn iso9660_ifs_get_joliet_level(p_iso: *mut iso9660_t) -> u8;
4823}
4824unsafe extern "C" {
4825    pub fn iso9660_get_dir_len(p_idr: *const iso9660_dir_t) -> u8;
4826}
4827unsafe extern "C" {
4828    pub fn iso9660_dir_to_name(p_iso9660_dir: *const iso9660_dir_t) -> *mut ::std::os::raw::c_char;
4829}
4830unsafe extern "C" {
4831    pub fn iso9660_get_posix_filemode(p_iso_dirent: *const iso9660_stat_t) -> mode_t;
4832}
4833unsafe extern "C" {
4834    pub fn iso9660_get_preparer_id(p_pvd: *const iso9660_pvd_t) -> *mut ::std::os::raw::c_char;
4835}
4836unsafe extern "C" {
4837    pub fn iso9660_ifs_get_preparer_id(
4838        p_iso: *mut iso9660_t,
4839        p_psz_preparer_id: *mut *mut cdio_utf8_t,
4840    ) -> ::std::os::raw::c_uchar;
4841}
4842unsafe extern "C" {
4843    pub fn iso9660_get_publisher_id(p_pvd: *const iso9660_pvd_t) -> *mut ::std::os::raw::c_char;
4844}
4845unsafe extern "C" {
4846    pub fn iso9660_ifs_get_publisher_id(
4847        p_iso: *mut iso9660_t,
4848        p_psz_publisher_id: *mut *mut cdio_utf8_t,
4849    ) -> ::std::os::raw::c_uchar;
4850}
4851unsafe extern "C" {
4852    pub fn iso9660_get_pvd_type(p_pvd: *const iso9660_pvd_t) -> u8;
4853}
4854unsafe extern "C" {
4855    pub fn iso9660_get_pvd_id(p_pvd: *const iso9660_pvd_t) -> *const ::std::os::raw::c_char;
4856}
4857unsafe extern "C" {
4858    pub fn iso9660_get_pvd_space_size(p_pvd: *const iso9660_pvd_t) -> ::std::os::raw::c_int;
4859}
4860unsafe extern "C" {
4861    pub fn iso9660_get_pvd_block_size(p_pvd: *const iso9660_pvd_t) -> ::std::os::raw::c_int;
4862}
4863unsafe extern "C" {
4864    pub fn iso9660_get_pvd_version(pvd: *const iso9660_pvd_t) -> ::std::os::raw::c_int;
4865}
4866unsafe extern "C" {
4867    pub fn iso9660_get_system_id(p_pvd: *const iso9660_pvd_t) -> *mut ::std::os::raw::c_char;
4868}
4869unsafe extern "C" {
4870    pub fn iso9660_have_rr(p_iso: *mut iso9660_t, u_file_limit: u64) -> bool_3way_t;
4871}
4872unsafe extern "C" {
4873    pub fn iso9660_ifs_get_system_id(
4874        p_iso: *mut iso9660_t,
4875        p_psz_system_id: *mut *mut cdio_utf8_t,
4876    ) -> ::std::os::raw::c_uchar;
4877}
4878unsafe extern "C" {
4879    pub fn iso9660_get_root_lsn(p_pvd: *const iso9660_pvd_t) -> lsn_t;
4880}
4881unsafe extern "C" {
4882    pub fn iso9660_get_volume_id(p_pvd: *const iso9660_pvd_t) -> *mut ::std::os::raw::c_char;
4883}
4884unsafe extern "C" {
4885    pub fn iso9660_ifs_get_volume_id(
4886        p_iso: *mut iso9660_t,
4887        p_psz_volume_id: *mut *mut cdio_utf8_t,
4888    ) -> ::std::os::raw::c_uchar;
4889}
4890unsafe extern "C" {
4891    pub fn iso9660_get_volumeset_id(p_pvd: *const iso9660_pvd_t) -> *mut ::std::os::raw::c_char;
4892}
4893unsafe extern "C" {
4894    pub fn iso9660_ifs_get_volumeset_id(
4895        p_iso: *mut iso9660_t,
4896        p_psz_volumeset_id: *mut *mut cdio_utf8_t,
4897    ) -> ::std::os::raw::c_uchar;
4898}
4899unsafe extern "C" {
4900    pub fn iso9660_pathtable_init(pt: *mut ::std::os::raw::c_void);
4901}
4902unsafe extern "C" {
4903    pub fn iso9660_pathtable_get_size(pt: *const ::std::os::raw::c_void) -> ::std::os::raw::c_uint;
4904}
4905unsafe extern "C" {
4906    pub fn iso9660_pathtable_l_add_entry(
4907        pt: *mut ::std::os::raw::c_void,
4908        name: *const ::std::os::raw::c_char,
4909        extent: u32,
4910        parent: u16,
4911    ) -> u16;
4912}
4913unsafe extern "C" {
4914    pub fn iso9660_pathtable_m_add_entry(
4915        pt: *mut ::std::os::raw::c_void,
4916        name: *const ::std::os::raw::c_char,
4917        extent: u32,
4918        parent: u16,
4919    ) -> u16;
4920}
4921unsafe extern "C" {
4922    pub fn iso9660_set_pvd(
4923        pd: *mut ::std::os::raw::c_void,
4924        volume_id: *const ::std::os::raw::c_char,
4925        application_id: *const ::std::os::raw::c_char,
4926        publisher_id: *const ::std::os::raw::c_char,
4927        preparer_id: *const ::std::os::raw::c_char,
4928        iso_size: u32,
4929        root_dir: *const ::std::os::raw::c_void,
4930        path_table_l_extent: u32,
4931        path_table_m_extent: u32,
4932        path_table_size: u32,
4933        pvd_time: *const time_t,
4934    );
4935}
4936unsafe extern "C" {
4937    pub fn iso9660_set_evd(pd: *mut ::std::os::raw::c_void);
4938}
4939unsafe extern "C" {
4940    pub fn iso9660_ifs_is_xa(p_iso: *const iso9660_t) -> ::std::os::raw::c_uchar;
4941}
4942pub const ecma_167_enum1_t_VSD_STD_ID_SIZE: ecma_167_enum1_t = 5;
4943pub const ecma_167_enum1_t_UDF_REGID_ID_SIZE: ecma_167_enum1_t = 23;
4944pub const ecma_167_enum1_t_UDF_VOLID_SIZE: ecma_167_enum1_t = 32;
4945pub const ecma_167_enum1_t_UDF_FID_SIZE: ecma_167_enum1_t = 38;
4946pub const ecma_167_enum1_t_UDF_VOLSET_ID_SIZE: ecma_167_enum1_t = 128;
4947pub type ecma_167_enum1_t = ::std::os::raw::c_uint;
4948pub const tag_id_t_TAGID_PRI_VOL: tag_id_t = 1;
4949pub const tag_id_t_TAGID_ANCHOR: tag_id_t = 2;
4950pub const tag_id_t_TAGID_VOL: tag_id_t = 3;
4951pub const tag_id_t_TAGID_IMP_VOL: tag_id_t = 4;
4952pub const tag_id_t_TAGID_PARTITION: tag_id_t = 5;
4953pub const tag_id_t_TAGID_LOGVOL: tag_id_t = 6;
4954pub const tag_id_t_TAGID_UNALLOC_SPACE: tag_id_t = 7;
4955pub const tag_id_t_TAGID_TERM: tag_id_t = 8;
4956pub const tag_id_t_TAGID_LOGVOL_INTEGRITY: tag_id_t = 9;
4957pub const tag_id_t_TAGID_FSD: tag_id_t = 256;
4958pub const tag_id_t_TAGID_FID: tag_id_t = 257;
4959pub const tag_id_t_TAGID_AED: tag_id_t = 258;
4960pub const tag_id_t_TAGID_IE: tag_id_t = 259;
4961pub const tag_id_t_TAGID_TE: tag_id_t = 260;
4962pub const tag_id_t_TAGID_FILE_ENTRY: tag_id_t = 261;
4963pub const tag_id_t_TAGID_EAHD: tag_id_t = 262;
4964pub const tag_id_t_TAGID_USE: tag_id_t = 263;
4965pub const tag_id_t_TAGID_SBD: tag_id_t = 264;
4966pub const tag_id_t_TAGID_PIE: tag_id_t = 265;
4967pub const tag_id_t_TAGID_EFE: tag_id_t = 266;
4968pub type tag_id_t = ::std::os::raw::c_uint;
4969pub const udf_charspec_enum_t_CHARSPEC_TYPE_CS0: udf_charspec_enum_t = 0;
4970pub const udf_charspec_enum_t_CHARSPEC_TYPE_CS1: udf_charspec_enum_t = 1;
4971pub const udf_charspec_enum_t_CHARSPEC_TYPE_CS2: udf_charspec_enum_t = 2;
4972pub const udf_charspec_enum_t_CHARSPEC_TYPE_CS3: udf_charspec_enum_t = 3;
4973pub const udf_charspec_enum_t_CHARSPEC_TYPE_CS4: udf_charspec_enum_t = 4;
4974pub const udf_charspec_enum_t_CHARSPEC_TYPE_CS5: udf_charspec_enum_t = 5;
4975pub const udf_charspec_enum_t_CHARSPEC_TYPE_CS6: udf_charspec_enum_t = 6;
4976pub const udf_charspec_enum_t_CHARSPEC_TYPE_CS7: udf_charspec_enum_t = 7;
4977pub const udf_charspec_enum_t_CHARSPEC_TYPE_CS8: udf_charspec_enum_t = 8;
4978pub type udf_charspec_enum_t = ::std::os::raw::c_uint;
4979pub type udf_Uint8_t = u8;
4980pub type udf_Uint16_t = u16;
4981pub type udf_Uint32_t = u32;
4982pub type udf_Uint64_t = u64;
4983pub type udf_dstring = ::std::os::raw::c_char;
4984#[repr(C, packed)]
4985#[derive(Debug, Copy, Clone)]
4986pub struct udf_charspec_s {
4987    pub charset_type: udf_Uint8_t,
4988    pub charset_info: [udf_Uint8_t; 63usize],
4989}
4990#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4991const _: () = {
4992    ["Size of udf_charspec_s"][::std::mem::size_of::<udf_charspec_s>() - 64usize];
4993    ["Alignment of udf_charspec_s"][::std::mem::align_of::<udf_charspec_s>() - 1usize];
4994    ["Offset of field: udf_charspec_s::charset_type"]
4995        [::std::mem::offset_of!(udf_charspec_s, charset_type) - 0usize];
4996    ["Offset of field: udf_charspec_s::charset_info"]
4997        [::std::mem::offset_of!(udf_charspec_s, charset_info) - 1usize];
4998};
4999pub type udf_charspec_t = udf_charspec_s;
5000#[repr(C, packed)]
5001#[derive(Debug, Copy, Clone)]
5002pub struct udf_timestamp_s {
5003    pub type_tz: udf_Uint16_t,
5004    pub year: udf_Uint16_t,
5005    pub month: udf_Uint8_t,
5006    pub day: udf_Uint8_t,
5007    pub hour: udf_Uint8_t,
5008    pub minute: udf_Uint8_t,
5009    pub second: udf_Uint8_t,
5010    pub centiseconds: udf_Uint8_t,
5011    pub hundreds_of_microseconds: udf_Uint8_t,
5012    pub microseconds: udf_Uint8_t,
5013}
5014#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5015const _: () = {
5016    ["Size of udf_timestamp_s"][::std::mem::size_of::<udf_timestamp_s>() - 12usize];
5017    ["Alignment of udf_timestamp_s"][::std::mem::align_of::<udf_timestamp_s>() - 1usize];
5018    ["Offset of field: udf_timestamp_s::type_tz"]
5019        [::std::mem::offset_of!(udf_timestamp_s, type_tz) - 0usize];
5020    ["Offset of field: udf_timestamp_s::year"]
5021        [::std::mem::offset_of!(udf_timestamp_s, year) - 2usize];
5022    ["Offset of field: udf_timestamp_s::month"]
5023        [::std::mem::offset_of!(udf_timestamp_s, month) - 4usize];
5024    ["Offset of field: udf_timestamp_s::day"]
5025        [::std::mem::offset_of!(udf_timestamp_s, day) - 5usize];
5026    ["Offset of field: udf_timestamp_s::hour"]
5027        [::std::mem::offset_of!(udf_timestamp_s, hour) - 6usize];
5028    ["Offset of field: udf_timestamp_s::minute"]
5029        [::std::mem::offset_of!(udf_timestamp_s, minute) - 7usize];
5030    ["Offset of field: udf_timestamp_s::second"]
5031        [::std::mem::offset_of!(udf_timestamp_s, second) - 8usize];
5032    ["Offset of field: udf_timestamp_s::centiseconds"]
5033        [::std::mem::offset_of!(udf_timestamp_s, centiseconds) - 9usize];
5034    ["Offset of field: udf_timestamp_s::hundreds_of_microseconds"]
5035        [::std::mem::offset_of!(udf_timestamp_s, hundreds_of_microseconds) - 10usize];
5036    ["Offset of field: udf_timestamp_s::microseconds"]
5037        [::std::mem::offset_of!(udf_timestamp_s, microseconds) - 11usize];
5038};
5039pub type udf_timestamp_t = udf_timestamp_s;
5040pub const ecma_167_timezone_enum_t_TIMESTAMP_TYPE_CUT: ecma_167_timezone_enum_t = 0;
5041pub const ecma_167_timezone_enum_t_TIMESTAMP_TYPE_LOCAL: ecma_167_timezone_enum_t = 4096;
5042pub const ecma_167_timezone_enum_t_TIMESTAMP_TYPE_AGREEMENT: ecma_167_timezone_enum_t = 8192;
5043pub const ecma_167_timezone_enum_t_TIMESTAMP_TYPE_MASK: ecma_167_timezone_enum_t = 61440;
5044pub const ecma_167_timezone_enum_t_TIMESTAMP_TIMEZONE_MASK: ecma_167_timezone_enum_t = 4095;
5045pub type ecma_167_timezone_enum_t = ::std::os::raw::c_uint;
5046#[repr(C, packed)]
5047#[derive(Debug, Copy, Clone)]
5048pub struct udf_id_suffix_s {
5049    pub udf_revision: udf_Uint16_t,
5050    pub os_class: udf_Uint8_t,
5051    pub os_identifier: udf_Uint8_t,
5052    pub reserved: [udf_Uint8_t; 4usize],
5053}
5054#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5055const _: () = {
5056    ["Size of udf_id_suffix_s"][::std::mem::size_of::<udf_id_suffix_s>() - 8usize];
5057    ["Alignment of udf_id_suffix_s"][::std::mem::align_of::<udf_id_suffix_s>() - 1usize];
5058    ["Offset of field: udf_id_suffix_s::udf_revision"]
5059        [::std::mem::offset_of!(udf_id_suffix_s, udf_revision) - 0usize];
5060    ["Offset of field: udf_id_suffix_s::os_class"]
5061        [::std::mem::offset_of!(udf_id_suffix_s, os_class) - 2usize];
5062    ["Offset of field: udf_id_suffix_s::os_identifier"]
5063        [::std::mem::offset_of!(udf_id_suffix_s, os_identifier) - 3usize];
5064    ["Offset of field: udf_id_suffix_s::reserved"]
5065        [::std::mem::offset_of!(udf_id_suffix_s, reserved) - 4usize];
5066};
5067pub type udf_id_suffix_t = udf_id_suffix_s;
5068#[repr(C, packed)]
5069#[derive(Debug, Copy, Clone)]
5070pub struct udf_regid_s {
5071    pub flags: udf_Uint8_t,
5072    pub id: [udf_Uint8_t; 23usize],
5073    pub id_suffix: udf_id_suffix_t,
5074}
5075#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5076const _: () = {
5077    ["Size of udf_regid_s"][::std::mem::size_of::<udf_regid_s>() - 32usize];
5078    ["Alignment of udf_regid_s"][::std::mem::align_of::<udf_regid_s>() - 1usize];
5079    ["Offset of field: udf_regid_s::flags"][::std::mem::offset_of!(udf_regid_s, flags) - 0usize];
5080    ["Offset of field: udf_regid_s::id"][::std::mem::offset_of!(udf_regid_s, id) - 1usize];
5081    ["Offset of field: udf_regid_s::id_suffix"]
5082        [::std::mem::offset_of!(udf_regid_s, id_suffix) - 24usize];
5083};
5084pub type udf_regid_t = udf_regid_s;
5085#[repr(C, packed)]
5086#[derive(Debug, Copy, Clone)]
5087pub struct vol_struct_desc_s {
5088    pub struct_type: udf_Uint8_t,
5089    pub std_id: [udf_Uint8_t; 5usize],
5090    pub struct_version: udf_Uint8_t,
5091    pub struct_data: [udf_Uint8_t; 2041usize],
5092}
5093#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5094const _: () = {
5095    ["Size of vol_struct_desc_s"][::std::mem::size_of::<vol_struct_desc_s>() - 2048usize];
5096    ["Alignment of vol_struct_desc_s"][::std::mem::align_of::<vol_struct_desc_s>() - 1usize];
5097    ["Offset of field: vol_struct_desc_s::struct_type"]
5098        [::std::mem::offset_of!(vol_struct_desc_s, struct_type) - 0usize];
5099    ["Offset of field: vol_struct_desc_s::std_id"]
5100        [::std::mem::offset_of!(vol_struct_desc_s, std_id) - 1usize];
5101    ["Offset of field: vol_struct_desc_s::struct_version"]
5102        [::std::mem::offset_of!(vol_struct_desc_s, struct_version) - 6usize];
5103    ["Offset of field: vol_struct_desc_s::struct_data"]
5104        [::std::mem::offset_of!(vol_struct_desc_s, struct_data) - 7usize];
5105};
5106unsafe extern "C" {
5107    pub static VSD_STD_ID_CDW01: [::std::os::raw::c_char; 5usize];
5108}
5109#[repr(C, packed)]
5110#[derive(Debug, Copy, Clone)]
5111pub struct beginning_extended_area_desc_s {
5112    pub struct_type: udf_Uint8_t,
5113    pub std_id: [udf_Uint8_t; 5usize],
5114    pub struct_version: udf_Uint8_t,
5115    pub struct_data: [udf_Uint8_t; 2041usize],
5116}
5117#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5118const _: () = {
5119    ["Size of beginning_extended_area_desc_s"]
5120        [::std::mem::size_of::<beginning_extended_area_desc_s>() - 2048usize];
5121    ["Alignment of beginning_extended_area_desc_s"]
5122        [::std::mem::align_of::<beginning_extended_area_desc_s>() - 1usize];
5123    ["Offset of field: beginning_extended_area_desc_s::struct_type"]
5124        [::std::mem::offset_of!(beginning_extended_area_desc_s, struct_type) - 0usize];
5125    ["Offset of field: beginning_extended_area_desc_s::std_id"]
5126        [::std::mem::offset_of!(beginning_extended_area_desc_s, std_id) - 1usize];
5127    ["Offset of field: beginning_extended_area_desc_s::struct_version"]
5128        [::std::mem::offset_of!(beginning_extended_area_desc_s, struct_version) - 6usize];
5129    ["Offset of field: beginning_extended_area_desc_s::struct_data"]
5130        [::std::mem::offset_of!(beginning_extended_area_desc_s, struct_data) - 7usize];
5131};
5132#[repr(C, packed)]
5133#[derive(Debug, Copy, Clone)]
5134pub struct terminating_extended_area_desc_s {
5135    pub struct_type: udf_Uint8_t,
5136    pub std_id: [udf_Uint8_t; 5usize],
5137    pub struct_version: udf_Uint8_t,
5138    pub struct_data: [udf_Uint8_t; 2041usize],
5139}
5140#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5141const _: () = {
5142    ["Size of terminating_extended_area_desc_s"]
5143        [::std::mem::size_of::<terminating_extended_area_desc_s>() - 2048usize];
5144    ["Alignment of terminating_extended_area_desc_s"]
5145        [::std::mem::align_of::<terminating_extended_area_desc_s>() - 1usize];
5146    ["Offset of field: terminating_extended_area_desc_s::struct_type"]
5147        [::std::mem::offset_of!(terminating_extended_area_desc_s, struct_type) - 0usize];
5148    ["Offset of field: terminating_extended_area_desc_s::std_id"]
5149        [::std::mem::offset_of!(terminating_extended_area_desc_s, std_id) - 1usize];
5150    ["Offset of field: terminating_extended_area_desc_s::struct_version"]
5151        [::std::mem::offset_of!(terminating_extended_area_desc_s, struct_version) - 6usize];
5152    ["Offset of field: terminating_extended_area_desc_s::struct_data"]
5153        [::std::mem::offset_of!(terminating_extended_area_desc_s, struct_data) - 7usize];
5154};
5155#[repr(C, packed)]
5156#[derive(Debug, Copy, Clone)]
5157pub struct boot_desc_s {
5158    pub struct_type: udf_Uint8_t,
5159    pub std_ident: [udf_Uint8_t; 5usize],
5160    pub struct_version: udf_Uint8_t,
5161    pub reserved1: udf_Uint8_t,
5162    pub arch_type: udf_regid_t,
5163    pub boot_ident: udf_regid_t,
5164    pub bool_ext_location: udf_Uint32_t,
5165    pub bool_ext_length: udf_Uint32_t,
5166    pub load_address: udf_Uint64_t,
5167    pub start_address: udf_Uint64_t,
5168    pub desc_creation_time: udf_timestamp_t,
5169    pub flags: udf_Uint16_t,
5170    pub reserved2: [udf_Uint8_t; 32usize],
5171    pub boot_use: [udf_Uint8_t; 1906usize],
5172}
5173#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5174const _: () = {
5175    ["Size of boot_desc_s"][::std::mem::size_of::<boot_desc_s>() - 2048usize];
5176    ["Alignment of boot_desc_s"][::std::mem::align_of::<boot_desc_s>() - 1usize];
5177    ["Offset of field: boot_desc_s::struct_type"]
5178        [::std::mem::offset_of!(boot_desc_s, struct_type) - 0usize];
5179    ["Offset of field: boot_desc_s::std_ident"]
5180        [::std::mem::offset_of!(boot_desc_s, std_ident) - 1usize];
5181    ["Offset of field: boot_desc_s::struct_version"]
5182        [::std::mem::offset_of!(boot_desc_s, struct_version) - 6usize];
5183    ["Offset of field: boot_desc_s::reserved1"]
5184        [::std::mem::offset_of!(boot_desc_s, reserved1) - 7usize];
5185    ["Offset of field: boot_desc_s::arch_type"]
5186        [::std::mem::offset_of!(boot_desc_s, arch_type) - 8usize];
5187    ["Offset of field: boot_desc_s::boot_ident"]
5188        [::std::mem::offset_of!(boot_desc_s, boot_ident) - 40usize];
5189    ["Offset of field: boot_desc_s::bool_ext_location"]
5190        [::std::mem::offset_of!(boot_desc_s, bool_ext_location) - 72usize];
5191    ["Offset of field: boot_desc_s::bool_ext_length"]
5192        [::std::mem::offset_of!(boot_desc_s, bool_ext_length) - 76usize];
5193    ["Offset of field: boot_desc_s::load_address"]
5194        [::std::mem::offset_of!(boot_desc_s, load_address) - 80usize];
5195    ["Offset of field: boot_desc_s::start_address"]
5196        [::std::mem::offset_of!(boot_desc_s, start_address) - 88usize];
5197    ["Offset of field: boot_desc_s::desc_creation_time"]
5198        [::std::mem::offset_of!(boot_desc_s, desc_creation_time) - 96usize];
5199    ["Offset of field: boot_desc_s::flags"][::std::mem::offset_of!(boot_desc_s, flags) - 108usize];
5200    ["Offset of field: boot_desc_s::reserved2"]
5201        [::std::mem::offset_of!(boot_desc_s, reserved2) - 110usize];
5202    ["Offset of field: boot_desc_s::boot_use"]
5203        [::std::mem::offset_of!(boot_desc_s, boot_use) - 142usize];
5204};
5205#[repr(C, packed)]
5206#[derive(Debug, Copy, Clone)]
5207pub struct udf_extent_ad_s {
5208    pub len: udf_Uint32_t,
5209    pub loc: udf_Uint32_t,
5210}
5211#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5212const _: () = {
5213    ["Size of udf_extent_ad_s"][::std::mem::size_of::<udf_extent_ad_s>() - 8usize];
5214    ["Alignment of udf_extent_ad_s"][::std::mem::align_of::<udf_extent_ad_s>() - 1usize];
5215    ["Offset of field: udf_extent_ad_s::len"]
5216        [::std::mem::offset_of!(udf_extent_ad_s, len) - 0usize];
5217    ["Offset of field: udf_extent_ad_s::loc"]
5218        [::std::mem::offset_of!(udf_extent_ad_s, loc) - 4usize];
5219};
5220pub type udf_extent_ad_t = udf_extent_ad_s;
5221#[repr(C, packed)]
5222#[derive(Debug, Copy, Clone)]
5223pub struct udf_tag_s {
5224    pub id: udf_Uint16_t,
5225    pub desc_version: udf_Uint16_t,
5226    pub cksum: udf_Uint8_t,
5227    pub reserved: udf_Uint8_t,
5228    pub i_serial: udf_Uint16_t,
5229    pub desc_CRC: udf_Uint16_t,
5230    pub desc_CRC_len: udf_Uint16_t,
5231    pub loc: udf_Uint32_t,
5232}
5233#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5234const _: () = {
5235    ["Size of udf_tag_s"][::std::mem::size_of::<udf_tag_s>() - 16usize];
5236    ["Alignment of udf_tag_s"][::std::mem::align_of::<udf_tag_s>() - 1usize];
5237    ["Offset of field: udf_tag_s::id"][::std::mem::offset_of!(udf_tag_s, id) - 0usize];
5238    ["Offset of field: udf_tag_s::desc_version"]
5239        [::std::mem::offset_of!(udf_tag_s, desc_version) - 2usize];
5240    ["Offset of field: udf_tag_s::cksum"][::std::mem::offset_of!(udf_tag_s, cksum) - 4usize];
5241    ["Offset of field: udf_tag_s::reserved"][::std::mem::offset_of!(udf_tag_s, reserved) - 5usize];
5242    ["Offset of field: udf_tag_s::i_serial"][::std::mem::offset_of!(udf_tag_s, i_serial) - 6usize];
5243    ["Offset of field: udf_tag_s::desc_CRC"][::std::mem::offset_of!(udf_tag_s, desc_CRC) - 8usize];
5244    ["Offset of field: udf_tag_s::desc_CRC_len"]
5245        [::std::mem::offset_of!(udf_tag_s, desc_CRC_len) - 10usize];
5246    ["Offset of field: udf_tag_s::loc"][::std::mem::offset_of!(udf_tag_s, loc) - 12usize];
5247};
5248pub type udf_tag_t = udf_tag_s;
5249#[repr(C, packed)]
5250#[derive(Debug, Copy, Clone)]
5251pub struct NSR_desc_s {
5252    pub struct_type: udf_Uint8_t,
5253    pub std_id: [udf_Uint8_t; 5usize],
5254    pub struct_version: udf_Uint8_t,
5255    pub reserved: udf_Uint8_t,
5256    pub struct_data: [udf_Uint8_t; 2040usize],
5257}
5258#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5259const _: () = {
5260    ["Size of NSR_desc_s"][::std::mem::size_of::<NSR_desc_s>() - 2048usize];
5261    ["Alignment of NSR_desc_s"][::std::mem::align_of::<NSR_desc_s>() - 1usize];
5262    ["Offset of field: NSR_desc_s::struct_type"]
5263        [::std::mem::offset_of!(NSR_desc_s, struct_type) - 0usize];
5264    ["Offset of field: NSR_desc_s::std_id"][::std::mem::offset_of!(NSR_desc_s, std_id) - 1usize];
5265    ["Offset of field: NSR_desc_s::struct_version"]
5266        [::std::mem::offset_of!(NSR_desc_s, struct_version) - 6usize];
5267    ["Offset of field: NSR_desc_s::reserved"]
5268        [::std::mem::offset_of!(NSR_desc_s, reserved) - 7usize];
5269    ["Offset of field: NSR_desc_s::struct_data"]
5270        [::std::mem::offset_of!(NSR_desc_s, struct_data) - 8usize];
5271};
5272#[repr(C, packed)]
5273#[derive(Debug, Copy, Clone)]
5274pub struct udf_pvd_s {
5275    pub tag: udf_tag_t,
5276    pub vol_desc_seq_num: udf_Uint32_t,
5277    pub primary_vol_desc_num: udf_Uint32_t,
5278    pub vol_ident: [udf_dstring; 32usize],
5279    pub vol_seq_num: udf_Uint16_t,
5280    pub max_vol_seqnum: udf_Uint16_t,
5281    pub interchange_lvl: udf_Uint16_t,
5282    pub max_interchange_lvl: udf_Uint16_t,
5283    pub charset_list: udf_Uint32_t,
5284    pub max_charset_list: udf_Uint32_t,
5285    pub volset_id: [udf_dstring; 128usize],
5286    pub desc_charset: udf_charspec_t,
5287    pub explanatory_charset: udf_charspec_t,
5288    pub vol_abstract: udf_extent_ad_t,
5289    pub vol_copyright: udf_extent_ad_t,
5290    pub app_ident: udf_regid_t,
5291    pub recording_time: udf_timestamp_t,
5292    pub imp_ident: udf_regid_t,
5293    pub imp_use: [udf_Uint8_t; 64usize],
5294    pub predecessor_vol_desc_seq_location: udf_Uint32_t,
5295    pub flags: udf_Uint16_t,
5296    pub reserved: [udf_Uint8_t; 22usize],
5297}
5298#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5299const _: () = {
5300    ["Size of udf_pvd_s"][::std::mem::size_of::<udf_pvd_s>() - 512usize];
5301    ["Alignment of udf_pvd_s"][::std::mem::align_of::<udf_pvd_s>() - 1usize];
5302    ["Offset of field: udf_pvd_s::tag"][::std::mem::offset_of!(udf_pvd_s, tag) - 0usize];
5303    ["Offset of field: udf_pvd_s::vol_desc_seq_num"]
5304        [::std::mem::offset_of!(udf_pvd_s, vol_desc_seq_num) - 16usize];
5305    ["Offset of field: udf_pvd_s::primary_vol_desc_num"]
5306        [::std::mem::offset_of!(udf_pvd_s, primary_vol_desc_num) - 20usize];
5307    ["Offset of field: udf_pvd_s::vol_ident"]
5308        [::std::mem::offset_of!(udf_pvd_s, vol_ident) - 24usize];
5309    ["Offset of field: udf_pvd_s::vol_seq_num"]
5310        [::std::mem::offset_of!(udf_pvd_s, vol_seq_num) - 56usize];
5311    ["Offset of field: udf_pvd_s::max_vol_seqnum"]
5312        [::std::mem::offset_of!(udf_pvd_s, max_vol_seqnum) - 58usize];
5313    ["Offset of field: udf_pvd_s::interchange_lvl"]
5314        [::std::mem::offset_of!(udf_pvd_s, interchange_lvl) - 60usize];
5315    ["Offset of field: udf_pvd_s::max_interchange_lvl"]
5316        [::std::mem::offset_of!(udf_pvd_s, max_interchange_lvl) - 62usize];
5317    ["Offset of field: udf_pvd_s::charset_list"]
5318        [::std::mem::offset_of!(udf_pvd_s, charset_list) - 64usize];
5319    ["Offset of field: udf_pvd_s::max_charset_list"]
5320        [::std::mem::offset_of!(udf_pvd_s, max_charset_list) - 68usize];
5321    ["Offset of field: udf_pvd_s::volset_id"]
5322        [::std::mem::offset_of!(udf_pvd_s, volset_id) - 72usize];
5323    ["Offset of field: udf_pvd_s::desc_charset"]
5324        [::std::mem::offset_of!(udf_pvd_s, desc_charset) - 200usize];
5325    ["Offset of field: udf_pvd_s::explanatory_charset"]
5326        [::std::mem::offset_of!(udf_pvd_s, explanatory_charset) - 264usize];
5327    ["Offset of field: udf_pvd_s::vol_abstract"]
5328        [::std::mem::offset_of!(udf_pvd_s, vol_abstract) - 328usize];
5329    ["Offset of field: udf_pvd_s::vol_copyright"]
5330        [::std::mem::offset_of!(udf_pvd_s, vol_copyright) - 336usize];
5331    ["Offset of field: udf_pvd_s::app_ident"]
5332        [::std::mem::offset_of!(udf_pvd_s, app_ident) - 344usize];
5333    ["Offset of field: udf_pvd_s::recording_time"]
5334        [::std::mem::offset_of!(udf_pvd_s, recording_time) - 376usize];
5335    ["Offset of field: udf_pvd_s::imp_ident"]
5336        [::std::mem::offset_of!(udf_pvd_s, imp_ident) - 388usize];
5337    ["Offset of field: udf_pvd_s::imp_use"][::std::mem::offset_of!(udf_pvd_s, imp_use) - 420usize];
5338    ["Offset of field: udf_pvd_s::predecessor_vol_desc_seq_location"]
5339        [::std::mem::offset_of!(udf_pvd_s, predecessor_vol_desc_seq_location) - 484usize];
5340    ["Offset of field: udf_pvd_s::flags"][::std::mem::offset_of!(udf_pvd_s, flags) - 488usize];
5341    ["Offset of field: udf_pvd_s::reserved"]
5342        [::std::mem::offset_of!(udf_pvd_s, reserved) - 490usize];
5343};
5344pub type udf_pvd_t = udf_pvd_s;
5345#[repr(C, packed)]
5346#[derive(Debug, Copy, Clone)]
5347pub struct anchor_vol_desc_ptr_s {
5348    pub tag: udf_tag_t,
5349    pub main_vol_desc_seq_ext: udf_extent_ad_t,
5350    pub reserve_vol_desc_seq_ext: udf_extent_ad_t,
5351    pub reserved: [udf_Uint8_t; 480usize],
5352}
5353#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5354const _: () = {
5355    ["Size of anchor_vol_desc_ptr_s"][::std::mem::size_of::<anchor_vol_desc_ptr_s>() - 512usize];
5356    ["Alignment of anchor_vol_desc_ptr_s"]
5357        [::std::mem::align_of::<anchor_vol_desc_ptr_s>() - 1usize];
5358    ["Offset of field: anchor_vol_desc_ptr_s::tag"]
5359        [::std::mem::offset_of!(anchor_vol_desc_ptr_s, tag) - 0usize];
5360    ["Offset of field: anchor_vol_desc_ptr_s::main_vol_desc_seq_ext"]
5361        [::std::mem::offset_of!(anchor_vol_desc_ptr_s, main_vol_desc_seq_ext) - 16usize];
5362    ["Offset of field: anchor_vol_desc_ptr_s::reserve_vol_desc_seq_ext"]
5363        [::std::mem::offset_of!(anchor_vol_desc_ptr_s, reserve_vol_desc_seq_ext) - 24usize];
5364    ["Offset of field: anchor_vol_desc_ptr_s::reserved"]
5365        [::std::mem::offset_of!(anchor_vol_desc_ptr_s, reserved) - 32usize];
5366};
5367pub type anchor_vol_desc_ptr_t = anchor_vol_desc_ptr_s;
5368#[repr(C, packed)]
5369#[derive(Debug, Copy, Clone)]
5370pub struct vol_desc_ptr_s {
5371    pub tag: udf_tag_t,
5372    pub vol_desc_seq_num: udf_Uint32_t,
5373    pub next_vol_desc_set_ext: udf_extent_ad_t,
5374    pub reserved: [udf_Uint8_t; 484usize],
5375}
5376#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5377const _: () = {
5378    ["Size of vol_desc_ptr_s"][::std::mem::size_of::<vol_desc_ptr_s>() - 512usize];
5379    ["Alignment of vol_desc_ptr_s"][::std::mem::align_of::<vol_desc_ptr_s>() - 1usize];
5380    ["Offset of field: vol_desc_ptr_s::tag"][::std::mem::offset_of!(vol_desc_ptr_s, tag) - 0usize];
5381    ["Offset of field: vol_desc_ptr_s::vol_desc_seq_num"]
5382        [::std::mem::offset_of!(vol_desc_ptr_s, vol_desc_seq_num) - 16usize];
5383    ["Offset of field: vol_desc_ptr_s::next_vol_desc_set_ext"]
5384        [::std::mem::offset_of!(vol_desc_ptr_s, next_vol_desc_set_ext) - 20usize];
5385    ["Offset of field: vol_desc_ptr_s::reserved"]
5386        [::std::mem::offset_of!(vol_desc_ptr_s, reserved) - 28usize];
5387};
5388#[repr(C, packed)]
5389#[derive(Debug, Copy, Clone)]
5390pub struct imp_use_vol_desc_s {
5391    pub tag: udf_tag_t,
5392    pub vol_desc_seq_num: udf_Uint32_t,
5393    pub imp_id: udf_regid_t,
5394    pub imp_use: [udf_Uint8_t; 460usize],
5395}
5396#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5397const _: () = {
5398    ["Size of imp_use_vol_desc_s"][::std::mem::size_of::<imp_use_vol_desc_s>() - 512usize];
5399    ["Alignment of imp_use_vol_desc_s"][::std::mem::align_of::<imp_use_vol_desc_s>() - 1usize];
5400    ["Offset of field: imp_use_vol_desc_s::tag"]
5401        [::std::mem::offset_of!(imp_use_vol_desc_s, tag) - 0usize];
5402    ["Offset of field: imp_use_vol_desc_s::vol_desc_seq_num"]
5403        [::std::mem::offset_of!(imp_use_vol_desc_s, vol_desc_seq_num) - 16usize];
5404    ["Offset of field: imp_use_vol_desc_s::imp_id"]
5405        [::std::mem::offset_of!(imp_use_vol_desc_s, imp_id) - 20usize];
5406    ["Offset of field: imp_use_vol_desc_s::imp_use"]
5407        [::std::mem::offset_of!(imp_use_vol_desc_s, imp_use) - 52usize];
5408};
5409#[repr(C, packed)]
5410#[derive(Debug, Copy, Clone)]
5411pub struct partition_desc_s {
5412    pub tag: udf_tag_t,
5413    pub vol_desc_seq_num: udf_Uint32_t,
5414    pub flags: udf_Uint16_t,
5415    pub number: udf_Uint16_t,
5416    pub contents: udf_regid_t,
5417    pub contents_use: [udf_Uint8_t; 128usize],
5418    pub access_type: udf_Uint32_t,
5419    pub start_loc: udf_Uint32_t,
5420    pub part_len: udf_Uint32_t,
5421    pub imp_id: udf_regid_t,
5422    pub imp_use: [udf_Uint8_t; 128usize],
5423    pub reserved: [udf_Uint8_t; 156usize],
5424}
5425#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5426const _: () = {
5427    ["Size of partition_desc_s"][::std::mem::size_of::<partition_desc_s>() - 512usize];
5428    ["Alignment of partition_desc_s"][::std::mem::align_of::<partition_desc_s>() - 1usize];
5429    ["Offset of field: partition_desc_s::tag"]
5430        [::std::mem::offset_of!(partition_desc_s, tag) - 0usize];
5431    ["Offset of field: partition_desc_s::vol_desc_seq_num"]
5432        [::std::mem::offset_of!(partition_desc_s, vol_desc_seq_num) - 16usize];
5433    ["Offset of field: partition_desc_s::flags"]
5434        [::std::mem::offset_of!(partition_desc_s, flags) - 20usize];
5435    ["Offset of field: partition_desc_s::number"]
5436        [::std::mem::offset_of!(partition_desc_s, number) - 22usize];
5437    ["Offset of field: partition_desc_s::contents"]
5438        [::std::mem::offset_of!(partition_desc_s, contents) - 24usize];
5439    ["Offset of field: partition_desc_s::contents_use"]
5440        [::std::mem::offset_of!(partition_desc_s, contents_use) - 56usize];
5441    ["Offset of field: partition_desc_s::access_type"]
5442        [::std::mem::offset_of!(partition_desc_s, access_type) - 184usize];
5443    ["Offset of field: partition_desc_s::start_loc"]
5444        [::std::mem::offset_of!(partition_desc_s, start_loc) - 188usize];
5445    ["Offset of field: partition_desc_s::part_len"]
5446        [::std::mem::offset_of!(partition_desc_s, part_len) - 192usize];
5447    ["Offset of field: partition_desc_s::imp_id"]
5448        [::std::mem::offset_of!(partition_desc_s, imp_id) - 196usize];
5449    ["Offset of field: partition_desc_s::imp_use"]
5450        [::std::mem::offset_of!(partition_desc_s, imp_use) - 228usize];
5451    ["Offset of field: partition_desc_s::reserved"]
5452        [::std::mem::offset_of!(partition_desc_s, reserved) - 356usize];
5453};
5454pub type partition_desc_t = partition_desc_s;
5455#[repr(C, packed)]
5456#[derive(Debug, Copy, Clone)]
5457pub struct udf_lb_addr_s {
5458    pub lba: udf_Uint32_t,
5459    pub partitionReferenceNum: udf_Uint16_t,
5460}
5461#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5462const _: () = {
5463    ["Size of udf_lb_addr_s"][::std::mem::size_of::<udf_lb_addr_s>() - 6usize];
5464    ["Alignment of udf_lb_addr_s"][::std::mem::align_of::<udf_lb_addr_s>() - 1usize];
5465    ["Offset of field: udf_lb_addr_s::lba"][::std::mem::offset_of!(udf_lb_addr_s, lba) - 0usize];
5466    ["Offset of field: udf_lb_addr_s::partitionReferenceNum"]
5467        [::std::mem::offset_of!(udf_lb_addr_s, partitionReferenceNum) - 4usize];
5468};
5469pub type udf_lb_addr_t = udf_lb_addr_s;
5470#[repr(C, packed)]
5471#[derive(Debug, Copy, Clone)]
5472pub struct udf_short_ad_s {
5473    pub len: udf_Uint32_t,
5474    pub pos: udf_Uint32_t,
5475}
5476#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5477const _: () = {
5478    ["Size of udf_short_ad_s"][::std::mem::size_of::<udf_short_ad_s>() - 8usize];
5479    ["Alignment of udf_short_ad_s"][::std::mem::align_of::<udf_short_ad_s>() - 1usize];
5480    ["Offset of field: udf_short_ad_s::len"][::std::mem::offset_of!(udf_short_ad_s, len) - 0usize];
5481    ["Offset of field: udf_short_ad_s::pos"][::std::mem::offset_of!(udf_short_ad_s, pos) - 4usize];
5482};
5483pub type udf_short_ad_t = udf_short_ad_s;
5484#[repr(C, packed)]
5485#[derive(Debug, Copy, Clone)]
5486pub struct udf_long_ad_s {
5487    pub len: udf_Uint32_t,
5488    pub loc: udf_lb_addr_t,
5489    pub imp_use: [udf_Uint8_t; 6usize],
5490}
5491#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5492const _: () = {
5493    ["Size of udf_long_ad_s"][::std::mem::size_of::<udf_long_ad_s>() - 16usize];
5494    ["Alignment of udf_long_ad_s"][::std::mem::align_of::<udf_long_ad_s>() - 1usize];
5495    ["Offset of field: udf_long_ad_s::len"][::std::mem::offset_of!(udf_long_ad_s, len) - 0usize];
5496    ["Offset of field: udf_long_ad_s::loc"][::std::mem::offset_of!(udf_long_ad_s, loc) - 4usize];
5497    ["Offset of field: udf_long_ad_s::imp_use"]
5498        [::std::mem::offset_of!(udf_long_ad_s, imp_use) - 10usize];
5499};
5500pub type udf_long_ad_t = udf_long_ad_s;
5501#[repr(C, packed)]
5502pub struct logical_vol_desc_s {
5503    pub tag: udf_tag_t,
5504    pub seq_num: udf_Uint32_t,
5505    pub desc_charset: udf_charspec_t,
5506    pub logvol_id: [udf_dstring; 128usize],
5507    pub logical_blocksize: udf_Uint32_t,
5508    pub domain_id: udf_regid_t,
5509    pub lvd_use: logical_vol_desc_s__bindgen_ty_1,
5510    pub logvol_contents_use: [udf_Uint8_t; 16usize],
5511    pub maptable_len: udf_Uint32_t,
5512    pub i_partition_maps: udf_Uint32_t,
5513    pub imp_id: udf_regid_t,
5514    pub imp_use: [udf_Uint8_t; 128usize],
5515    pub integrity_seq_ext: udf_extent_ad_t,
5516    pub partition_maps: __IncompleteArrayField<udf_Uint8_t>,
5517}
5518#[repr(C)]
5519#[derive(Copy, Clone)]
5520pub union logical_vol_desc_s__bindgen_ty_1 {
5521    pub fsd_loc: udf_long_ad_t,
5522    pub logvol_content_use: [udf_Uint8_t; 16usize],
5523}
5524#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5525const _: () = {
5526    ["Size of logical_vol_desc_s__bindgen_ty_1"]
5527        [::std::mem::size_of::<logical_vol_desc_s__bindgen_ty_1>() - 16usize];
5528    ["Alignment of logical_vol_desc_s__bindgen_ty_1"]
5529        [::std::mem::align_of::<logical_vol_desc_s__bindgen_ty_1>() - 1usize];
5530    ["Offset of field: logical_vol_desc_s__bindgen_ty_1::fsd_loc"]
5531        [::std::mem::offset_of!(logical_vol_desc_s__bindgen_ty_1, fsd_loc) - 0usize];
5532    ["Offset of field: logical_vol_desc_s__bindgen_ty_1::logvol_content_use"]
5533        [::std::mem::offset_of!(logical_vol_desc_s__bindgen_ty_1, logvol_content_use) - 0usize];
5534};
5535#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5536const _: () = {
5537    ["Size of logical_vol_desc_s"][::std::mem::size_of::<logical_vol_desc_s>() - 456usize];
5538    ["Alignment of logical_vol_desc_s"][::std::mem::align_of::<logical_vol_desc_s>() - 1usize];
5539    ["Offset of field: logical_vol_desc_s::tag"]
5540        [::std::mem::offset_of!(logical_vol_desc_s, tag) - 0usize];
5541    ["Offset of field: logical_vol_desc_s::seq_num"]
5542        [::std::mem::offset_of!(logical_vol_desc_s, seq_num) - 16usize];
5543    ["Offset of field: logical_vol_desc_s::desc_charset"]
5544        [::std::mem::offset_of!(logical_vol_desc_s, desc_charset) - 20usize];
5545    ["Offset of field: logical_vol_desc_s::logvol_id"]
5546        [::std::mem::offset_of!(logical_vol_desc_s, logvol_id) - 84usize];
5547    ["Offset of field: logical_vol_desc_s::logical_blocksize"]
5548        [::std::mem::offset_of!(logical_vol_desc_s, logical_blocksize) - 212usize];
5549    ["Offset of field: logical_vol_desc_s::domain_id"]
5550        [::std::mem::offset_of!(logical_vol_desc_s, domain_id) - 216usize];
5551    ["Offset of field: logical_vol_desc_s::lvd_use"]
5552        [::std::mem::offset_of!(logical_vol_desc_s, lvd_use) - 248usize];
5553    ["Offset of field: logical_vol_desc_s::logvol_contents_use"]
5554        [::std::mem::offset_of!(logical_vol_desc_s, logvol_contents_use) - 264usize];
5555    ["Offset of field: logical_vol_desc_s::maptable_len"]
5556        [::std::mem::offset_of!(logical_vol_desc_s, maptable_len) - 280usize];
5557    ["Offset of field: logical_vol_desc_s::i_partition_maps"]
5558        [::std::mem::offset_of!(logical_vol_desc_s, i_partition_maps) - 284usize];
5559    ["Offset of field: logical_vol_desc_s::imp_id"]
5560        [::std::mem::offset_of!(logical_vol_desc_s, imp_id) - 288usize];
5561    ["Offset of field: logical_vol_desc_s::imp_use"]
5562        [::std::mem::offset_of!(logical_vol_desc_s, imp_use) - 320usize];
5563    ["Offset of field: logical_vol_desc_s::integrity_seq_ext"]
5564        [::std::mem::offset_of!(logical_vol_desc_s, integrity_seq_ext) - 448usize];
5565    ["Offset of field: logical_vol_desc_s::partition_maps"]
5566        [::std::mem::offset_of!(logical_vol_desc_s, partition_maps) - 456usize];
5567};
5568pub type logical_vol_desc_t = logical_vol_desc_s;
5569#[repr(C, packed)]
5570pub struct generic_partition_map {
5571    pub partition_map_type: udf_Uint8_t,
5572    pub partition_map_length: udf_Uint8_t,
5573    pub partition_mapping: __IncompleteArrayField<udf_Uint8_t>,
5574}
5575#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5576const _: () = {
5577    ["Size of generic_partition_map"][::std::mem::size_of::<generic_partition_map>() - 2usize];
5578    ["Alignment of generic_partition_map"]
5579        [::std::mem::align_of::<generic_partition_map>() - 1usize];
5580    ["Offset of field: generic_partition_map::partition_map_type"]
5581        [::std::mem::offset_of!(generic_partition_map, partition_map_type) - 0usize];
5582    ["Offset of field: generic_partition_map::partition_map_length"]
5583        [::std::mem::offset_of!(generic_partition_map, partition_map_length) - 1usize];
5584    ["Offset of field: generic_partition_map::partition_mapping"]
5585        [::std::mem::offset_of!(generic_partition_map, partition_mapping) - 2usize];
5586};
5587#[repr(C, packed)]
5588#[derive(Debug, Copy, Clone)]
5589pub struct generic_partition_map1 {
5590    pub partition_map_type: udf_Uint8_t,
5591    pub partition_map_length: udf_Uint8_t,
5592    pub vol_seq_num: udf_Uint16_t,
5593    pub i_partition: udf_Uint16_t,
5594}
5595#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5596const _: () = {
5597    ["Size of generic_partition_map1"][::std::mem::size_of::<generic_partition_map1>() - 6usize];
5598    ["Alignment of generic_partition_map1"]
5599        [::std::mem::align_of::<generic_partition_map1>() - 1usize];
5600    ["Offset of field: generic_partition_map1::partition_map_type"]
5601        [::std::mem::offset_of!(generic_partition_map1, partition_map_type) - 0usize];
5602    ["Offset of field: generic_partition_map1::partition_map_length"]
5603        [::std::mem::offset_of!(generic_partition_map1, partition_map_length) - 1usize];
5604    ["Offset of field: generic_partition_map1::vol_seq_num"]
5605        [::std::mem::offset_of!(generic_partition_map1, vol_seq_num) - 2usize];
5606    ["Offset of field: generic_partition_map1::i_partition"]
5607        [::std::mem::offset_of!(generic_partition_map1, i_partition) - 4usize];
5608};
5609#[repr(C, packed)]
5610#[derive(Debug, Copy, Clone)]
5611pub struct generic_partition_map2 {
5612    pub partition_map_type: udf_Uint8_t,
5613    pub partition_map_length: udf_Uint8_t,
5614    pub partition_id: [udf_Uint8_t; 62usize],
5615}
5616#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5617const _: () = {
5618    ["Size of generic_partition_map2"][::std::mem::size_of::<generic_partition_map2>() - 64usize];
5619    ["Alignment of generic_partition_map2"]
5620        [::std::mem::align_of::<generic_partition_map2>() - 1usize];
5621    ["Offset of field: generic_partition_map2::partition_map_type"]
5622        [::std::mem::offset_of!(generic_partition_map2, partition_map_type) - 0usize];
5623    ["Offset of field: generic_partition_map2::partition_map_length"]
5624        [::std::mem::offset_of!(generic_partition_map2, partition_map_length) - 1usize];
5625    ["Offset of field: generic_partition_map2::partition_id"]
5626        [::std::mem::offset_of!(generic_partition_map2, partition_id) - 2usize];
5627};
5628#[repr(C, packed)]
5629pub struct unalloc_space_desc_s {
5630    pub tag: udf_tag_t,
5631    pub vol_desc_seq_num: udf_Uint32_t,
5632    pub i_alloc_descs: udf_Uint32_t,
5633    pub allocDescs: __IncompleteArrayField<udf_extent_ad_t>,
5634}
5635#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5636const _: () = {
5637    ["Size of unalloc_space_desc_s"][::std::mem::size_of::<unalloc_space_desc_s>() - 24usize];
5638    ["Alignment of unalloc_space_desc_s"][::std::mem::align_of::<unalloc_space_desc_s>() - 1usize];
5639    ["Offset of field: unalloc_space_desc_s::tag"]
5640        [::std::mem::offset_of!(unalloc_space_desc_s, tag) - 0usize];
5641    ["Offset of field: unalloc_space_desc_s::vol_desc_seq_num"]
5642        [::std::mem::offset_of!(unalloc_space_desc_s, vol_desc_seq_num) - 16usize];
5643    ["Offset of field: unalloc_space_desc_s::i_alloc_descs"]
5644        [::std::mem::offset_of!(unalloc_space_desc_s, i_alloc_descs) - 20usize];
5645    ["Offset of field: unalloc_space_desc_s::allocDescs"]
5646        [::std::mem::offset_of!(unalloc_space_desc_s, allocDescs) - 24usize];
5647};
5648#[repr(C, packed)]
5649#[derive(Debug, Copy, Clone)]
5650pub struct terminating_desc_s {
5651    pub tag: udf_tag_t,
5652    pub reserved: [udf_Uint8_t; 496usize],
5653}
5654#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5655const _: () = {
5656    ["Size of terminating_desc_s"][::std::mem::size_of::<terminating_desc_s>() - 512usize];
5657    ["Alignment of terminating_desc_s"][::std::mem::align_of::<terminating_desc_s>() - 1usize];
5658    ["Offset of field: terminating_desc_s::tag"]
5659        [::std::mem::offset_of!(terminating_desc_s, tag) - 0usize];
5660    ["Offset of field: terminating_desc_s::reserved"]
5661        [::std::mem::offset_of!(terminating_desc_s, reserved) - 16usize];
5662};
5663#[repr(C, packed)]
5664pub struct logvol_integrity_desc_s {
5665    pub tag: udf_tag_t,
5666    pub recording_time: udf_timestamp_t,
5667    pub integrity_type: udf_Uint32_t,
5668    pub next_integrity_ext: udf_extent_ad_t,
5669    pub logvol_contents_use: [udf_Uint8_t; 32usize],
5670    pub i_partitions: udf_Uint32_t,
5671    pub u: logvol_integrity_desc_s__bindgen_ty_1,
5672}
5673#[repr(C, packed)]
5674pub struct logvol_integrity_desc_s__bindgen_ty_1 {
5675    pub imp_use_len: __BindgenUnionField<udf_Uint32_t>,
5676    pub freespace_table: __BindgenUnionField<logvol_integrity_desc_s__bindgen_ty_1__bindgen_ty_1>,
5677    pub size_table: __BindgenUnionField<logvol_integrity_desc_s__bindgen_ty_1__bindgen_ty_2>,
5678    pub imp_use: __BindgenUnionField<logvol_integrity_desc_s__bindgen_ty_1__bindgen_ty_3>,
5679    pub bindgen_union_field: [u8; 4usize],
5680}
5681#[repr(C, packed)]
5682pub struct logvol_integrity_desc_s__bindgen_ty_1__bindgen_ty_1 {
5683    pub unused: udf_Uint32_t,
5684    pub data: __IncompleteArrayField<udf_Uint32_t>,
5685}
5686#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5687const _: () = {
5688    ["Size of logvol_integrity_desc_s__bindgen_ty_1__bindgen_ty_1"]
5689        [::std::mem::size_of::<logvol_integrity_desc_s__bindgen_ty_1__bindgen_ty_1>() - 4usize];
5690    ["Alignment of logvol_integrity_desc_s__bindgen_ty_1__bindgen_ty_1"]
5691        [::std::mem::align_of::<logvol_integrity_desc_s__bindgen_ty_1__bindgen_ty_1>() - 1usize];
5692    ["Offset of field: logvol_integrity_desc_s__bindgen_ty_1__bindgen_ty_1::unused"][::std::mem::offset_of!(
5693        logvol_integrity_desc_s__bindgen_ty_1__bindgen_ty_1,
5694        unused
5695    ) - 0usize];
5696    ["Offset of field: logvol_integrity_desc_s__bindgen_ty_1__bindgen_ty_1::data"][::std::mem::offset_of!(
5697        logvol_integrity_desc_s__bindgen_ty_1__bindgen_ty_1,
5698        data
5699    ) - 4usize];
5700};
5701#[repr(C, packed)]
5702pub struct logvol_integrity_desc_s__bindgen_ty_1__bindgen_ty_2 {
5703    pub unused: udf_Uint32_t,
5704    pub data: __IncompleteArrayField<udf_Uint32_t>,
5705}
5706#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5707const _: () = {
5708    ["Size of logvol_integrity_desc_s__bindgen_ty_1__bindgen_ty_2"]
5709        [::std::mem::size_of::<logvol_integrity_desc_s__bindgen_ty_1__bindgen_ty_2>() - 4usize];
5710    ["Alignment of logvol_integrity_desc_s__bindgen_ty_1__bindgen_ty_2"]
5711        [::std::mem::align_of::<logvol_integrity_desc_s__bindgen_ty_1__bindgen_ty_2>() - 1usize];
5712    ["Offset of field: logvol_integrity_desc_s__bindgen_ty_1__bindgen_ty_2::unused"][::std::mem::offset_of!(
5713        logvol_integrity_desc_s__bindgen_ty_1__bindgen_ty_2,
5714        unused
5715    ) - 0usize];
5716    ["Offset of field: logvol_integrity_desc_s__bindgen_ty_1__bindgen_ty_2::data"][::std::mem::offset_of!(
5717        logvol_integrity_desc_s__bindgen_ty_1__bindgen_ty_2,
5718        data
5719    ) - 4usize];
5720};
5721#[repr(C, packed)]
5722pub struct logvol_integrity_desc_s__bindgen_ty_1__bindgen_ty_3 {
5723    pub unused: udf_Uint32_t,
5724    pub data: __IncompleteArrayField<udf_Uint32_t>,
5725}
5726#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5727const _: () = {
5728    ["Size of logvol_integrity_desc_s__bindgen_ty_1__bindgen_ty_3"]
5729        [::std::mem::size_of::<logvol_integrity_desc_s__bindgen_ty_1__bindgen_ty_3>() - 4usize];
5730    ["Alignment of logvol_integrity_desc_s__bindgen_ty_1__bindgen_ty_3"]
5731        [::std::mem::align_of::<logvol_integrity_desc_s__bindgen_ty_1__bindgen_ty_3>() - 1usize];
5732    ["Offset of field: logvol_integrity_desc_s__bindgen_ty_1__bindgen_ty_3::unused"][::std::mem::offset_of!(
5733        logvol_integrity_desc_s__bindgen_ty_1__bindgen_ty_3,
5734        unused
5735    ) - 0usize];
5736    ["Offset of field: logvol_integrity_desc_s__bindgen_ty_1__bindgen_ty_3::data"][::std::mem::offset_of!(
5737        logvol_integrity_desc_s__bindgen_ty_1__bindgen_ty_3,
5738        data
5739    ) - 4usize];
5740};
5741#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5742const _: () = {
5743    ["Size of logvol_integrity_desc_s__bindgen_ty_1"]
5744        [::std::mem::size_of::<logvol_integrity_desc_s__bindgen_ty_1>() - 4usize];
5745    ["Alignment of logvol_integrity_desc_s__bindgen_ty_1"]
5746        [::std::mem::align_of::<logvol_integrity_desc_s__bindgen_ty_1>() - 1usize];
5747    ["Offset of field: logvol_integrity_desc_s__bindgen_ty_1::imp_use_len"]
5748        [::std::mem::offset_of!(logvol_integrity_desc_s__bindgen_ty_1, imp_use_len) - 0usize];
5749    ["Offset of field: logvol_integrity_desc_s__bindgen_ty_1::freespace_table"]
5750        [::std::mem::offset_of!(logvol_integrity_desc_s__bindgen_ty_1, freespace_table) - 0usize];
5751    ["Offset of field: logvol_integrity_desc_s__bindgen_ty_1::size_table"]
5752        [::std::mem::offset_of!(logvol_integrity_desc_s__bindgen_ty_1, size_table) - 0usize];
5753    ["Offset of field: logvol_integrity_desc_s__bindgen_ty_1::imp_use"]
5754        [::std::mem::offset_of!(logvol_integrity_desc_s__bindgen_ty_1, imp_use) - 0usize];
5755};
5756#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5757const _: () = {
5758    ["Size of logvol_integrity_desc_s"][::std::mem::size_of::<logvol_integrity_desc_s>() - 80usize];
5759    ["Alignment of logvol_integrity_desc_s"]
5760        [::std::mem::align_of::<logvol_integrity_desc_s>() - 1usize];
5761    ["Offset of field: logvol_integrity_desc_s::tag"]
5762        [::std::mem::offset_of!(logvol_integrity_desc_s, tag) - 0usize];
5763    ["Offset of field: logvol_integrity_desc_s::recording_time"]
5764        [::std::mem::offset_of!(logvol_integrity_desc_s, recording_time) - 16usize];
5765    ["Offset of field: logvol_integrity_desc_s::integrity_type"]
5766        [::std::mem::offset_of!(logvol_integrity_desc_s, integrity_type) - 28usize];
5767    ["Offset of field: logvol_integrity_desc_s::next_integrity_ext"]
5768        [::std::mem::offset_of!(logvol_integrity_desc_s, next_integrity_ext) - 32usize];
5769    ["Offset of field: logvol_integrity_desc_s::logvol_contents_use"]
5770        [::std::mem::offset_of!(logvol_integrity_desc_s, logvol_contents_use) - 40usize];
5771    ["Offset of field: logvol_integrity_desc_s::i_partitions"]
5772        [::std::mem::offset_of!(logvol_integrity_desc_s, i_partitions) - 72usize];
5773    ["Offset of field: logvol_integrity_desc_s::u"]
5774        [::std::mem::offset_of!(logvol_integrity_desc_s, u) - 76usize];
5775};
5776#[repr(C, packed)]
5777#[derive(Debug, Copy, Clone)]
5778pub struct udf_ext_ad_s {
5779    pub len: udf_Uint32_t,
5780    pub recorded_len: udf_Uint32_t,
5781    pub information_len: udf_Uint32_t,
5782    pub ext_loc: udf_lb_addr_t,
5783}
5784#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5785const _: () = {
5786    ["Size of udf_ext_ad_s"][::std::mem::size_of::<udf_ext_ad_s>() - 18usize];
5787    ["Alignment of udf_ext_ad_s"][::std::mem::align_of::<udf_ext_ad_s>() - 1usize];
5788    ["Offset of field: udf_ext_ad_s::len"][::std::mem::offset_of!(udf_ext_ad_s, len) - 0usize];
5789    ["Offset of field: udf_ext_ad_s::recorded_len"]
5790        [::std::mem::offset_of!(udf_ext_ad_s, recorded_len) - 4usize];
5791    ["Offset of field: udf_ext_ad_s::information_len"]
5792        [::std::mem::offset_of!(udf_ext_ad_s, information_len) - 8usize];
5793    ["Offset of field: udf_ext_ad_s::ext_loc"]
5794        [::std::mem::offset_of!(udf_ext_ad_s, ext_loc) - 12usize];
5795};
5796pub type udf_ext_ad_t = udf_ext_ad_s;
5797#[repr(C, packed)]
5798#[derive(Debug, Copy, Clone)]
5799pub struct udf_fsd_s {
5800    pub tag: udf_tag_t,
5801    pub recording_time: udf_timestamp_t,
5802    pub interchange_lvl: udf_Uint16_t,
5803    pub maxInterchange_lvl: udf_Uint16_t,
5804    pub charset_list: udf_Uint32_t,
5805    pub max_charset_list: udf_Uint32_t,
5806    pub fileset_num: udf_Uint32_t,
5807    pub udf_fsd_num: udf_Uint32_t,
5808    pub logical_vol_id_charset: udf_charspec_t,
5809    pub logical_vol_id: [udf_dstring; 128usize],
5810    pub fileset_charset: udf_charspec_t,
5811    pub fileSet_id: [udf_dstring; 32usize],
5812    pub copyright_file_id: [udf_dstring; 32usize],
5813    pub abstract_file_id: [udf_dstring; 32usize],
5814    pub root_icb: udf_long_ad_t,
5815    pub domain_id: udf_regid_t,
5816    pub next_ext: udf_long_ad_t,
5817    pub stream_directory_ICB: udf_long_ad_t,
5818    pub reserved: [udf_Uint8_t; 32usize],
5819}
5820#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5821const _: () = {
5822    ["Size of udf_fsd_s"][::std::mem::size_of::<udf_fsd_s>() - 512usize];
5823    ["Alignment of udf_fsd_s"][::std::mem::align_of::<udf_fsd_s>() - 1usize];
5824    ["Offset of field: udf_fsd_s::tag"][::std::mem::offset_of!(udf_fsd_s, tag) - 0usize];
5825    ["Offset of field: udf_fsd_s::recording_time"]
5826        [::std::mem::offset_of!(udf_fsd_s, recording_time) - 16usize];
5827    ["Offset of field: udf_fsd_s::interchange_lvl"]
5828        [::std::mem::offset_of!(udf_fsd_s, interchange_lvl) - 28usize];
5829    ["Offset of field: udf_fsd_s::maxInterchange_lvl"]
5830        [::std::mem::offset_of!(udf_fsd_s, maxInterchange_lvl) - 30usize];
5831    ["Offset of field: udf_fsd_s::charset_list"]
5832        [::std::mem::offset_of!(udf_fsd_s, charset_list) - 32usize];
5833    ["Offset of field: udf_fsd_s::max_charset_list"]
5834        [::std::mem::offset_of!(udf_fsd_s, max_charset_list) - 36usize];
5835    ["Offset of field: udf_fsd_s::fileset_num"]
5836        [::std::mem::offset_of!(udf_fsd_s, fileset_num) - 40usize];
5837    ["Offset of field: udf_fsd_s::udf_fsd_num"]
5838        [::std::mem::offset_of!(udf_fsd_s, udf_fsd_num) - 44usize];
5839    ["Offset of field: udf_fsd_s::logical_vol_id_charset"]
5840        [::std::mem::offset_of!(udf_fsd_s, logical_vol_id_charset) - 48usize];
5841    ["Offset of field: udf_fsd_s::logical_vol_id"]
5842        [::std::mem::offset_of!(udf_fsd_s, logical_vol_id) - 112usize];
5843    ["Offset of field: udf_fsd_s::fileset_charset"]
5844        [::std::mem::offset_of!(udf_fsd_s, fileset_charset) - 240usize];
5845    ["Offset of field: udf_fsd_s::fileSet_id"]
5846        [::std::mem::offset_of!(udf_fsd_s, fileSet_id) - 304usize];
5847    ["Offset of field: udf_fsd_s::copyright_file_id"]
5848        [::std::mem::offset_of!(udf_fsd_s, copyright_file_id) - 336usize];
5849    ["Offset of field: udf_fsd_s::abstract_file_id"]
5850        [::std::mem::offset_of!(udf_fsd_s, abstract_file_id) - 368usize];
5851    ["Offset of field: udf_fsd_s::root_icb"]
5852        [::std::mem::offset_of!(udf_fsd_s, root_icb) - 400usize];
5853    ["Offset of field: udf_fsd_s::domain_id"]
5854        [::std::mem::offset_of!(udf_fsd_s, domain_id) - 416usize];
5855    ["Offset of field: udf_fsd_s::next_ext"]
5856        [::std::mem::offset_of!(udf_fsd_s, next_ext) - 448usize];
5857    ["Offset of field: udf_fsd_s::stream_directory_ICB"]
5858        [::std::mem::offset_of!(udf_fsd_s, stream_directory_ICB) - 464usize];
5859    ["Offset of field: udf_fsd_s::reserved"]
5860        [::std::mem::offset_of!(udf_fsd_s, reserved) - 480usize];
5861};
5862pub type udf_fsd_t = udf_fsd_s;
5863#[repr(C, packed)]
5864#[derive(Debug, Copy, Clone)]
5865pub struct partition_header_desc_s {
5866    pub unalloc_space_table: udf_short_ad_t,
5867    pub unalloc_space_bitmap: udf_short_ad_t,
5868    pub partition_integrity_table: udf_short_ad_t,
5869    pub freed_space_table: udf_short_ad_t,
5870    pub freed_space_bitmap: udf_short_ad_t,
5871    pub reserved: [udf_Uint8_t; 88usize],
5872}
5873#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5874const _: () = {
5875    ["Size of partition_header_desc_s"]
5876        [::std::mem::size_of::<partition_header_desc_s>() - 128usize];
5877    ["Alignment of partition_header_desc_s"]
5878        [::std::mem::align_of::<partition_header_desc_s>() - 1usize];
5879    ["Offset of field: partition_header_desc_s::unalloc_space_table"]
5880        [::std::mem::offset_of!(partition_header_desc_s, unalloc_space_table) - 0usize];
5881    ["Offset of field: partition_header_desc_s::unalloc_space_bitmap"]
5882        [::std::mem::offset_of!(partition_header_desc_s, unalloc_space_bitmap) - 8usize];
5883    ["Offset of field: partition_header_desc_s::partition_integrity_table"]
5884        [::std::mem::offset_of!(partition_header_desc_s, partition_integrity_table) - 16usize];
5885    ["Offset of field: partition_header_desc_s::freed_space_table"]
5886        [::std::mem::offset_of!(partition_header_desc_s, freed_space_table) - 24usize];
5887    ["Offset of field: partition_header_desc_s::freed_space_bitmap"]
5888        [::std::mem::offset_of!(partition_header_desc_s, freed_space_bitmap) - 32usize];
5889    ["Offset of field: partition_header_desc_s::reserved"]
5890        [::std::mem::offset_of!(partition_header_desc_s, reserved) - 40usize];
5891};
5892pub type partition_header_desc_t = partition_header_desc_s;
5893#[repr(C, packed)]
5894pub struct udf_fileid_desc_s {
5895    pub tag: udf_tag_t,
5896    pub file_version_num: udf_Uint16_t,
5897    pub file_characteristics: udf_Uint8_t,
5898    pub i_file_id: udf_Uint8_t,
5899    pub icb: udf_long_ad_t,
5900    pub u: udf_fileid_desc_s__bindgen_ty_1,
5901}
5902#[repr(C, packed)]
5903pub struct udf_fileid_desc_s__bindgen_ty_1 {
5904    pub i_imp_use: __BindgenUnionField<udf_Uint16_t>,
5905    pub imp_use: __BindgenUnionField<udf_fileid_desc_s__bindgen_ty_1__bindgen_ty_1>,
5906    pub file_id: __BindgenUnionField<udf_fileid_desc_s__bindgen_ty_1__bindgen_ty_2>,
5907    pub padding: __BindgenUnionField<udf_fileid_desc_s__bindgen_ty_1__bindgen_ty_3>,
5908    pub bindgen_union_field: [u8; 2usize],
5909}
5910#[repr(C, packed)]
5911pub struct udf_fileid_desc_s__bindgen_ty_1__bindgen_ty_1 {
5912    pub unused: udf_Uint16_t,
5913    pub data: __IncompleteArrayField<udf_Uint8_t>,
5914}
5915#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5916const _: () = {
5917    ["Size of udf_fileid_desc_s__bindgen_ty_1__bindgen_ty_1"]
5918        [::std::mem::size_of::<udf_fileid_desc_s__bindgen_ty_1__bindgen_ty_1>() - 2usize];
5919    ["Alignment of udf_fileid_desc_s__bindgen_ty_1__bindgen_ty_1"]
5920        [::std::mem::align_of::<udf_fileid_desc_s__bindgen_ty_1__bindgen_ty_1>() - 1usize];
5921    ["Offset of field: udf_fileid_desc_s__bindgen_ty_1__bindgen_ty_1::unused"]
5922        [::std::mem::offset_of!(udf_fileid_desc_s__bindgen_ty_1__bindgen_ty_1, unused) - 0usize];
5923    ["Offset of field: udf_fileid_desc_s__bindgen_ty_1__bindgen_ty_1::data"]
5924        [::std::mem::offset_of!(udf_fileid_desc_s__bindgen_ty_1__bindgen_ty_1, data) - 2usize];
5925};
5926#[repr(C, packed)]
5927pub struct udf_fileid_desc_s__bindgen_ty_1__bindgen_ty_2 {
5928    pub unused: udf_Uint16_t,
5929    pub data: __IncompleteArrayField<udf_Uint8_t>,
5930}
5931#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5932const _: () = {
5933    ["Size of udf_fileid_desc_s__bindgen_ty_1__bindgen_ty_2"]
5934        [::std::mem::size_of::<udf_fileid_desc_s__bindgen_ty_1__bindgen_ty_2>() - 2usize];
5935    ["Alignment of udf_fileid_desc_s__bindgen_ty_1__bindgen_ty_2"]
5936        [::std::mem::align_of::<udf_fileid_desc_s__bindgen_ty_1__bindgen_ty_2>() - 1usize];
5937    ["Offset of field: udf_fileid_desc_s__bindgen_ty_1__bindgen_ty_2::unused"]
5938        [::std::mem::offset_of!(udf_fileid_desc_s__bindgen_ty_1__bindgen_ty_2, unused) - 0usize];
5939    ["Offset of field: udf_fileid_desc_s__bindgen_ty_1__bindgen_ty_2::data"]
5940        [::std::mem::offset_of!(udf_fileid_desc_s__bindgen_ty_1__bindgen_ty_2, data) - 2usize];
5941};
5942#[repr(C, packed)]
5943pub struct udf_fileid_desc_s__bindgen_ty_1__bindgen_ty_3 {
5944    pub unused: udf_Uint16_t,
5945    pub data: __IncompleteArrayField<udf_Uint8_t>,
5946}
5947#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5948const _: () = {
5949    ["Size of udf_fileid_desc_s__bindgen_ty_1__bindgen_ty_3"]
5950        [::std::mem::size_of::<udf_fileid_desc_s__bindgen_ty_1__bindgen_ty_3>() - 2usize];
5951    ["Alignment of udf_fileid_desc_s__bindgen_ty_1__bindgen_ty_3"]
5952        [::std::mem::align_of::<udf_fileid_desc_s__bindgen_ty_1__bindgen_ty_3>() - 1usize];
5953    ["Offset of field: udf_fileid_desc_s__bindgen_ty_1__bindgen_ty_3::unused"]
5954        [::std::mem::offset_of!(udf_fileid_desc_s__bindgen_ty_1__bindgen_ty_3, unused) - 0usize];
5955    ["Offset of field: udf_fileid_desc_s__bindgen_ty_1__bindgen_ty_3::data"]
5956        [::std::mem::offset_of!(udf_fileid_desc_s__bindgen_ty_1__bindgen_ty_3, data) - 2usize];
5957};
5958#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5959const _: () = {
5960    ["Size of udf_fileid_desc_s__bindgen_ty_1"]
5961        [::std::mem::size_of::<udf_fileid_desc_s__bindgen_ty_1>() - 2usize];
5962    ["Alignment of udf_fileid_desc_s__bindgen_ty_1"]
5963        [::std::mem::align_of::<udf_fileid_desc_s__bindgen_ty_1>() - 1usize];
5964    ["Offset of field: udf_fileid_desc_s__bindgen_ty_1::i_imp_use"]
5965        [::std::mem::offset_of!(udf_fileid_desc_s__bindgen_ty_1, i_imp_use) - 0usize];
5966    ["Offset of field: udf_fileid_desc_s__bindgen_ty_1::imp_use"]
5967        [::std::mem::offset_of!(udf_fileid_desc_s__bindgen_ty_1, imp_use) - 0usize];
5968    ["Offset of field: udf_fileid_desc_s__bindgen_ty_1::file_id"]
5969        [::std::mem::offset_of!(udf_fileid_desc_s__bindgen_ty_1, file_id) - 0usize];
5970    ["Offset of field: udf_fileid_desc_s__bindgen_ty_1::padding"]
5971        [::std::mem::offset_of!(udf_fileid_desc_s__bindgen_ty_1, padding) - 0usize];
5972};
5973#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5974const _: () = {
5975    ["Size of udf_fileid_desc_s"][::std::mem::size_of::<udf_fileid_desc_s>() - 38usize];
5976    ["Alignment of udf_fileid_desc_s"][::std::mem::align_of::<udf_fileid_desc_s>() - 1usize];
5977    ["Offset of field: udf_fileid_desc_s::tag"]
5978        [::std::mem::offset_of!(udf_fileid_desc_s, tag) - 0usize];
5979    ["Offset of field: udf_fileid_desc_s::file_version_num"]
5980        [::std::mem::offset_of!(udf_fileid_desc_s, file_version_num) - 16usize];
5981    ["Offset of field: udf_fileid_desc_s::file_characteristics"]
5982        [::std::mem::offset_of!(udf_fileid_desc_s, file_characteristics) - 18usize];
5983    ["Offset of field: udf_fileid_desc_s::i_file_id"]
5984        [::std::mem::offset_of!(udf_fileid_desc_s, i_file_id) - 19usize];
5985    ["Offset of field: udf_fileid_desc_s::icb"]
5986        [::std::mem::offset_of!(udf_fileid_desc_s, icb) - 20usize];
5987    ["Offset of field: udf_fileid_desc_s::u"]
5988        [::std::mem::offset_of!(udf_fileid_desc_s, u) - 36usize];
5989};
5990pub type udf_fileid_desc_t = udf_fileid_desc_s;
5991pub const file_characteristics_t_UDF_FILE_HIDDEN: file_characteristics_t = 1;
5992pub const file_characteristics_t_UDF_FILE_DIRECTORY: file_characteristics_t = 2;
5993pub const file_characteristics_t_UDF_FILE_DELETED: file_characteristics_t = 4;
5994pub const file_characteristics_t_UDF_FILE_PARENT: file_characteristics_t = 8;
5995pub const file_characteristics_t_UDF_FILE_METADATA: file_characteristics_t = 16;
5996pub type file_characteristics_t = ::std::os::raw::c_uint;
5997#[repr(C, packed)]
5998#[derive(Debug, Copy, Clone)]
5999pub struct allocExtDesc {
6000    pub tag: udf_tag_t,
6001    pub previous_alloc_ext_loc: udf_Uint32_t,
6002    pub i_alloc_descs: udf_Uint32_t,
6003}
6004#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6005const _: () = {
6006    ["Size of allocExtDesc"][::std::mem::size_of::<allocExtDesc>() - 24usize];
6007    ["Alignment of allocExtDesc"][::std::mem::align_of::<allocExtDesc>() - 1usize];
6008    ["Offset of field: allocExtDesc::tag"][::std::mem::offset_of!(allocExtDesc, tag) - 0usize];
6009    ["Offset of field: allocExtDesc::previous_alloc_ext_loc"]
6010        [::std::mem::offset_of!(allocExtDesc, previous_alloc_ext_loc) - 16usize];
6011    ["Offset of field: allocExtDesc::i_alloc_descs"]
6012        [::std::mem::offset_of!(allocExtDesc, i_alloc_descs) - 20usize];
6013};
6014#[repr(C, packed)]
6015#[derive(Debug, Copy, Clone)]
6016pub struct udf_icbtag_s {
6017    pub prev_num_dirs: udf_Uint32_t,
6018    pub strat_type: udf_Uint16_t,
6019    pub strat_param: udf_Uint16_t,
6020    pub max_num_entries: udf_Uint16_t,
6021    pub reserved: udf_Uint8_t,
6022    pub file_type: udf_Uint8_t,
6023    pub parent_ICB: udf_lb_addr_t,
6024    pub flags: udf_Uint16_t,
6025}
6026#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6027const _: () = {
6028    ["Size of udf_icbtag_s"][::std::mem::size_of::<udf_icbtag_s>() - 20usize];
6029    ["Alignment of udf_icbtag_s"][::std::mem::align_of::<udf_icbtag_s>() - 1usize];
6030    ["Offset of field: udf_icbtag_s::prev_num_dirs"]
6031        [::std::mem::offset_of!(udf_icbtag_s, prev_num_dirs) - 0usize];
6032    ["Offset of field: udf_icbtag_s::strat_type"]
6033        [::std::mem::offset_of!(udf_icbtag_s, strat_type) - 4usize];
6034    ["Offset of field: udf_icbtag_s::strat_param"]
6035        [::std::mem::offset_of!(udf_icbtag_s, strat_param) - 6usize];
6036    ["Offset of field: udf_icbtag_s::max_num_entries"]
6037        [::std::mem::offset_of!(udf_icbtag_s, max_num_entries) - 8usize];
6038    ["Offset of field: udf_icbtag_s::reserved"]
6039        [::std::mem::offset_of!(udf_icbtag_s, reserved) - 10usize];
6040    ["Offset of field: udf_icbtag_s::file_type"]
6041        [::std::mem::offset_of!(udf_icbtag_s, file_type) - 11usize];
6042    ["Offset of field: udf_icbtag_s::parent_ICB"]
6043        [::std::mem::offset_of!(udf_icbtag_s, parent_ICB) - 12usize];
6044    ["Offset of field: udf_icbtag_s::flags"][::std::mem::offset_of!(udf_icbtag_s, flags) - 18usize];
6045};
6046pub type udf_icbtag_t = udf_icbtag_s;
6047pub const icbtag_file_type_enum_t_ICBTAG_FILE_TYPE_UNDEF: icbtag_file_type_enum_t = 0;
6048pub const icbtag_file_type_enum_t_ICBTAG_FILE_TYPE_USE: icbtag_file_type_enum_t = 1;
6049pub const icbtag_file_type_enum_t_ICBTAG_FILE_TYPE_PIE: icbtag_file_type_enum_t = 2;
6050pub const icbtag_file_type_enum_t_ICBTAG_FILE_TYPE_IE: icbtag_file_type_enum_t = 3;
6051pub const icbtag_file_type_enum_t_ICBTAG_FILE_TYPE_DIRECTORY: icbtag_file_type_enum_t = 4;
6052pub const icbtag_file_type_enum_t_ICBTAG_FILE_TYPE_REGULAR: icbtag_file_type_enum_t = 5;
6053pub const icbtag_file_type_enum_t_ICBTAG_FILE_TYPE_BLOCK: icbtag_file_type_enum_t = 6;
6054pub const icbtag_file_type_enum_t_ICBTAG_FILE_TYPE_CHAR: icbtag_file_type_enum_t = 7;
6055pub const icbtag_file_type_enum_t_ICBTAG_FILE_TYPE_EA: icbtag_file_type_enum_t = 8;
6056pub const icbtag_file_type_enum_t_ICBTAG_FILE_TYPE_FIFO: icbtag_file_type_enum_t = 9;
6057pub const icbtag_file_type_enum_t_ICBTAG_FILE_TYPE_SOCKET: icbtag_file_type_enum_t = 10;
6058pub const icbtag_file_type_enum_t_ICBTAG_FILE_TYPE_TE: icbtag_file_type_enum_t = 11;
6059pub const icbtag_file_type_enum_t_ICBTAG_FILE_TYPE_SYMLINK: icbtag_file_type_enum_t = 12;
6060pub const icbtag_file_type_enum_t_ICBTAG_FILE_TYPE_STREAMDIR: icbtag_file_type_enum_t = 13;
6061pub type icbtag_file_type_enum_t = ::std::os::raw::c_uint;
6062pub const icbtag_flag_enum_t_ICBTAG_FLAG_AD_MASK: icbtag_flag_enum_t = 7;
6063pub const icbtag_flag_enum_t_ICBTAG_FLAG_AD_SHORT: icbtag_flag_enum_t = 0;
6064pub const icbtag_flag_enum_t_ICBTAG_FLAG_AD_LONG: icbtag_flag_enum_t = 1;
6065pub const icbtag_flag_enum_t_ICBTAG_FLAG_AD_EXTENDED: icbtag_flag_enum_t = 2;
6066pub const icbtag_flag_enum_t_ICBTAG_FLAG_AD_IN_ICB: icbtag_flag_enum_t = 3;
6067pub const icbtag_flag_enum_t_ICBTAG_FLAG_SORTED: icbtag_flag_enum_t = 8;
6068pub const icbtag_flag_enum_t_ICBTAG_FLAG_NONRELOCATABLE: icbtag_flag_enum_t = 16;
6069pub const icbtag_flag_enum_t_ICBTAG_FLAG_ARCHIVE: icbtag_flag_enum_t = 32;
6070pub const icbtag_flag_enum_t_ICBTAG_FLAG_SETUID: icbtag_flag_enum_t = 64;
6071pub const icbtag_flag_enum_t_ICBTAG_FLAG_SETGID: icbtag_flag_enum_t = 128;
6072pub const icbtag_flag_enum_t_ICBTAG_FLAG_STICKY: icbtag_flag_enum_t = 256;
6073pub const icbtag_flag_enum_t_ICBTAG_FLAG_CONTIGUOUS: icbtag_flag_enum_t = 512;
6074pub const icbtag_flag_enum_t_ICBTAG_FLAG_SYSTEM: icbtag_flag_enum_t = 1024;
6075pub const icbtag_flag_enum_t_ICBTAG_FLAG_TRANSFORMED: icbtag_flag_enum_t = 2048;
6076pub const icbtag_flag_enum_t_ICBTAG_FLAG_MULTIVERSIONS: icbtag_flag_enum_t = 4096;
6077pub const icbtag_flag_enum_t_ICBTAG_FLAG_STREAM: icbtag_flag_enum_t = 8192;
6078pub type icbtag_flag_enum_t = ::std::os::raw::c_uint;
6079#[repr(C, packed)]
6080#[derive(Debug, Copy, Clone)]
6081pub struct indirect_entry_s {
6082    pub tag: udf_tag_t,
6083    pub icb_tag: udf_icbtag_t,
6084    pub indirect_ICB: udf_long_ad_t,
6085}
6086#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6087const _: () = {
6088    ["Size of indirect_entry_s"][::std::mem::size_of::<indirect_entry_s>() - 52usize];
6089    ["Alignment of indirect_entry_s"][::std::mem::align_of::<indirect_entry_s>() - 1usize];
6090    ["Offset of field: indirect_entry_s::tag"]
6091        [::std::mem::offset_of!(indirect_entry_s, tag) - 0usize];
6092    ["Offset of field: indirect_entry_s::icb_tag"]
6093        [::std::mem::offset_of!(indirect_entry_s, icb_tag) - 16usize];
6094    ["Offset of field: indirect_entry_s::indirect_ICB"]
6095        [::std::mem::offset_of!(indirect_entry_s, indirect_ICB) - 36usize];
6096};
6097#[repr(C, packed)]
6098#[derive(Debug, Copy, Clone)]
6099pub struct terminal_entry_s {
6100    pub tag: udf_tag_t,
6101    pub icb_tag: udf_icbtag_t,
6102}
6103#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6104const _: () = {
6105    ["Size of terminal_entry_s"][::std::mem::size_of::<terminal_entry_s>() - 36usize];
6106    ["Alignment of terminal_entry_s"][::std::mem::align_of::<terminal_entry_s>() - 1usize];
6107    ["Offset of field: terminal_entry_s::tag"]
6108        [::std::mem::offset_of!(terminal_entry_s, tag) - 0usize];
6109    ["Offset of field: terminal_entry_s::icb_tag"]
6110        [::std::mem::offset_of!(terminal_entry_s, icb_tag) - 16usize];
6111};
6112#[repr(C, packed)]
6113pub struct udf_file_entry_s {
6114    pub tag: udf_tag_t,
6115    pub icb_tag: udf_icbtag_t,
6116    pub uid: udf_Uint32_t,
6117    pub gid: udf_Uint32_t,
6118    pub permissions: udf_Uint32_t,
6119    pub link_count: udf_Uint16_t,
6120    pub rec_format: udf_Uint8_t,
6121    pub rec_disp_attr: udf_Uint8_t,
6122    pub rec_len: udf_Uint32_t,
6123    pub info_len: udf_Uint64_t,
6124    pub logblks_recorded: udf_Uint64_t,
6125    pub access_time: udf_timestamp_t,
6126    pub modification_time: udf_timestamp_t,
6127    pub attribute_time: udf_timestamp_t,
6128    pub checkpoint: udf_Uint32_t,
6129    pub ext_attr_ICB: udf_long_ad_t,
6130    pub imp_id: udf_regid_t,
6131    pub unique_ID: udf_Uint64_t,
6132    pub i_extended_attr: udf_Uint32_t,
6133    pub i_alloc_descs: udf_Uint32_t,
6134    pub u: udf_file_entry_s__bindgen_ty_1,
6135}
6136#[repr(C)]
6137pub struct udf_file_entry_s__bindgen_ty_1 {
6138    pub ext_attr: __BindgenUnionField<[udf_Uint8_t; 0usize]>,
6139    pub alloc_descs: __BindgenUnionField<[udf_Uint8_t; 0usize]>,
6140    pub pad_to_one_block: __BindgenUnionField<[udf_Uint8_t; 1872usize]>,
6141    pub bindgen_union_field: [u8; 1872usize],
6142}
6143#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6144const _: () = {
6145    ["Size of udf_file_entry_s__bindgen_ty_1"]
6146        [::std::mem::size_of::<udf_file_entry_s__bindgen_ty_1>() - 1872usize];
6147    ["Alignment of udf_file_entry_s__bindgen_ty_1"]
6148        [::std::mem::align_of::<udf_file_entry_s__bindgen_ty_1>() - 1usize];
6149    ["Offset of field: udf_file_entry_s__bindgen_ty_1::ext_attr"]
6150        [::std::mem::offset_of!(udf_file_entry_s__bindgen_ty_1, ext_attr) - 0usize];
6151    ["Offset of field: udf_file_entry_s__bindgen_ty_1::alloc_descs"]
6152        [::std::mem::offset_of!(udf_file_entry_s__bindgen_ty_1, alloc_descs) - 0usize];
6153    ["Offset of field: udf_file_entry_s__bindgen_ty_1::pad_to_one_block"]
6154        [::std::mem::offset_of!(udf_file_entry_s__bindgen_ty_1, pad_to_one_block) - 0usize];
6155};
6156#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6157const _: () = {
6158    ["Size of udf_file_entry_s"][::std::mem::size_of::<udf_file_entry_s>() - 2048usize];
6159    ["Alignment of udf_file_entry_s"][::std::mem::align_of::<udf_file_entry_s>() - 1usize];
6160    ["Offset of field: udf_file_entry_s::tag"]
6161        [::std::mem::offset_of!(udf_file_entry_s, tag) - 0usize];
6162    ["Offset of field: udf_file_entry_s::icb_tag"]
6163        [::std::mem::offset_of!(udf_file_entry_s, icb_tag) - 16usize];
6164    ["Offset of field: udf_file_entry_s::uid"]
6165        [::std::mem::offset_of!(udf_file_entry_s, uid) - 36usize];
6166    ["Offset of field: udf_file_entry_s::gid"]
6167        [::std::mem::offset_of!(udf_file_entry_s, gid) - 40usize];
6168    ["Offset of field: udf_file_entry_s::permissions"]
6169        [::std::mem::offset_of!(udf_file_entry_s, permissions) - 44usize];
6170    ["Offset of field: udf_file_entry_s::link_count"]
6171        [::std::mem::offset_of!(udf_file_entry_s, link_count) - 48usize];
6172    ["Offset of field: udf_file_entry_s::rec_format"]
6173        [::std::mem::offset_of!(udf_file_entry_s, rec_format) - 50usize];
6174    ["Offset of field: udf_file_entry_s::rec_disp_attr"]
6175        [::std::mem::offset_of!(udf_file_entry_s, rec_disp_attr) - 51usize];
6176    ["Offset of field: udf_file_entry_s::rec_len"]
6177        [::std::mem::offset_of!(udf_file_entry_s, rec_len) - 52usize];
6178    ["Offset of field: udf_file_entry_s::info_len"]
6179        [::std::mem::offset_of!(udf_file_entry_s, info_len) - 56usize];
6180    ["Offset of field: udf_file_entry_s::logblks_recorded"]
6181        [::std::mem::offset_of!(udf_file_entry_s, logblks_recorded) - 64usize];
6182    ["Offset of field: udf_file_entry_s::access_time"]
6183        [::std::mem::offset_of!(udf_file_entry_s, access_time) - 72usize];
6184    ["Offset of field: udf_file_entry_s::modification_time"]
6185        [::std::mem::offset_of!(udf_file_entry_s, modification_time) - 84usize];
6186    ["Offset of field: udf_file_entry_s::attribute_time"]
6187        [::std::mem::offset_of!(udf_file_entry_s, attribute_time) - 96usize];
6188    ["Offset of field: udf_file_entry_s::checkpoint"]
6189        [::std::mem::offset_of!(udf_file_entry_s, checkpoint) - 108usize];
6190    ["Offset of field: udf_file_entry_s::ext_attr_ICB"]
6191        [::std::mem::offset_of!(udf_file_entry_s, ext_attr_ICB) - 112usize];
6192    ["Offset of field: udf_file_entry_s::imp_id"]
6193        [::std::mem::offset_of!(udf_file_entry_s, imp_id) - 128usize];
6194    ["Offset of field: udf_file_entry_s::unique_ID"]
6195        [::std::mem::offset_of!(udf_file_entry_s, unique_ID) - 160usize];
6196    ["Offset of field: udf_file_entry_s::i_extended_attr"]
6197        [::std::mem::offset_of!(udf_file_entry_s, i_extended_attr) - 168usize];
6198    ["Offset of field: udf_file_entry_s::i_alloc_descs"]
6199        [::std::mem::offset_of!(udf_file_entry_s, i_alloc_descs) - 172usize];
6200    ["Offset of field: udf_file_entry_s::u"]
6201        [::std::mem::offset_of!(udf_file_entry_s, u) - 176usize];
6202};
6203pub type udf_file_entry_t = udf_file_entry_s;
6204#[repr(C, packed)]
6205#[derive(Debug, Copy, Clone)]
6206pub struct extended_attr_header_desc_s {
6207    pub tag: udf_tag_t,
6208    pub imp_attr_location: udf_Uint32_t,
6209    pub app_attr_location: udf_Uint32_t,
6210}
6211#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6212const _: () = {
6213    ["Size of extended_attr_header_desc_s"]
6214        [::std::mem::size_of::<extended_attr_header_desc_s>() - 24usize];
6215    ["Alignment of extended_attr_header_desc_s"]
6216        [::std::mem::align_of::<extended_attr_header_desc_s>() - 1usize];
6217    ["Offset of field: extended_attr_header_desc_s::tag"]
6218        [::std::mem::offset_of!(extended_attr_header_desc_s, tag) - 0usize];
6219    ["Offset of field: extended_attr_header_desc_s::imp_attr_location"]
6220        [::std::mem::offset_of!(extended_attr_header_desc_s, imp_attr_location) - 16usize];
6221    ["Offset of field: extended_attr_header_desc_s::app_attr_location"]
6222        [::std::mem::offset_of!(extended_attr_header_desc_s, app_attr_location) - 20usize];
6223};
6224#[repr(C, packed)]
6225pub struct generic_format_s {
6226    pub attr_type: udf_Uint32_t,
6227    pub attr_subtype: udf_Uint8_t,
6228    pub reserved: [udf_Uint8_t; 3usize],
6229    pub attrLength: udf_Uint32_t,
6230    pub attrData: __IncompleteArrayField<udf_Uint8_t>,
6231}
6232#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6233const _: () = {
6234    ["Size of generic_format_s"][::std::mem::size_of::<generic_format_s>() - 12usize];
6235    ["Alignment of generic_format_s"][::std::mem::align_of::<generic_format_s>() - 1usize];
6236    ["Offset of field: generic_format_s::attr_type"]
6237        [::std::mem::offset_of!(generic_format_s, attr_type) - 0usize];
6238    ["Offset of field: generic_format_s::attr_subtype"]
6239        [::std::mem::offset_of!(generic_format_s, attr_subtype) - 4usize];
6240    ["Offset of field: generic_format_s::reserved"]
6241        [::std::mem::offset_of!(generic_format_s, reserved) - 5usize];
6242    ["Offset of field: generic_format_s::attrLength"]
6243        [::std::mem::offset_of!(generic_format_s, attrLength) - 8usize];
6244    ["Offset of field: generic_format_s::attrData"]
6245        [::std::mem::offset_of!(generic_format_s, attrData) - 12usize];
6246};
6247#[repr(C, packed)]
6248pub struct charSet_info_s {
6249    pub attr_type: udf_Uint32_t,
6250    pub attr_subtype: udf_Uint8_t,
6251    pub reserved: [udf_Uint8_t; 3usize],
6252    pub attrLength: udf_Uint32_t,
6253    pub escapeSeqLength: udf_Uint32_t,
6254    pub charSetType: udf_Uint8_t,
6255    pub escapeSeq: __IncompleteArrayField<udf_Uint8_t>,
6256}
6257#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6258const _: () = {
6259    ["Size of charSet_info_s"][::std::mem::size_of::<charSet_info_s>() - 17usize];
6260    ["Alignment of charSet_info_s"][::std::mem::align_of::<charSet_info_s>() - 1usize];
6261    ["Offset of field: charSet_info_s::attr_type"]
6262        [::std::mem::offset_of!(charSet_info_s, attr_type) - 0usize];
6263    ["Offset of field: charSet_info_s::attr_subtype"]
6264        [::std::mem::offset_of!(charSet_info_s, attr_subtype) - 4usize];
6265    ["Offset of field: charSet_info_s::reserved"]
6266        [::std::mem::offset_of!(charSet_info_s, reserved) - 5usize];
6267    ["Offset of field: charSet_info_s::attrLength"]
6268        [::std::mem::offset_of!(charSet_info_s, attrLength) - 8usize];
6269    ["Offset of field: charSet_info_s::escapeSeqLength"]
6270        [::std::mem::offset_of!(charSet_info_s, escapeSeqLength) - 12usize];
6271    ["Offset of field: charSet_info_s::charSetType"]
6272        [::std::mem::offset_of!(charSet_info_s, charSetType) - 16usize];
6273    ["Offset of field: charSet_info_s::escapeSeq"]
6274        [::std::mem::offset_of!(charSet_info_s, escapeSeq) - 17usize];
6275};
6276#[repr(C, packed)]
6277#[derive(Debug, Copy, Clone)]
6278pub struct alt_perms_s {
6279    pub attr_type: udf_Uint32_t,
6280    pub attr_subtype: udf_Uint8_t,
6281    pub reserved: [udf_Uint8_t; 3usize],
6282    pub attrLength: udf_Uint32_t,
6283    pub owner_id: udf_Uint16_t,
6284    pub group_id: udf_Uint16_t,
6285    pub permission: udf_Uint16_t,
6286}
6287#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6288const _: () = {
6289    ["Size of alt_perms_s"][::std::mem::size_of::<alt_perms_s>() - 18usize];
6290    ["Alignment of alt_perms_s"][::std::mem::align_of::<alt_perms_s>() - 1usize];
6291    ["Offset of field: alt_perms_s::attr_type"]
6292        [::std::mem::offset_of!(alt_perms_s, attr_type) - 0usize];
6293    ["Offset of field: alt_perms_s::attr_subtype"]
6294        [::std::mem::offset_of!(alt_perms_s, attr_subtype) - 4usize];
6295    ["Offset of field: alt_perms_s::reserved"]
6296        [::std::mem::offset_of!(alt_perms_s, reserved) - 5usize];
6297    ["Offset of field: alt_perms_s::attrLength"]
6298        [::std::mem::offset_of!(alt_perms_s, attrLength) - 8usize];
6299    ["Offset of field: alt_perms_s::owner_id"]
6300        [::std::mem::offset_of!(alt_perms_s, owner_id) - 12usize];
6301    ["Offset of field: alt_perms_s::group_id"]
6302        [::std::mem::offset_of!(alt_perms_s, group_id) - 14usize];
6303    ["Offset of field: alt_perms_s::permission"]
6304        [::std::mem::offset_of!(alt_perms_s, permission) - 16usize];
6305};
6306#[repr(C, packed)]
6307#[derive(Debug, Copy, Clone)]
6308pub struct filetimes_ext_attr_s {
6309    pub attr_type: udf_Uint32_t,
6310    pub attr_subtype: udf_Uint8_t,
6311    pub reserved: [udf_Uint8_t; 3usize],
6312    pub attrLength: udf_Uint32_t,
6313    pub dataLength: udf_Uint32_t,
6314    pub fileTimeExistence: udf_Uint32_t,
6315    pub fileTimes: udf_Uint8_t,
6316}
6317#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6318const _: () = {
6319    ["Size of filetimes_ext_attr_s"][::std::mem::size_of::<filetimes_ext_attr_s>() - 21usize];
6320    ["Alignment of filetimes_ext_attr_s"][::std::mem::align_of::<filetimes_ext_attr_s>() - 1usize];
6321    ["Offset of field: filetimes_ext_attr_s::attr_type"]
6322        [::std::mem::offset_of!(filetimes_ext_attr_s, attr_type) - 0usize];
6323    ["Offset of field: filetimes_ext_attr_s::attr_subtype"]
6324        [::std::mem::offset_of!(filetimes_ext_attr_s, attr_subtype) - 4usize];
6325    ["Offset of field: filetimes_ext_attr_s::reserved"]
6326        [::std::mem::offset_of!(filetimes_ext_attr_s, reserved) - 5usize];
6327    ["Offset of field: filetimes_ext_attr_s::attrLength"]
6328        [::std::mem::offset_of!(filetimes_ext_attr_s, attrLength) - 8usize];
6329    ["Offset of field: filetimes_ext_attr_s::dataLength"]
6330        [::std::mem::offset_of!(filetimes_ext_attr_s, dataLength) - 12usize];
6331    ["Offset of field: filetimes_ext_attr_s::fileTimeExistence"]
6332        [::std::mem::offset_of!(filetimes_ext_attr_s, fileTimeExistence) - 16usize];
6333    ["Offset of field: filetimes_ext_attr_s::fileTimes"]
6334        [::std::mem::offset_of!(filetimes_ext_attr_s, fileTimes) - 20usize];
6335};
6336#[repr(C, packed)]
6337pub struct infoTimesExtAttr {
6338    pub attr_type: udf_Uint32_t,
6339    pub attr_subtype: udf_Uint8_t,
6340    pub reserved: [udf_Uint8_t; 3usize],
6341    pub attrLength: udf_Uint32_t,
6342    pub dataLength: udf_Uint32_t,
6343    pub infoTimeExistence: udf_Uint32_t,
6344    pub infoTimes: __IncompleteArrayField<udf_Uint8_t>,
6345}
6346#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6347const _: () = {
6348    ["Size of infoTimesExtAttr"][::std::mem::size_of::<infoTimesExtAttr>() - 20usize];
6349    ["Alignment of infoTimesExtAttr"][::std::mem::align_of::<infoTimesExtAttr>() - 1usize];
6350    ["Offset of field: infoTimesExtAttr::attr_type"]
6351        [::std::mem::offset_of!(infoTimesExtAttr, attr_type) - 0usize];
6352    ["Offset of field: infoTimesExtAttr::attr_subtype"]
6353        [::std::mem::offset_of!(infoTimesExtAttr, attr_subtype) - 4usize];
6354    ["Offset of field: infoTimesExtAttr::reserved"]
6355        [::std::mem::offset_of!(infoTimesExtAttr, reserved) - 5usize];
6356    ["Offset of field: infoTimesExtAttr::attrLength"]
6357        [::std::mem::offset_of!(infoTimesExtAttr, attrLength) - 8usize];
6358    ["Offset of field: infoTimesExtAttr::dataLength"]
6359        [::std::mem::offset_of!(infoTimesExtAttr, dataLength) - 12usize];
6360    ["Offset of field: infoTimesExtAttr::infoTimeExistence"]
6361        [::std::mem::offset_of!(infoTimesExtAttr, infoTimeExistence) - 16usize];
6362    ["Offset of field: infoTimesExtAttr::infoTimes"]
6363        [::std::mem::offset_of!(infoTimesExtAttr, infoTimes) - 20usize];
6364};
6365#[repr(C, packed)]
6366pub struct deviceSpec {
6367    pub attr_type: udf_Uint32_t,
6368    pub attr_subtype: udf_Uint8_t,
6369    pub reserved: [udf_Uint8_t; 3usize],
6370    pub attrLength: udf_Uint32_t,
6371    pub imp_useLength: udf_Uint32_t,
6372    pub majorDevice_id: udf_Uint32_t,
6373    pub minorDevice_id: udf_Uint32_t,
6374    pub imp_use: __IncompleteArrayField<udf_Uint8_t>,
6375}
6376#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6377const _: () = {
6378    ["Size of deviceSpec"][::std::mem::size_of::<deviceSpec>() - 24usize];
6379    ["Alignment of deviceSpec"][::std::mem::align_of::<deviceSpec>() - 1usize];
6380    ["Offset of field: deviceSpec::attr_type"]
6381        [::std::mem::offset_of!(deviceSpec, attr_type) - 0usize];
6382    ["Offset of field: deviceSpec::attr_subtype"]
6383        [::std::mem::offset_of!(deviceSpec, attr_subtype) - 4usize];
6384    ["Offset of field: deviceSpec::reserved"]
6385        [::std::mem::offset_of!(deviceSpec, reserved) - 5usize];
6386    ["Offset of field: deviceSpec::attrLength"]
6387        [::std::mem::offset_of!(deviceSpec, attrLength) - 8usize];
6388    ["Offset of field: deviceSpec::imp_useLength"]
6389        [::std::mem::offset_of!(deviceSpec, imp_useLength) - 12usize];
6390    ["Offset of field: deviceSpec::majorDevice_id"]
6391        [::std::mem::offset_of!(deviceSpec, majorDevice_id) - 16usize];
6392    ["Offset of field: deviceSpec::minorDevice_id"]
6393        [::std::mem::offset_of!(deviceSpec, minorDevice_id) - 20usize];
6394    ["Offset of field: deviceSpec::imp_use"][::std::mem::offset_of!(deviceSpec, imp_use) - 24usize];
6395};
6396#[repr(C, packed)]
6397pub struct impUseExtAttr {
6398    pub attr_type: udf_Uint32_t,
6399    pub attr_subtype: udf_Uint8_t,
6400    pub reserved: [udf_Uint8_t; 3usize],
6401    pub attrLength: udf_Uint32_t,
6402    pub imp_useLength: udf_Uint32_t,
6403    pub imp_id: udf_regid_t,
6404    pub imp_use: __IncompleteArrayField<udf_Uint8_t>,
6405}
6406#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6407const _: () = {
6408    ["Size of impUseExtAttr"][::std::mem::size_of::<impUseExtAttr>() - 48usize];
6409    ["Alignment of impUseExtAttr"][::std::mem::align_of::<impUseExtAttr>() - 1usize];
6410    ["Offset of field: impUseExtAttr::attr_type"]
6411        [::std::mem::offset_of!(impUseExtAttr, attr_type) - 0usize];
6412    ["Offset of field: impUseExtAttr::attr_subtype"]
6413        [::std::mem::offset_of!(impUseExtAttr, attr_subtype) - 4usize];
6414    ["Offset of field: impUseExtAttr::reserved"]
6415        [::std::mem::offset_of!(impUseExtAttr, reserved) - 5usize];
6416    ["Offset of field: impUseExtAttr::attrLength"]
6417        [::std::mem::offset_of!(impUseExtAttr, attrLength) - 8usize];
6418    ["Offset of field: impUseExtAttr::imp_useLength"]
6419        [::std::mem::offset_of!(impUseExtAttr, imp_useLength) - 12usize];
6420    ["Offset of field: impUseExtAttr::imp_id"]
6421        [::std::mem::offset_of!(impUseExtAttr, imp_id) - 16usize];
6422    ["Offset of field: impUseExtAttr::imp_use"]
6423        [::std::mem::offset_of!(impUseExtAttr, imp_use) - 48usize];
6424};
6425#[repr(C, packed)]
6426pub struct appUseExtAttr {
6427    pub attr_type: udf_Uint32_t,
6428    pub attr_subtype: udf_Uint8_t,
6429    pub reserved: [udf_Uint8_t; 3usize],
6430    pub attrLength: udf_Uint32_t,
6431    pub appUseLength: udf_Uint32_t,
6432    pub app_id: udf_regid_t,
6433    pub appUse: __IncompleteArrayField<udf_Uint8_t>,
6434}
6435#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6436const _: () = {
6437    ["Size of appUseExtAttr"][::std::mem::size_of::<appUseExtAttr>() - 48usize];
6438    ["Alignment of appUseExtAttr"][::std::mem::align_of::<appUseExtAttr>() - 1usize];
6439    ["Offset of field: appUseExtAttr::attr_type"]
6440        [::std::mem::offset_of!(appUseExtAttr, attr_type) - 0usize];
6441    ["Offset of field: appUseExtAttr::attr_subtype"]
6442        [::std::mem::offset_of!(appUseExtAttr, attr_subtype) - 4usize];
6443    ["Offset of field: appUseExtAttr::reserved"]
6444        [::std::mem::offset_of!(appUseExtAttr, reserved) - 5usize];
6445    ["Offset of field: appUseExtAttr::attrLength"]
6446        [::std::mem::offset_of!(appUseExtAttr, attrLength) - 8usize];
6447    ["Offset of field: appUseExtAttr::appUseLength"]
6448        [::std::mem::offset_of!(appUseExtAttr, appUseLength) - 12usize];
6449    ["Offset of field: appUseExtAttr::app_id"]
6450        [::std::mem::offset_of!(appUseExtAttr, app_id) - 16usize];
6451    ["Offset of field: appUseExtAttr::appUse"]
6452        [::std::mem::offset_of!(appUseExtAttr, appUse) - 48usize];
6453};
6454#[repr(C, packed)]
6455pub struct unallocSpaceEntry {
6456    pub tag: udf_tag_t,
6457    pub icb_tag: udf_icbtag_t,
6458    pub lengthAllocDescs: udf_Uint32_t,
6459    pub allocDescs: __IncompleteArrayField<udf_Uint8_t>,
6460}
6461#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6462const _: () = {
6463    ["Size of unallocSpaceEntry"][::std::mem::size_of::<unallocSpaceEntry>() - 40usize];
6464    ["Alignment of unallocSpaceEntry"][::std::mem::align_of::<unallocSpaceEntry>() - 1usize];
6465    ["Offset of field: unallocSpaceEntry::tag"]
6466        [::std::mem::offset_of!(unallocSpaceEntry, tag) - 0usize];
6467    ["Offset of field: unallocSpaceEntry::icb_tag"]
6468        [::std::mem::offset_of!(unallocSpaceEntry, icb_tag) - 16usize];
6469    ["Offset of field: unallocSpaceEntry::lengthAllocDescs"]
6470        [::std::mem::offset_of!(unallocSpaceEntry, lengthAllocDescs) - 36usize];
6471    ["Offset of field: unallocSpaceEntry::allocDescs"]
6472        [::std::mem::offset_of!(unallocSpaceEntry, allocDescs) - 40usize];
6473};
6474#[repr(C, packed)]
6475pub struct spaceBitmapDesc {
6476    pub tag: udf_tag_t,
6477    pub i_bits: udf_Uint32_t,
6478    pub i_bytes: udf_Uint32_t,
6479    pub bitmap: __IncompleteArrayField<udf_Uint8_t>,
6480}
6481#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6482const _: () = {
6483    ["Size of spaceBitmapDesc"][::std::mem::size_of::<spaceBitmapDesc>() - 24usize];
6484    ["Alignment of spaceBitmapDesc"][::std::mem::align_of::<spaceBitmapDesc>() - 1usize];
6485    ["Offset of field: spaceBitmapDesc::tag"]
6486        [::std::mem::offset_of!(spaceBitmapDesc, tag) - 0usize];
6487    ["Offset of field: spaceBitmapDesc::i_bits"]
6488        [::std::mem::offset_of!(spaceBitmapDesc, i_bits) - 16usize];
6489    ["Offset of field: spaceBitmapDesc::i_bytes"]
6490        [::std::mem::offset_of!(spaceBitmapDesc, i_bytes) - 20usize];
6491    ["Offset of field: spaceBitmapDesc::bitmap"]
6492        [::std::mem::offset_of!(spaceBitmapDesc, bitmap) - 24usize];
6493};
6494#[repr(C, packed)]
6495#[derive(Debug, Copy, Clone)]
6496pub struct partitionIntegrityEntry {
6497    pub tag: udf_tag_t,
6498    pub icb_tag: udf_icbtag_t,
6499    pub recording_time: udf_timestamp_t,
6500    pub integrityType: udf_Uint8_t,
6501    pub reserved: [udf_Uint8_t; 175usize],
6502    pub imp_id: udf_regid_t,
6503    pub imp_use: [udf_Uint8_t; 256usize],
6504}
6505#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6506const _: () = {
6507    ["Size of partitionIntegrityEntry"]
6508        [::std::mem::size_of::<partitionIntegrityEntry>() - 512usize];
6509    ["Alignment of partitionIntegrityEntry"]
6510        [::std::mem::align_of::<partitionIntegrityEntry>() - 1usize];
6511    ["Offset of field: partitionIntegrityEntry::tag"]
6512        [::std::mem::offset_of!(partitionIntegrityEntry, tag) - 0usize];
6513    ["Offset of field: partitionIntegrityEntry::icb_tag"]
6514        [::std::mem::offset_of!(partitionIntegrityEntry, icb_tag) - 16usize];
6515    ["Offset of field: partitionIntegrityEntry::recording_time"]
6516        [::std::mem::offset_of!(partitionIntegrityEntry, recording_time) - 36usize];
6517    ["Offset of field: partitionIntegrityEntry::integrityType"]
6518        [::std::mem::offset_of!(partitionIntegrityEntry, integrityType) - 48usize];
6519    ["Offset of field: partitionIntegrityEntry::reserved"]
6520        [::std::mem::offset_of!(partitionIntegrityEntry, reserved) - 49usize];
6521    ["Offset of field: partitionIntegrityEntry::imp_id"]
6522        [::std::mem::offset_of!(partitionIntegrityEntry, imp_id) - 224usize];
6523    ["Offset of field: partitionIntegrityEntry::imp_use"]
6524        [::std::mem::offset_of!(partitionIntegrityEntry, imp_use) - 256usize];
6525};
6526#[repr(C, packed)]
6527#[derive(Debug, Copy, Clone)]
6528pub struct logical_vol_header_desc_s {
6529    pub uniqueID: udf_Uint64_t,
6530    pub reserved: [udf_Uint8_t; 24usize],
6531}
6532#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6533const _: () = {
6534    ["Size of logical_vol_header_desc_s"]
6535        [::std::mem::size_of::<logical_vol_header_desc_s>() - 32usize];
6536    ["Alignment of logical_vol_header_desc_s"]
6537        [::std::mem::align_of::<logical_vol_header_desc_s>() - 1usize];
6538    ["Offset of field: logical_vol_header_desc_s::uniqueID"]
6539        [::std::mem::offset_of!(logical_vol_header_desc_s, uniqueID) - 0usize];
6540    ["Offset of field: logical_vol_header_desc_s::reserved"]
6541        [::std::mem::offset_of!(logical_vol_header_desc_s, reserved) - 8usize];
6542};
6543pub type logical_vol_header_desc_t = logical_vol_header_desc_s;
6544#[repr(C, packed)]
6545pub struct pathComponent {
6546    pub component_type: udf_Uint8_t,
6547    pub lengthComponent_id: udf_Uint8_t,
6548    pub componentFileVersionNum: udf_Uint16_t,
6549    pub component_id: __IncompleteArrayField<udf_dstring>,
6550}
6551#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6552const _: () = {
6553    ["Size of pathComponent"][::std::mem::size_of::<pathComponent>() - 4usize];
6554    ["Alignment of pathComponent"][::std::mem::align_of::<pathComponent>() - 1usize];
6555    ["Offset of field: pathComponent::component_type"]
6556        [::std::mem::offset_of!(pathComponent, component_type) - 0usize];
6557    ["Offset of field: pathComponent::lengthComponent_id"]
6558        [::std::mem::offset_of!(pathComponent, lengthComponent_id) - 1usize];
6559    ["Offset of field: pathComponent::componentFileVersionNum"]
6560        [::std::mem::offset_of!(pathComponent, componentFileVersionNum) - 2usize];
6561    ["Offset of field: pathComponent::component_id"]
6562        [::std::mem::offset_of!(pathComponent, component_id) - 4usize];
6563};
6564#[repr(C, packed)]
6565pub struct extended_file_entry {
6566    pub tag: udf_tag_t,
6567    pub icb_tag: udf_icbtag_t,
6568    pub uid: udf_Uint32_t,
6569    pub gid: udf_Uint32_t,
6570    pub permissions: udf_Uint32_t,
6571    pub link_count: udf_Uint16_t,
6572    pub rec_format: udf_Uint8_t,
6573    pub rec_display_attr: udf_Uint8_t,
6574    pub record_len: udf_Uint32_t,
6575    pub info_len: udf_Uint64_t,
6576    pub object_size: udf_Uint64_t,
6577    pub logblks_recorded: udf_Uint64_t,
6578    pub access_time: udf_timestamp_t,
6579    pub modification_time: udf_timestamp_t,
6580    pub create_time: udf_timestamp_t,
6581    pub attribute_time: udf_timestamp_t,
6582    pub checkpoint: udf_Uint32_t,
6583    pub reserved: udf_Uint32_t,
6584    pub ext_attr_ICB: udf_long_ad_t,
6585    pub stream_directory_ICB: udf_long_ad_t,
6586    pub imp_id: udf_regid_t,
6587    pub unique_ID: udf_Uint64_t,
6588    pub length_extended_attr: udf_Uint32_t,
6589    pub length_alloc_descs: udf_Uint32_t,
6590    pub u: extended_file_entry__bindgen_ty_1,
6591}
6592#[repr(C)]
6593pub struct extended_file_entry__bindgen_ty_1 {
6594    pub ext_attr: __BindgenUnionField<[udf_Uint8_t; 0usize]>,
6595    pub alloc_descs: __BindgenUnionField<[udf_Uint8_t; 0usize]>,
6596    pub pad_to_one_block: __BindgenUnionField<[udf_Uint8_t; 1832usize]>,
6597    pub bindgen_union_field: [u8; 1832usize],
6598}
6599#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6600const _: () = {
6601    ["Size of extended_file_entry__bindgen_ty_1"]
6602        [::std::mem::size_of::<extended_file_entry__bindgen_ty_1>() - 1832usize];
6603    ["Alignment of extended_file_entry__bindgen_ty_1"]
6604        [::std::mem::align_of::<extended_file_entry__bindgen_ty_1>() - 1usize];
6605    ["Offset of field: extended_file_entry__bindgen_ty_1::ext_attr"]
6606        [::std::mem::offset_of!(extended_file_entry__bindgen_ty_1, ext_attr) - 0usize];
6607    ["Offset of field: extended_file_entry__bindgen_ty_1::alloc_descs"]
6608        [::std::mem::offset_of!(extended_file_entry__bindgen_ty_1, alloc_descs) - 0usize];
6609    ["Offset of field: extended_file_entry__bindgen_ty_1::pad_to_one_block"]
6610        [::std::mem::offset_of!(extended_file_entry__bindgen_ty_1, pad_to_one_block) - 0usize];
6611};
6612#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6613const _: () = {
6614    ["Size of extended_file_entry"][::std::mem::size_of::<extended_file_entry>() - 2048usize];
6615    ["Alignment of extended_file_entry"][::std::mem::align_of::<extended_file_entry>() - 1usize];
6616    ["Offset of field: extended_file_entry::tag"]
6617        [::std::mem::offset_of!(extended_file_entry, tag) - 0usize];
6618    ["Offset of field: extended_file_entry::icb_tag"]
6619        [::std::mem::offset_of!(extended_file_entry, icb_tag) - 16usize];
6620    ["Offset of field: extended_file_entry::uid"]
6621        [::std::mem::offset_of!(extended_file_entry, uid) - 36usize];
6622    ["Offset of field: extended_file_entry::gid"]
6623        [::std::mem::offset_of!(extended_file_entry, gid) - 40usize];
6624    ["Offset of field: extended_file_entry::permissions"]
6625        [::std::mem::offset_of!(extended_file_entry, permissions) - 44usize];
6626    ["Offset of field: extended_file_entry::link_count"]
6627        [::std::mem::offset_of!(extended_file_entry, link_count) - 48usize];
6628    ["Offset of field: extended_file_entry::rec_format"]
6629        [::std::mem::offset_of!(extended_file_entry, rec_format) - 50usize];
6630    ["Offset of field: extended_file_entry::rec_display_attr"]
6631        [::std::mem::offset_of!(extended_file_entry, rec_display_attr) - 51usize];
6632    ["Offset of field: extended_file_entry::record_len"]
6633        [::std::mem::offset_of!(extended_file_entry, record_len) - 52usize];
6634    ["Offset of field: extended_file_entry::info_len"]
6635        [::std::mem::offset_of!(extended_file_entry, info_len) - 56usize];
6636    ["Offset of field: extended_file_entry::object_size"]
6637        [::std::mem::offset_of!(extended_file_entry, object_size) - 64usize];
6638    ["Offset of field: extended_file_entry::logblks_recorded"]
6639        [::std::mem::offset_of!(extended_file_entry, logblks_recorded) - 72usize];
6640    ["Offset of field: extended_file_entry::access_time"]
6641        [::std::mem::offset_of!(extended_file_entry, access_time) - 80usize];
6642    ["Offset of field: extended_file_entry::modification_time"]
6643        [::std::mem::offset_of!(extended_file_entry, modification_time) - 92usize];
6644    ["Offset of field: extended_file_entry::create_time"]
6645        [::std::mem::offset_of!(extended_file_entry, create_time) - 104usize];
6646    ["Offset of field: extended_file_entry::attribute_time"]
6647        [::std::mem::offset_of!(extended_file_entry, attribute_time) - 116usize];
6648    ["Offset of field: extended_file_entry::checkpoint"]
6649        [::std::mem::offset_of!(extended_file_entry, checkpoint) - 128usize];
6650    ["Offset of field: extended_file_entry::reserved"]
6651        [::std::mem::offset_of!(extended_file_entry, reserved) - 132usize];
6652    ["Offset of field: extended_file_entry::ext_attr_ICB"]
6653        [::std::mem::offset_of!(extended_file_entry, ext_attr_ICB) - 136usize];
6654    ["Offset of field: extended_file_entry::stream_directory_ICB"]
6655        [::std::mem::offset_of!(extended_file_entry, stream_directory_ICB) - 152usize];
6656    ["Offset of field: extended_file_entry::imp_id"]
6657        [::std::mem::offset_of!(extended_file_entry, imp_id) - 168usize];
6658    ["Offset of field: extended_file_entry::unique_ID"]
6659        [::std::mem::offset_of!(extended_file_entry, unique_ID) - 200usize];
6660    ["Offset of field: extended_file_entry::length_extended_attr"]
6661        [::std::mem::offset_of!(extended_file_entry, length_extended_attr) - 208usize];
6662    ["Offset of field: extended_file_entry::length_alloc_descs"]
6663        [::std::mem::offset_of!(extended_file_entry, length_alloc_descs) - 212usize];
6664    ["Offset of field: extended_file_entry::u"]
6665        [::std::mem::offset_of!(extended_file_entry, u) - 216usize];
6666};
6667unsafe extern "C" {
6668    pub static mut debug_tagid: tag_id_t;
6669}
6670unsafe extern "C" {
6671    pub static mut debug_file_characteristics: file_characteristics_t;
6672}
6673unsafe extern "C" {
6674    pub static mut debug_icbtag_file_type_enum: icbtag_file_type_enum_t;
6675}
6676unsafe extern "C" {
6677    pub static mut debug_flag_enum: icbtag_flag_enum_t;
6678}
6679unsafe extern "C" {
6680    pub static mut debug_ecma_167_enum1: ecma_167_enum1_t;
6681}
6682unsafe extern "C" {
6683    pub static mut debug_ecma_167_timezone_enum: ecma_167_timezone_enum_t;
6684}
6685pub type partition_num_t = u16;
6686#[repr(C)]
6687#[derive(Debug, Copy, Clone)]
6688pub struct udf_s {
6689    _unused: [u8; 0],
6690}
6691pub type udf_t = udf_s;
6692#[repr(C)]
6693#[derive(Debug, Copy, Clone)]
6694pub struct udf_file_s {
6695    _unused: [u8; 0],
6696}
6697pub type udf_file_t = udf_file_s;
6698#[repr(C)]
6699pub struct udf_dirent_s {
6700    pub psz_name: *mut ::std::os::raw::c_char,
6701    pub b_dir: ::std::os::raw::c_uchar,
6702    pub b_parent: ::std::os::raw::c_uchar,
6703    pub p_udf: *mut udf_t,
6704    pub i_part_start: u32,
6705    pub i_loc: u32,
6706    pub i_loc_end: u32,
6707    pub dir_left: u64,
6708    pub sector: *mut u8,
6709    pub fid: *mut udf_fileid_desc_t,
6710    pub fe: udf_file_entry_t,
6711}
6712#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6713const _: () = {
6714    ["Size of udf_dirent_s"][::std::mem::size_of::<udf_dirent_s>() - 2112usize];
6715    ["Alignment of udf_dirent_s"][::std::mem::align_of::<udf_dirent_s>() - 8usize];
6716    ["Offset of field: udf_dirent_s::psz_name"]
6717        [::std::mem::offset_of!(udf_dirent_s, psz_name) - 0usize];
6718    ["Offset of field: udf_dirent_s::b_dir"][::std::mem::offset_of!(udf_dirent_s, b_dir) - 8usize];
6719    ["Offset of field: udf_dirent_s::b_parent"]
6720        [::std::mem::offset_of!(udf_dirent_s, b_parent) - 9usize];
6721    ["Offset of field: udf_dirent_s::p_udf"][::std::mem::offset_of!(udf_dirent_s, p_udf) - 16usize];
6722    ["Offset of field: udf_dirent_s::i_part_start"]
6723        [::std::mem::offset_of!(udf_dirent_s, i_part_start) - 24usize];
6724    ["Offset of field: udf_dirent_s::i_loc"][::std::mem::offset_of!(udf_dirent_s, i_loc) - 28usize];
6725    ["Offset of field: udf_dirent_s::i_loc_end"]
6726        [::std::mem::offset_of!(udf_dirent_s, i_loc_end) - 32usize];
6727    ["Offset of field: udf_dirent_s::dir_left"]
6728        [::std::mem::offset_of!(udf_dirent_s, dir_left) - 40usize];
6729    ["Offset of field: udf_dirent_s::sector"]
6730        [::std::mem::offset_of!(udf_dirent_s, sector) - 48usize];
6731    ["Offset of field: udf_dirent_s::fid"][::std::mem::offset_of!(udf_dirent_s, fid) - 56usize];
6732    ["Offset of field: udf_dirent_s::fe"][::std::mem::offset_of!(udf_dirent_s, fe) - 64usize];
6733};
6734pub type udf_dirent_t = udf_dirent_s;
6735pub const udf_enum1_t_UDF_BLOCKSIZE: udf_enum1_t = 2048;
6736pub type udf_enum1_t = ::std::os::raw::c_uint;
6737unsafe extern "C" {
6738    pub static mut debug_udf_enum1: udf_enum1_t;
6739}
6740unsafe extern "C" {
6741    pub fn udf_close(p_udf: *mut udf_t) -> ::std::os::raw::c_uchar;
6742}
6743unsafe extern "C" {
6744    pub fn udf_read_sectors(
6745        p_udf: *const udf_t,
6746        ptr: *mut ::std::os::raw::c_void,
6747        i_start: lsn_t,
6748        i_blocks: ::std::os::raw::c_long,
6749    ) -> driver_return_code_t;
6750}
6751unsafe extern "C" {
6752    pub fn udf_open(psz_path: *const ::std::os::raw::c_char) -> *mut udf_t;
6753}
6754unsafe extern "C" {
6755    pub fn udf_get_part_number(p_udf: *const udf_t) -> i16;
6756}
6757unsafe extern "C" {
6758    pub fn udf_get_root(
6759        p_udf: *mut udf_t,
6760        b_any_partition: ::std::os::raw::c_uchar,
6761        i_partition: partition_num_t,
6762    ) -> *mut udf_dirent_t;
6763}
6764unsafe extern "C" {
6765    pub fn udf_get_volume_id(
6766        p_udf: *mut udf_t,
6767        psz_volid: *mut ::std::os::raw::c_char,
6768        i_volid: ::std::os::raw::c_uint,
6769    ) -> ::std::os::raw::c_int;
6770}
6771unsafe extern "C" {
6772    pub fn udf_get_volumeset_id(
6773        p_udf: *mut udf_t,
6774        volsetid: *mut u8,
6775        i_volsetid: ::std::os::raw::c_uint,
6776    ) -> ::std::os::raw::c_int;
6777}
6778unsafe extern "C" {
6779    pub fn udf_get_logical_volume_id(
6780        p_udf: *mut udf_t,
6781        psz_logvolid: *mut ::std::os::raw::c_char,
6782        i_logvolid: ::std::os::raw::c_uint,
6783    ) -> ::std::os::raw::c_int;
6784}
6785unsafe extern "C" {
6786    pub fn udf_fopen(
6787        p_udf_root: *mut udf_dirent_t,
6788        psz_name: *const ::std::os::raw::c_char,
6789    ) -> *mut udf_dirent_t;
6790}
6791unsafe extern "C" {
6792    pub fn udf_mode_string(
6793        i_mode: mode_t,
6794        psz_str: *mut ::std::os::raw::c_char,
6795    ) -> *mut ::std::os::raw::c_char;
6796}
6797unsafe extern "C" {
6798    pub fn udf_get_lba(
6799        p_udf_fe: *const udf_file_entry_t,
6800        start: *mut u32,
6801        end: *mut u32,
6802    ) -> ::std::os::raw::c_uchar;
6803}
6804unsafe extern "C" {
6805    pub fn udf_get_access_time(p_udf_dirent: *const udf_dirent_t) -> time_t;
6806}
6807unsafe extern "C" {
6808    pub fn udf_get_attribute_time(p_udf_dirent: *const udf_dirent_t) -> time_t;
6809}
6810unsafe extern "C" {
6811    pub fn udf_get_modification_time(p_udf_dirent: *const udf_dirent_t) -> time_t;
6812}
6813unsafe extern "C" {
6814    pub fn udf_get_access_timestamp(p_udf_dirent: *const udf_dirent_t) -> *mut udf_timestamp_t;
6815}
6816unsafe extern "C" {
6817    pub fn udf_get_modification_timestamp(
6818        p_udf_dirent: *const udf_dirent_t,
6819    ) -> *mut udf_timestamp_t;
6820}
6821unsafe extern "C" {
6822    pub fn udf_get_attr_timestamp(p_udf_dirent: *const udf_dirent_t) -> *mut udf_timestamp_t;
6823}
6824unsafe extern "C" {
6825    pub fn udf_stamp_to_time(
6826        dest: *mut time_t,
6827        dest_usec: *mut ::std::os::raw::c_long,
6828        src: udf_timestamp_t,
6829    ) -> *mut time_t;
6830}
6831unsafe extern "C" {
6832    pub fn udf_timespec_to_stamp(ts: timespec, dest: *mut udf_timestamp_t) -> *mut udf_timestamp_t;
6833}
6834unsafe extern "C" {
6835    pub fn udf_get_fileid_descriptor(
6836        p_udf_dirent: *const udf_dirent_t,
6837        p_udf_fid: *mut udf_fileid_desc_t,
6838    ) -> ::std::os::raw::c_uchar;
6839}
6840unsafe extern "C" {
6841    pub fn udf_get_filename(p_udf_dirent: *const udf_dirent_t) -> *const ::std::os::raw::c_char;
6842}
6843unsafe extern "C" {
6844    pub fn udf_get_file_entry(
6845        p_udf_dirent: *const udf_dirent_t,
6846        p_udf_fe: *mut udf_file_entry_t,
6847    ) -> ::std::os::raw::c_uchar;
6848}
6849unsafe extern "C" {
6850    pub fn udf_get_link_count(p_udf_dirent: *const udf_dirent_t) -> u16;
6851}
6852unsafe extern "C" {
6853    pub fn udf_get_file_length(p_udf_dirent: *const udf_dirent_t) -> u64;
6854}
6855unsafe extern "C" {
6856    pub fn udf_get_posix_filemode(p_udf_dirent: *const udf_dirent_t) -> mode_t;
6857}
6858unsafe extern "C" {
6859    pub fn udf_opendir(p_udf_dirent: *const udf_dirent_t) -> *mut udf_dirent_t;
6860}
6861unsafe extern "C" {
6862    pub fn udf_read_block(
6863        p_udf_dirent: *const udf_dirent_t,
6864        buf: *mut ::std::os::raw::c_void,
6865        count: usize,
6866    ) -> isize;
6867}
6868unsafe extern "C" {
6869    pub fn udf_readdir(p_udf_dirent: *mut udf_dirent_t) -> *mut udf_dirent_t;
6870}
6871unsafe extern "C" {
6872    pub fn udf_dirent_free(p_udf_dirent: *mut udf_dirent_t) -> ::std::os::raw::c_uchar;
6873}
6874unsafe extern "C" {
6875    pub fn udf_is_dir(p_udf_dirent: *const udf_dirent_t) -> ::std::os::raw::c_uchar;
6876}
6877#[repr(C)]
6878#[derive(Debug, Copy, Clone)]
6879pub struct cdrom_paranoia_s {
6880    _unused: [u8; 0],
6881}
6882pub type cdrom_paranoia_t = cdrom_paranoia_s;
6883pub type cdrom_drive_t = cdrom_drive_s;
6884pub const paranoia_cdda_enums_t_CDDA_MESSAGE_FORGETIT: paranoia_cdda_enums_t = 0;
6885pub const paranoia_cdda_enums_t_CDDA_MESSAGE_PRINTIT: paranoia_cdda_enums_t = 1;
6886pub const paranoia_cdda_enums_t_CDDA_MESSAGE_LOGIT: paranoia_cdda_enums_t = 2;
6887pub const paranoia_cdda_enums_t_CD_FRAMESAMPLES: paranoia_cdda_enums_t = 588;
6888pub const paranoia_cdda_enums_t_MAXTRK: paranoia_cdda_enums_t = 100;
6889pub type paranoia_cdda_enums_t = ::std::os::raw::c_uint;
6890#[repr(C)]
6891#[derive(Debug, Copy, Clone)]
6892pub struct TOC_s {
6893    pub bTrack: ::std::os::raw::c_uchar,
6894    pub dwStartSector: i32,
6895}
6896#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6897const _: () = {
6898    ["Size of TOC_s"][::std::mem::size_of::<TOC_s>() - 8usize];
6899    ["Alignment of TOC_s"][::std::mem::align_of::<TOC_s>() - 4usize];
6900    ["Offset of field: TOC_s::bTrack"][::std::mem::offset_of!(TOC_s, bTrack) - 0usize];
6901    ["Offset of field: TOC_s::dwStartSector"]
6902        [::std::mem::offset_of!(TOC_s, dwStartSector) - 4usize];
6903};
6904pub type TOC_t = TOC_s;
6905#[repr(C)]
6906#[derive(Debug, Copy, Clone)]
6907pub struct cdrom_drive_s {
6908    pub p_cdio: *mut CdIo_t,
6909    pub opened: ::std::os::raw::c_int,
6910    pub cdda_device_name: *mut ::std::os::raw::c_char,
6911    pub drive_model: *mut ::std::os::raw::c_char,
6912    pub drive_type: ::std::os::raw::c_int,
6913    pub bigendianp: ::std::os::raw::c_int,
6914    pub nsectors: ::std::os::raw::c_int,
6915    pub cd_extra: ::std::os::raw::c_int,
6916    pub b_swap_bytes: ::std::os::raw::c_uchar,
6917    pub tracks: track_t,
6918    pub disc_toc: [TOC_t; 100usize],
6919    pub audio_first_sector: lsn_t,
6920    pub audio_last_sector: lsn_t,
6921    pub errordest: ::std::os::raw::c_int,
6922    pub messagedest: ::std::os::raw::c_int,
6923    pub errorbuf: *mut ::std::os::raw::c_char,
6924    pub messagebuf: *mut ::std::os::raw::c_char,
6925    pub enable_cdda: ::std::option::Option<
6926        unsafe extern "C" fn(
6927            d: *mut cdrom_drive_t,
6928            onoff: ::std::os::raw::c_int,
6929        ) -> ::std::os::raw::c_int,
6930    >,
6931    pub read_toc:
6932        ::std::option::Option<unsafe extern "C" fn(d: *mut cdrom_drive_t) -> ::std::os::raw::c_int>,
6933    pub read_audio: ::std::option::Option<
6934        unsafe extern "C" fn(
6935            d: *mut cdrom_drive_t,
6936            p: *mut ::std::os::raw::c_void,
6937            begin: lsn_t,
6938            sectors: ::std::os::raw::c_long,
6939        ) -> ::std::os::raw::c_long,
6940    >,
6941    pub set_speed: ::std::option::Option<
6942        unsafe extern "C" fn(
6943            d: *mut cdrom_drive_t,
6944            speed: ::std::os::raw::c_int,
6945        ) -> ::std::os::raw::c_int,
6946    >,
6947    pub error_retry: ::std::os::raw::c_int,
6948    pub report_all: ::std::os::raw::c_int,
6949    pub is_atapi: ::std::os::raw::c_int,
6950    pub is_mmc: ::std::os::raw::c_int,
6951    pub last_milliseconds: ::std::os::raw::c_int,
6952    pub i_test_flags: ::std::os::raw::c_int,
6953}
6954#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6955const _: () = {
6956    ["Size of cdrom_drive_s"][::std::mem::size_of::<cdrom_drive_s>() - 944usize];
6957    ["Alignment of cdrom_drive_s"][::std::mem::align_of::<cdrom_drive_s>() - 8usize];
6958    ["Offset of field: cdrom_drive_s::p_cdio"]
6959        [::std::mem::offset_of!(cdrom_drive_s, p_cdio) - 0usize];
6960    ["Offset of field: cdrom_drive_s::opened"]
6961        [::std::mem::offset_of!(cdrom_drive_s, opened) - 8usize];
6962    ["Offset of field: cdrom_drive_s::cdda_device_name"]
6963        [::std::mem::offset_of!(cdrom_drive_s, cdda_device_name) - 16usize];
6964    ["Offset of field: cdrom_drive_s::drive_model"]
6965        [::std::mem::offset_of!(cdrom_drive_s, drive_model) - 24usize];
6966    ["Offset of field: cdrom_drive_s::drive_type"]
6967        [::std::mem::offset_of!(cdrom_drive_s, drive_type) - 32usize];
6968    ["Offset of field: cdrom_drive_s::bigendianp"]
6969        [::std::mem::offset_of!(cdrom_drive_s, bigendianp) - 36usize];
6970    ["Offset of field: cdrom_drive_s::nsectors"]
6971        [::std::mem::offset_of!(cdrom_drive_s, nsectors) - 40usize];
6972    ["Offset of field: cdrom_drive_s::cd_extra"]
6973        [::std::mem::offset_of!(cdrom_drive_s, cd_extra) - 44usize];
6974    ["Offset of field: cdrom_drive_s::b_swap_bytes"]
6975        [::std::mem::offset_of!(cdrom_drive_s, b_swap_bytes) - 48usize];
6976    ["Offset of field: cdrom_drive_s::tracks"]
6977        [::std::mem::offset_of!(cdrom_drive_s, tracks) - 49usize];
6978    ["Offset of field: cdrom_drive_s::disc_toc"]
6979        [::std::mem::offset_of!(cdrom_drive_s, disc_toc) - 52usize];
6980    ["Offset of field: cdrom_drive_s::audio_first_sector"]
6981        [::std::mem::offset_of!(cdrom_drive_s, audio_first_sector) - 852usize];
6982    ["Offset of field: cdrom_drive_s::audio_last_sector"]
6983        [::std::mem::offset_of!(cdrom_drive_s, audio_last_sector) - 856usize];
6984    ["Offset of field: cdrom_drive_s::errordest"]
6985        [::std::mem::offset_of!(cdrom_drive_s, errordest) - 860usize];
6986    ["Offset of field: cdrom_drive_s::messagedest"]
6987        [::std::mem::offset_of!(cdrom_drive_s, messagedest) - 864usize];
6988    ["Offset of field: cdrom_drive_s::errorbuf"]
6989        [::std::mem::offset_of!(cdrom_drive_s, errorbuf) - 872usize];
6990    ["Offset of field: cdrom_drive_s::messagebuf"]
6991        [::std::mem::offset_of!(cdrom_drive_s, messagebuf) - 880usize];
6992    ["Offset of field: cdrom_drive_s::enable_cdda"]
6993        [::std::mem::offset_of!(cdrom_drive_s, enable_cdda) - 888usize];
6994    ["Offset of field: cdrom_drive_s::read_toc"]
6995        [::std::mem::offset_of!(cdrom_drive_s, read_toc) - 896usize];
6996    ["Offset of field: cdrom_drive_s::read_audio"]
6997        [::std::mem::offset_of!(cdrom_drive_s, read_audio) - 904usize];
6998    ["Offset of field: cdrom_drive_s::set_speed"]
6999        [::std::mem::offset_of!(cdrom_drive_s, set_speed) - 912usize];
7000    ["Offset of field: cdrom_drive_s::error_retry"]
7001        [::std::mem::offset_of!(cdrom_drive_s, error_retry) - 920usize];
7002    ["Offset of field: cdrom_drive_s::report_all"]
7003        [::std::mem::offset_of!(cdrom_drive_s, report_all) - 924usize];
7004    ["Offset of field: cdrom_drive_s::is_atapi"]
7005        [::std::mem::offset_of!(cdrom_drive_s, is_atapi) - 928usize];
7006    ["Offset of field: cdrom_drive_s::is_mmc"]
7007        [::std::mem::offset_of!(cdrom_drive_s, is_mmc) - 932usize];
7008    ["Offset of field: cdrom_drive_s::last_milliseconds"]
7009        [::std::mem::offset_of!(cdrom_drive_s, last_milliseconds) - 936usize];
7010    ["Offset of field: cdrom_drive_s::i_test_flags"]
7011        [::std::mem::offset_of!(cdrom_drive_s, i_test_flags) - 940usize];
7012};
7013pub const paranoia_jitter_t_CDDA_TEST_JITTER_SMALL: paranoia_jitter_t = 1;
7014pub const paranoia_jitter_t_CDDA_TEST_JITTER_LARGE: paranoia_jitter_t = 2;
7015pub const paranoia_jitter_t_CDDA_TEST_JITTER_MASSIVE: paranoia_jitter_t = 3;
7016pub const paranoia_jitter_t_CDDA_TEST_FRAG_SMALL: paranoia_jitter_t = 8;
7017pub const paranoia_jitter_t_CDDA_TEST_FRAG_LARGE: paranoia_jitter_t = 16;
7018pub const paranoia_jitter_t_CDDA_TEST_FRAG_MASSIVE: paranoia_jitter_t = 24;
7019pub const paranoia_jitter_t_CDDA_TEST_UNDERRUN: paranoia_jitter_t = 64;
7020pub type paranoia_jitter_t = ::std::os::raw::c_uint;
7021unsafe extern "C" {
7022    pub fn cdio_cddap_find_a_cdrom(
7023        messagedest: ::std::os::raw::c_int,
7024        ppsz_message: *mut *mut ::std::os::raw::c_char,
7025    ) -> *mut cdrom_drive_t;
7026}
7027unsafe extern "C" {
7028    pub fn cdio_cddap_identify(
7029        psz_device: *const ::std::os::raw::c_char,
7030        messagedest: ::std::os::raw::c_int,
7031        ppsz_message: *mut *mut ::std::os::raw::c_char,
7032    ) -> *mut cdrom_drive_t;
7033}
7034unsafe extern "C" {
7035    pub fn cdio_cddap_identify_cdio(
7036        p_cdio: *mut CdIo_t,
7037        messagedest: ::std::os::raw::c_int,
7038        ppsz_messages: *mut *mut ::std::os::raw::c_char,
7039    ) -> *mut cdrom_drive_t;
7040}
7041unsafe extern "C" {
7042    pub fn cdio_cddap_version() -> *const ::std::os::raw::c_char;
7043}
7044unsafe extern "C" {
7045    pub fn cdio_cddap_messages(d: *mut cdrom_drive_t) -> *mut ::std::os::raw::c_char;
7046}
7047unsafe extern "C" {
7048    pub fn cdio_cddap_errors(d: *mut cdrom_drive_t) -> *mut ::std::os::raw::c_char;
7049}
7050unsafe extern "C" {
7051    pub fn cdio_cddap_free_messages(psz_messages: *mut ::std::os::raw::c_char);
7052}
7053unsafe extern "C" {
7054    pub fn cdio_cddap_speed_set(
7055        d: *mut cdrom_drive_t,
7056        speed: ::std::os::raw::c_int,
7057    ) -> ::std::os::raw::c_int;
7058}
7059unsafe extern "C" {
7060    pub fn cdio_cddap_verbose_set(
7061        d: *mut cdrom_drive_t,
7062        err_action: ::std::os::raw::c_int,
7063        mes_action: ::std::os::raw::c_int,
7064    );
7065}
7066unsafe extern "C" {
7067    pub fn cdio_cddap_close_no_free_cdio(d: *mut cdrom_drive_t) -> ::std::os::raw::c_uchar;
7068}
7069unsafe extern "C" {
7070    pub fn cdio_cddap_close(d: *mut cdrom_drive_t) -> ::std::os::raw::c_int;
7071}
7072unsafe extern "C" {
7073    pub fn cdio_cddap_open(d: *mut cdrom_drive_t) -> ::std::os::raw::c_int;
7074}
7075unsafe extern "C" {
7076    pub fn cdio_cddap_read(
7077        d: *mut cdrom_drive_t,
7078        p_buffer: *mut ::std::os::raw::c_void,
7079        beginsector: lsn_t,
7080        sectors: ::std::os::raw::c_long,
7081    ) -> ::std::os::raw::c_long;
7082}
7083unsafe extern "C" {
7084    pub fn cdio_cddap_read_timed(
7085        d: *mut cdrom_drive_t,
7086        p_buffer: *mut ::std::os::raw::c_void,
7087        beginsector: lsn_t,
7088        sectors: ::std::os::raw::c_long,
7089        milliseconds: *mut ::std::os::raw::c_int,
7090    ) -> ::std::os::raw::c_long;
7091}
7092unsafe extern "C" {
7093    pub fn cdio_cddap_track_firstsector(d: *mut cdrom_drive_t, i_track: track_t) -> lsn_t;
7094}
7095unsafe extern "C" {
7096    pub fn cdio_cddap_track_lastsector(d: *mut cdrom_drive_t, i_track: track_t) -> lsn_t;
7097}
7098unsafe extern "C" {
7099    pub fn cdio_cddap_tracks(d: *mut cdrom_drive_t) -> track_t;
7100}
7101unsafe extern "C" {
7102    pub fn cdio_cddap_sector_gettrack(d: *mut cdrom_drive_t, lsn: lsn_t) -> ::std::os::raw::c_int;
7103}
7104unsafe extern "C" {
7105    pub fn cdio_cddap_track_channels(
7106        d: *mut cdrom_drive_t,
7107        i_track: track_t,
7108    ) -> ::std::os::raw::c_int;
7109}
7110unsafe extern "C" {
7111    pub fn cdio_cddap_track_audiop(
7112        d: *mut cdrom_drive_t,
7113        i_track: track_t,
7114    ) -> ::std::os::raw::c_int;
7115}
7116unsafe extern "C" {
7117    pub fn cdio_cddap_track_copyp(d: *mut cdrom_drive_t, i_track: track_t)
7118    -> ::std::os::raw::c_int;
7119}
7120unsafe extern "C" {
7121    pub fn cdio_cddap_track_preemp(
7122        d: *mut cdrom_drive_t,
7123        i_track: track_t,
7124    ) -> ::std::os::raw::c_int;
7125}
7126unsafe extern "C" {
7127    pub fn cdio_cddap_disc_firstsector(d: *mut cdrom_drive_t) -> lsn_t;
7128}
7129unsafe extern "C" {
7130    pub fn cdio_cddap_disc_lastsector(d: *mut cdrom_drive_t) -> lsn_t;
7131}
7132unsafe extern "C" {
7133    pub fn data_bigendianp(d: *mut cdrom_drive_t) -> ::std::os::raw::c_int;
7134}
7135pub const transport_error_t_TR_OK: transport_error_t = 0;
7136pub const transport_error_t_TR_EWRITE: transport_error_t = 1;
7137pub const transport_error_t_TR_EREAD: transport_error_t = 2;
7138pub const transport_error_t_TR_UNDERRUN: transport_error_t = 3;
7139pub const transport_error_t_TR_OVERRUN: transport_error_t = 4;
7140pub const transport_error_t_TR_ILLEGAL: transport_error_t = 5;
7141pub const transport_error_t_TR_MEDIUM: transport_error_t = 6;
7142pub const transport_error_t_TR_BUSY: transport_error_t = 7;
7143pub const transport_error_t_TR_NOTREADY: transport_error_t = 8;
7144pub const transport_error_t_TR_FAULT: transport_error_t = 9;
7145pub const transport_error_t_TR_UNKNOWN: transport_error_t = 10;
7146pub const transport_error_t_TR_STREAMING: transport_error_t = 11;
7147pub type transport_error_t = ::std::os::raw::c_uint;
7148unsafe extern "C" {
7149    pub static mut debug_paranoia_jitter: paranoia_jitter_t;
7150}
7151unsafe extern "C" {
7152    pub static mut debug_paranoia_cdda_enums: paranoia_cdda_enums_t;
7153}
7154pub const paranoia_mode_t_PARANOIA_MODE_DISABLE: paranoia_mode_t = 0;
7155pub const paranoia_mode_t_PARANOIA_MODE_VERIFY: paranoia_mode_t = 1;
7156pub const paranoia_mode_t_PARANOIA_MODE_FRAGMENT: paranoia_mode_t = 2;
7157pub const paranoia_mode_t_PARANOIA_MODE_OVERLAP: paranoia_mode_t = 4;
7158pub const paranoia_mode_t_PARANOIA_MODE_SCRATCH: paranoia_mode_t = 8;
7159pub const paranoia_mode_t_PARANOIA_MODE_REPAIR: paranoia_mode_t = 16;
7160pub const paranoia_mode_t_PARANOIA_MODE_NEVERSKIP: paranoia_mode_t = 32;
7161pub const paranoia_mode_t_PARANOIA_MODE_FULL: paranoia_mode_t = 255;
7162pub type paranoia_mode_t = ::std::os::raw::c_uint;
7163pub const paranoia_cb_mode_t_PARANOIA_CB_READ: paranoia_cb_mode_t = 0;
7164pub const paranoia_cb_mode_t_PARANOIA_CB_VERIFY: paranoia_cb_mode_t = 1;
7165pub const paranoia_cb_mode_t_PARANOIA_CB_FIXUP_EDGE: paranoia_cb_mode_t = 2;
7166pub const paranoia_cb_mode_t_PARANOIA_CB_FIXUP_ATOM: paranoia_cb_mode_t = 3;
7167pub const paranoia_cb_mode_t_PARANOIA_CB_SCRATCH: paranoia_cb_mode_t = 4;
7168pub const paranoia_cb_mode_t_PARANOIA_CB_REPAIR: paranoia_cb_mode_t = 5;
7169pub const paranoia_cb_mode_t_PARANOIA_CB_SKIP: paranoia_cb_mode_t = 6;
7170pub const paranoia_cb_mode_t_PARANOIA_CB_DRIFT: paranoia_cb_mode_t = 7;
7171pub const paranoia_cb_mode_t_PARANOIA_CB_BACKOFF: paranoia_cb_mode_t = 8;
7172pub const paranoia_cb_mode_t_PARANOIA_CB_OVERLAP: paranoia_cb_mode_t = 9;
7173pub const paranoia_cb_mode_t_PARANOIA_CB_FIXUP_DROPPED: paranoia_cb_mode_t = 10;
7174pub const paranoia_cb_mode_t_PARANOIA_CB_FIXUP_DUPED: paranoia_cb_mode_t = 11;
7175pub const paranoia_cb_mode_t_PARANOIA_CB_READERR: paranoia_cb_mode_t = 12;
7176pub const paranoia_cb_mode_t_PARANOIA_CB_CACHEERR: paranoia_cb_mode_t = 13;
7177pub const paranoia_cb_mode_t_PARANOIA_CB_WROTE: paranoia_cb_mode_t = 14;
7178pub const paranoia_cb_mode_t_PARANOIA_CB_FINISHED: paranoia_cb_mode_t = 15;
7179pub type paranoia_cb_mode_t = ::std::os::raw::c_uint;
7180unsafe extern "C" {
7181    pub static mut paranoia_cb_mode2str: [*const ::std::os::raw::c_char; 0usize];
7182}
7183unsafe extern "C" {
7184    pub fn cdio_paranoia_version() -> *const ::std::os::raw::c_char;
7185}
7186unsafe extern "C" {
7187    pub fn cdio_paranoia_init(d: *mut cdrom_drive_t) -> *mut cdrom_paranoia_t;
7188}
7189unsafe extern "C" {
7190    pub fn cdio_paranoia_free(p: *mut cdrom_paranoia_t);
7191}
7192unsafe extern "C" {
7193    pub fn cdio_paranoia_modeset(p: *mut cdrom_paranoia_t, mode_flags: ::std::os::raw::c_int);
7194}
7195unsafe extern "C" {
7196    pub fn cdio_paranoia_seek(
7197        p: *mut cdrom_paranoia_t,
7198        seek: i32,
7199        whence: ::std::os::raw::c_int,
7200    ) -> lsn_t;
7201}
7202unsafe extern "C" {
7203    pub fn cdio_paranoia_read(
7204        p: *mut cdrom_paranoia_t,
7205        callback: ::std::option::Option<
7206            unsafe extern "C" fn(arg1: ::std::os::raw::c_long, arg2: paranoia_cb_mode_t),
7207        >,
7208    ) -> *mut i16;
7209}
7210unsafe extern "C" {
7211    pub fn cdio_paranoia_read_limited(
7212        p: *mut cdrom_paranoia_t,
7213        callback: ::std::option::Option<
7214            unsafe extern "C" fn(arg1: ::std::os::raw::c_long, arg2: paranoia_cb_mode_t),
7215        >,
7216        max_retries: ::std::os::raw::c_int,
7217    ) -> *mut i16;
7218}
7219unsafe extern "C" {
7220    pub fn cdio_paranoia_overlapset(p: *mut cdrom_paranoia_t, overlap: ::std::os::raw::c_long);
7221}
7222unsafe extern "C" {
7223    pub fn cdio_paranoia_set_range(
7224        p: *mut cdrom_paranoia_t,
7225        start: ::std::os::raw::c_long,
7226        end: ::std::os::raw::c_long,
7227    );
7228}
7229unsafe extern "C" {
7230    pub fn cdio_paranoia_cachemodel_size(
7231        p: *mut cdrom_paranoia_t,
7232        sectors: ::std::os::raw::c_int,
7233    ) -> ::std::os::raw::c_int;
7234}
7235unsafe extern "C" {
7236    pub static mut debug_paranoia_mode: paranoia_mode_t;
7237}
7238unsafe extern "C" {
7239    pub static mut debug_paranoia_cb_mode: paranoia_cb_mode_t;
7240}