libdc1394_sys/
lib.rs

1/* automatically generated by rust-bindgen */
2
3#![allow(non_upper_case_globals)]
4#![allow(non_camel_case_types)]
5#![allow(non_snake_case)]
6extern crate libusb_sys;
7
8pub const __WORDSIZE: u32 = 64;
9pub const __DARWIN_ONLY_64_BIT_INO_T: u32 = 0;
10pub const __DARWIN_ONLY_VERS_1050: u32 = 0;
11pub const __DARWIN_ONLY_UNIX_CONFORMANCE: u32 = 1;
12pub const __DARWIN_UNIX03: u32 = 1;
13pub const __DARWIN_64_BIT_INO_T: u32 = 0;
14pub const __DARWIN_VERS_1050: u32 = 0;
15pub const __DARWIN_NON_CANCELABLE: u32 = 0;
16pub const __DARWIN_SUF_EXTSN: &'static [u8; 14usize] = b"$DARWIN_EXTSN\0";
17pub const __DARWIN_C_ANSI: u32 = 4096;
18pub const __DARWIN_C_FULL: u32 = 900000;
19pub const __DARWIN_C_LEVEL: u32 = 900000;
20pub const __STDC_WANT_LIB_EXT1__: u32 = 1;
21pub const _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE: u32 = 1;
22pub const _DARWIN_FEATURE_UNIX_CONFORMANCE: u32 = 3;
23pub const __PTHREAD_SIZE__: u32 = 8176;
24pub const __PTHREAD_ATTR_SIZE__: u32 = 56;
25pub const __PTHREAD_MUTEXATTR_SIZE__: u32 = 8;
26pub const __PTHREAD_MUTEX_SIZE__: u32 = 56;
27pub const __PTHREAD_CONDATTR_SIZE__: u32 = 8;
28pub const __PTHREAD_COND_SIZE__: u32 = 40;
29pub const __PTHREAD_ONCE_SIZE__: u32 = 8;
30pub const __PTHREAD_RWLOCK_SIZE__: u32 = 192;
31pub const __PTHREAD_RWLOCKATTR_SIZE__: u32 = 16;
32pub const INT8_MAX: u32 = 127;
33pub const INT16_MAX: u32 = 32767;
34pub const INT32_MAX: u32 = 2147483647;
35pub const INT64_MAX: u64 = 9223372036854775807;
36pub const INT8_MIN: i32 = -128;
37pub const INT16_MIN: i32 = -32768;
38pub const INT32_MIN: i32 = -2147483648;
39pub const INT64_MIN: i64 = -9223372036854775808;
40pub const UINT8_MAX: u32 = 255;
41pub const UINT16_MAX: u32 = 65535;
42pub const UINT32_MAX: u32 = 4294967295;
43pub const UINT64_MAX: i32 = -1;
44pub const INT_LEAST8_MIN: i32 = -128;
45pub const INT_LEAST16_MIN: i32 = -32768;
46pub const INT_LEAST32_MIN: i32 = -2147483648;
47pub const INT_LEAST64_MIN: i64 = -9223372036854775808;
48pub const INT_LEAST8_MAX: u32 = 127;
49pub const INT_LEAST16_MAX: u32 = 32767;
50pub const INT_LEAST32_MAX: u32 = 2147483647;
51pub const INT_LEAST64_MAX: u64 = 9223372036854775807;
52pub const UINT_LEAST8_MAX: u32 = 255;
53pub const UINT_LEAST16_MAX: u32 = 65535;
54pub const UINT_LEAST32_MAX: u32 = 4294967295;
55pub const UINT_LEAST64_MAX: i32 = -1;
56pub const INT_FAST8_MIN: i32 = -128;
57pub const INT_FAST16_MIN: i32 = -32768;
58pub const INT_FAST32_MIN: i32 = -2147483648;
59pub const INT_FAST64_MIN: i64 = -9223372036854775808;
60pub const INT_FAST8_MAX: u32 = 127;
61pub const INT_FAST16_MAX: u32 = 32767;
62pub const INT_FAST32_MAX: u32 = 2147483647;
63pub const INT_FAST64_MAX: u64 = 9223372036854775807;
64pub const UINT_FAST8_MAX: u32 = 255;
65pub const UINT_FAST16_MAX: u32 = 65535;
66pub const UINT_FAST32_MAX: u32 = 4294967295;
67pub const UINT_FAST64_MAX: i32 = -1;
68pub const INTPTR_MIN: i64 = -9223372036854775808;
69pub const INTPTR_MAX: u64 = 9223372036854775807;
70pub const UINTPTR_MAX: i32 = -1;
71pub const INTMAX_MIN: i64 = -9223372036854775808;
72pub const INTMAX_MAX: u64 = 9223372036854775807;
73pub const UINTMAX_MAX: i32 = -1;
74pub const PTRDIFF_MIN: i64 = -9223372036854775808;
75pub const PTRDIFF_MAX: u64 = 9223372036854775807;
76pub const SIZE_MAX: i32 = -1;
77pub const RSIZE_MAX: i32 = -1;
78pub const WINT_MIN: i32 = -2147483648;
79pub const WINT_MAX: u32 = 2147483647;
80pub const SIG_ATOMIC_MIN: i32 = -2147483648;
81pub const SIG_ATOMIC_MAX: u32 = 2147483647;
82pub const __MAC_10_0: u32 = 1000;
83pub const __MAC_10_1: u32 = 1010;
84pub const __MAC_10_2: u32 = 1020;
85pub const __MAC_10_3: u32 = 1030;
86pub const __MAC_10_4: u32 = 1040;
87pub const __MAC_10_5: u32 = 1050;
88pub const __MAC_10_6: u32 = 1060;
89pub const __MAC_10_7: u32 = 1070;
90pub const __MAC_10_8: u32 = 1080;
91pub const __MAC_10_9: u32 = 1090;
92pub const __MAC_10_10: u32 = 101000;
93pub const __MAC_10_10_2: u32 = 101002;
94pub const __MAC_10_10_3: u32 = 101003;
95pub const __MAC_10_11: u32 = 101100;
96pub const __MAC_10_11_2: u32 = 101102;
97pub const __MAC_10_11_3: u32 = 101103;
98pub const __MAC_10_11_4: u32 = 101104;
99pub const __MAC_10_12: u32 = 101200;
100pub const __MAC_10_12_1: u32 = 101201;
101pub const __MAC_10_12_2: u32 = 101202;
102pub const __MAC_10_12_4: u32 = 101204;
103pub const __IPHONE_2_0: u32 = 20000;
104pub const __IPHONE_2_1: u32 = 20100;
105pub const __IPHONE_2_2: u32 = 20200;
106pub const __IPHONE_3_0: u32 = 30000;
107pub const __IPHONE_3_1: u32 = 30100;
108pub const __IPHONE_3_2: u32 = 30200;
109pub const __IPHONE_4_0: u32 = 40000;
110pub const __IPHONE_4_1: u32 = 40100;
111pub const __IPHONE_4_2: u32 = 40200;
112pub const __IPHONE_4_3: u32 = 40300;
113pub const __IPHONE_5_0: u32 = 50000;
114pub const __IPHONE_5_1: u32 = 50100;
115pub const __IPHONE_6_0: u32 = 60000;
116pub const __IPHONE_6_1: u32 = 60100;
117pub const __IPHONE_7_0: u32 = 70000;
118pub const __IPHONE_7_1: u32 = 70100;
119pub const __IPHONE_8_0: u32 = 80000;
120pub const __IPHONE_8_1: u32 = 80100;
121pub const __IPHONE_8_2: u32 = 80200;
122pub const __IPHONE_8_3: u32 = 80300;
123pub const __IPHONE_8_4: u32 = 80400;
124pub const __IPHONE_9_0: u32 = 90000;
125pub const __IPHONE_9_1: u32 = 90100;
126pub const __IPHONE_9_2: u32 = 90200;
127pub const __IPHONE_9_3: u32 = 90300;
128pub const __IPHONE_10_0: u32 = 100000;
129pub const __IPHONE_10_1: u32 = 100100;
130pub const __IPHONE_10_2: u32 = 100200;
131pub const __IPHONE_10_3: u32 = 100300;
132pub const __TVOS_9_0: u32 = 90000;
133pub const __TVOS_9_1: u32 = 90100;
134pub const __TVOS_9_2: u32 = 90200;
135pub const __TVOS_10_0: u32 = 100000;
136pub const __TVOS_10_0_1: u32 = 100001;
137pub const __TVOS_10_1: u32 = 100100;
138pub const __TVOS_10_2: u32 = 100200;
139pub const __WATCHOS_1_0: u32 = 10000;
140pub const __WATCHOS_2_0: u32 = 20000;
141pub const __WATCHOS_2_1: u32 = 20100;
142pub const __WATCHOS_2_2: u32 = 20200;
143pub const __WATCHOS_3_0: u32 = 30000;
144pub const __WATCHOS_3_1: u32 = 30100;
145pub const __WATCHOS_3_1_1: u32 = 30101;
146pub const __WATCHOS_3_2: u32 = 30200;
147pub const __MAC_OS_X_VERSION_MAX_ALLOWED: u32 = 101204;
148pub const __DARWIN_WCHAR_MIN: i32 = -2147483648;
149pub const _FORTIFY_SOURCE: u32 = 0;
150pub const RENAME_SECLUDE: u32 = 1;
151pub const RENAME_SWAP: u32 = 2;
152pub const RENAME_EXCL: u32 = 4;
153pub const __SLBF: u32 = 1;
154pub const __SNBF: u32 = 2;
155pub const __SRD: u32 = 4;
156pub const __SWR: u32 = 8;
157pub const __SRW: u32 = 16;
158pub const __SEOF: u32 = 32;
159pub const __SERR: u32 = 64;
160pub const __SMBF: u32 = 128;
161pub const __SAPP: u32 = 256;
162pub const __SSTR: u32 = 512;
163pub const __SOPT: u32 = 1024;
164pub const __SNPT: u32 = 2048;
165pub const __SOFF: u32 = 4096;
166pub const __SMOD: u32 = 8192;
167pub const __SALC: u32 = 16384;
168pub const __SIGN: u32 = 32768;
169pub const _IOFBF: u32 = 0;
170pub const _IOLBF: u32 = 1;
171pub const _IONBF: u32 = 2;
172pub const BUFSIZ: u32 = 1024;
173pub const EOF: i32 = -1;
174pub const FOPEN_MAX: u32 = 20;
175pub const FILENAME_MAX: u32 = 1024;
176pub const P_tmpdir: &'static [u8; 10usize] = b"/var/tmp/\0";
177pub const L_tmpnam: u32 = 1024;
178pub const TMP_MAX: u32 = 308915776;
179pub const SEEK_SET: u32 = 0;
180pub const SEEK_CUR: u32 = 1;
181pub const SEEK_END: u32 = 2;
182pub const L_ctermid: u32 = 1024;
183pub const __CTERMID_DEFINED: u32 = 1;
184pub const DC1394_CAPTURE_FLAGS_CHANNEL_ALLOC: u32 = 1;
185pub const DC1394_CAPTURE_FLAGS_BANDWIDTH_ALLOC: u32 = 2;
186pub const DC1394_CAPTURE_FLAGS_DEFAULT: u32 = 4;
187pub const DC1394_CAPTURE_FLAGS_AUTO_ISO: u32 = 8;
188pub const DC1394_QUERY_FROM_CAMERA: i32 = -1;
189pub const DC1394_USE_MAX_AVAIL: i32 = -2;
190pub const DC1394_USE_RECOMMENDED: i32 = -3;
191pub type int_least8_t = i8;
192pub type int_least16_t = i16;
193pub type int_least32_t = i32;
194pub type int_least64_t = i64;
195pub type uint_least8_t = u8;
196pub type uint_least16_t = u16;
197pub type uint_least32_t = u32;
198pub type uint_least64_t = u64;
199pub type int_fast8_t = i8;
200pub type int_fast16_t = i16;
201pub type int_fast32_t = i32;
202pub type int_fast64_t = i64;
203pub type uint_fast8_t = u8;
204pub type uint_fast16_t = u16;
205pub type uint_fast32_t = u32;
206pub type uint_fast64_t = u64;
207pub type __int8_t = ::std::os::raw::c_schar;
208pub type __uint8_t = ::std::os::raw::c_uchar;
209pub type __int16_t = ::std::os::raw::c_short;
210pub type __uint16_t = ::std::os::raw::c_ushort;
211pub type __int32_t = ::std::os::raw::c_int;
212pub type __uint32_t = ::std::os::raw::c_uint;
213pub type __int64_t = ::std::os::raw::c_longlong;
214pub type __uint64_t = ::std::os::raw::c_ulonglong;
215pub type __darwin_intptr_t = ::std::os::raw::c_long;
216pub type __darwin_natural_t = ::std::os::raw::c_uint;
217pub type __darwin_ct_rune_t = ::std::os::raw::c_int;
218#[repr(C)]
219#[derive(Copy, Clone)]
220pub union __mbstate_t {
221    pub __mbstate8: [::std::os::raw::c_char; 128usize],
222    pub _mbstateL: ::std::os::raw::c_longlong,
223    _bindgen_union_align: [u64; 16usize],
224}
225#[test]
226fn bindgen_test_layout___mbstate_t() {
227    assert_eq!(
228        ::std::mem::size_of::<__mbstate_t>(),
229        128usize,
230        concat!("Size of: ", stringify!(__mbstate_t))
231    );
232    assert_eq!(
233        ::std::mem::align_of::<__mbstate_t>(),
234        8usize,
235        concat!("Alignment of ", stringify!(__mbstate_t))
236    );
237    assert_eq!(
238        unsafe { &(*(::std::ptr::null::<__mbstate_t>())).__mbstate8 as *const _ as usize },
239        0usize,
240        concat!(
241            "Offset of field: ",
242            stringify!(__mbstate_t),
243            "::",
244            stringify!(__mbstate8)
245        )
246    );
247    assert_eq!(
248        unsafe { &(*(::std::ptr::null::<__mbstate_t>()))._mbstateL as *const _ as usize },
249        0usize,
250        concat!(
251            "Offset of field: ",
252            stringify!(__mbstate_t),
253            "::",
254            stringify!(_mbstateL)
255        )
256    );
257}
258pub type __darwin_mbstate_t = __mbstate_t;
259pub type __darwin_ptrdiff_t = ::std::os::raw::c_long;
260pub type __darwin_size_t = ::std::os::raw::c_ulong;
261pub type __darwin_va_list = __builtin_va_list;
262pub type __darwin_wchar_t = ::std::os::raw::c_int;
263pub type __darwin_rune_t = __darwin_wchar_t;
264pub type __darwin_wint_t = ::std::os::raw::c_int;
265pub type __darwin_clock_t = ::std::os::raw::c_ulong;
266pub type __darwin_socklen_t = __uint32_t;
267pub type __darwin_ssize_t = ::std::os::raw::c_long;
268pub type __darwin_time_t = ::std::os::raw::c_long;
269pub type __darwin_blkcnt_t = __int64_t;
270pub type __darwin_blksize_t = __int32_t;
271pub type __darwin_dev_t = __int32_t;
272pub type __darwin_fsblkcnt_t = ::std::os::raw::c_uint;
273pub type __darwin_fsfilcnt_t = ::std::os::raw::c_uint;
274pub type __darwin_gid_t = __uint32_t;
275pub type __darwin_id_t = __uint32_t;
276pub type __darwin_ino64_t = __uint64_t;
277pub type __darwin_ino_t = __uint32_t;
278pub type __darwin_mach_port_name_t = __darwin_natural_t;
279pub type __darwin_mach_port_t = __darwin_mach_port_name_t;
280pub type __darwin_mode_t = __uint16_t;
281pub type __darwin_off_t = __int64_t;
282pub type __darwin_pid_t = __int32_t;
283pub type __darwin_sigset_t = __uint32_t;
284pub type __darwin_suseconds_t = __int32_t;
285pub type __darwin_uid_t = __uint32_t;
286pub type __darwin_useconds_t = __uint32_t;
287pub type __darwin_uuid_t = [::std::os::raw::c_uchar; 16usize];
288pub type __darwin_uuid_string_t = [::std::os::raw::c_char; 37usize];
289#[repr(C)]
290#[derive(Debug, Copy, Clone)]
291pub struct __darwin_pthread_handler_rec {
292    pub __routine: ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>,
293    pub __arg: *mut ::std::os::raw::c_void,
294    pub __next: *mut __darwin_pthread_handler_rec,
295}
296#[test]
297fn bindgen_test_layout___darwin_pthread_handler_rec() {
298    assert_eq!(
299        ::std::mem::size_of::<__darwin_pthread_handler_rec>(),
300        24usize,
301        concat!("Size of: ", stringify!(__darwin_pthread_handler_rec))
302    );
303    assert_eq!(
304        ::std::mem::align_of::<__darwin_pthread_handler_rec>(),
305        8usize,
306        concat!("Alignment of ", stringify!(__darwin_pthread_handler_rec))
307    );
308    assert_eq!(
309        unsafe {
310            &(*(::std::ptr::null::<__darwin_pthread_handler_rec>())).__routine as *const _ as usize
311        },
312        0usize,
313        concat!(
314            "Offset of field: ",
315            stringify!(__darwin_pthread_handler_rec),
316            "::",
317            stringify!(__routine)
318        )
319    );
320    assert_eq!(
321        unsafe {
322            &(*(::std::ptr::null::<__darwin_pthread_handler_rec>())).__arg as *const _ as usize
323        },
324        8usize,
325        concat!(
326            "Offset of field: ",
327            stringify!(__darwin_pthread_handler_rec),
328            "::",
329            stringify!(__arg)
330        )
331    );
332    assert_eq!(
333        unsafe {
334            &(*(::std::ptr::null::<__darwin_pthread_handler_rec>())).__next as *const _ as usize
335        },
336        16usize,
337        concat!(
338            "Offset of field: ",
339            stringify!(__darwin_pthread_handler_rec),
340            "::",
341            stringify!(__next)
342        )
343    );
344}
345#[repr(C)]
346#[derive(Copy, Clone)]
347pub struct _opaque_pthread_attr_t {
348    pub __sig: ::std::os::raw::c_long,
349    pub __opaque: [::std::os::raw::c_char; 56usize],
350}
351#[test]
352fn bindgen_test_layout__opaque_pthread_attr_t() {
353    assert_eq!(
354        ::std::mem::size_of::<_opaque_pthread_attr_t>(),
355        64usize,
356        concat!("Size of: ", stringify!(_opaque_pthread_attr_t))
357    );
358    assert_eq!(
359        ::std::mem::align_of::<_opaque_pthread_attr_t>(),
360        8usize,
361        concat!("Alignment of ", stringify!(_opaque_pthread_attr_t))
362    );
363    assert_eq!(
364        unsafe { &(*(::std::ptr::null::<_opaque_pthread_attr_t>())).__sig as *const _ as usize },
365        0usize,
366        concat!(
367            "Offset of field: ",
368            stringify!(_opaque_pthread_attr_t),
369            "::",
370            stringify!(__sig)
371        )
372    );
373    assert_eq!(
374        unsafe { &(*(::std::ptr::null::<_opaque_pthread_attr_t>())).__opaque as *const _ as usize },
375        8usize,
376        concat!(
377            "Offset of field: ",
378            stringify!(_opaque_pthread_attr_t),
379            "::",
380            stringify!(__opaque)
381        )
382    );
383}
384#[repr(C)]
385#[derive(Copy, Clone)]
386pub struct _opaque_pthread_cond_t {
387    pub __sig: ::std::os::raw::c_long,
388    pub __opaque: [::std::os::raw::c_char; 40usize],
389}
390#[test]
391fn bindgen_test_layout__opaque_pthread_cond_t() {
392    assert_eq!(
393        ::std::mem::size_of::<_opaque_pthread_cond_t>(),
394        48usize,
395        concat!("Size of: ", stringify!(_opaque_pthread_cond_t))
396    );
397    assert_eq!(
398        ::std::mem::align_of::<_opaque_pthread_cond_t>(),
399        8usize,
400        concat!("Alignment of ", stringify!(_opaque_pthread_cond_t))
401    );
402    assert_eq!(
403        unsafe { &(*(::std::ptr::null::<_opaque_pthread_cond_t>())).__sig as *const _ as usize },
404        0usize,
405        concat!(
406            "Offset of field: ",
407            stringify!(_opaque_pthread_cond_t),
408            "::",
409            stringify!(__sig)
410        )
411    );
412    assert_eq!(
413        unsafe { &(*(::std::ptr::null::<_opaque_pthread_cond_t>())).__opaque as *const _ as usize },
414        8usize,
415        concat!(
416            "Offset of field: ",
417            stringify!(_opaque_pthread_cond_t),
418            "::",
419            stringify!(__opaque)
420        )
421    );
422}
423#[repr(C)]
424#[derive(Debug, Copy, Clone)]
425pub struct _opaque_pthread_condattr_t {
426    pub __sig: ::std::os::raw::c_long,
427    pub __opaque: [::std::os::raw::c_char; 8usize],
428}
429#[test]
430fn bindgen_test_layout__opaque_pthread_condattr_t() {
431    assert_eq!(
432        ::std::mem::size_of::<_opaque_pthread_condattr_t>(),
433        16usize,
434        concat!("Size of: ", stringify!(_opaque_pthread_condattr_t))
435    );
436    assert_eq!(
437        ::std::mem::align_of::<_opaque_pthread_condattr_t>(),
438        8usize,
439        concat!("Alignment of ", stringify!(_opaque_pthread_condattr_t))
440    );
441    assert_eq!(
442        unsafe {
443            &(*(::std::ptr::null::<_opaque_pthread_condattr_t>())).__sig as *const _ as usize
444        },
445        0usize,
446        concat!(
447            "Offset of field: ",
448            stringify!(_opaque_pthread_condattr_t),
449            "::",
450            stringify!(__sig)
451        )
452    );
453    assert_eq!(
454        unsafe {
455            &(*(::std::ptr::null::<_opaque_pthread_condattr_t>())).__opaque as *const _ as usize
456        },
457        8usize,
458        concat!(
459            "Offset of field: ",
460            stringify!(_opaque_pthread_condattr_t),
461            "::",
462            stringify!(__opaque)
463        )
464    );
465}
466#[repr(C)]
467#[derive(Copy, Clone)]
468pub struct _opaque_pthread_mutex_t {
469    pub __sig: ::std::os::raw::c_long,
470    pub __opaque: [::std::os::raw::c_char; 56usize],
471}
472#[test]
473fn bindgen_test_layout__opaque_pthread_mutex_t() {
474    assert_eq!(
475        ::std::mem::size_of::<_opaque_pthread_mutex_t>(),
476        64usize,
477        concat!("Size of: ", stringify!(_opaque_pthread_mutex_t))
478    );
479    assert_eq!(
480        ::std::mem::align_of::<_opaque_pthread_mutex_t>(),
481        8usize,
482        concat!("Alignment of ", stringify!(_opaque_pthread_mutex_t))
483    );
484    assert_eq!(
485        unsafe { &(*(::std::ptr::null::<_opaque_pthread_mutex_t>())).__sig as *const _ as usize },
486        0usize,
487        concat!(
488            "Offset of field: ",
489            stringify!(_opaque_pthread_mutex_t),
490            "::",
491            stringify!(__sig)
492        )
493    );
494    assert_eq!(
495        unsafe {
496            &(*(::std::ptr::null::<_opaque_pthread_mutex_t>())).__opaque as *const _ as usize
497        },
498        8usize,
499        concat!(
500            "Offset of field: ",
501            stringify!(_opaque_pthread_mutex_t),
502            "::",
503            stringify!(__opaque)
504        )
505    );
506}
507#[repr(C)]
508#[derive(Debug, Copy, Clone)]
509pub struct _opaque_pthread_mutexattr_t {
510    pub __sig: ::std::os::raw::c_long,
511    pub __opaque: [::std::os::raw::c_char; 8usize],
512}
513#[test]
514fn bindgen_test_layout__opaque_pthread_mutexattr_t() {
515    assert_eq!(
516        ::std::mem::size_of::<_opaque_pthread_mutexattr_t>(),
517        16usize,
518        concat!("Size of: ", stringify!(_opaque_pthread_mutexattr_t))
519    );
520    assert_eq!(
521        ::std::mem::align_of::<_opaque_pthread_mutexattr_t>(),
522        8usize,
523        concat!("Alignment of ", stringify!(_opaque_pthread_mutexattr_t))
524    );
525    assert_eq!(
526        unsafe {
527            &(*(::std::ptr::null::<_opaque_pthread_mutexattr_t>())).__sig as *const _ as usize
528        },
529        0usize,
530        concat!(
531            "Offset of field: ",
532            stringify!(_opaque_pthread_mutexattr_t),
533            "::",
534            stringify!(__sig)
535        )
536    );
537    assert_eq!(
538        unsafe {
539            &(*(::std::ptr::null::<_opaque_pthread_mutexattr_t>())).__opaque as *const _ as usize
540        },
541        8usize,
542        concat!(
543            "Offset of field: ",
544            stringify!(_opaque_pthread_mutexattr_t),
545            "::",
546            stringify!(__opaque)
547        )
548    );
549}
550#[repr(C)]
551#[derive(Debug, Copy, Clone)]
552pub struct _opaque_pthread_once_t {
553    pub __sig: ::std::os::raw::c_long,
554    pub __opaque: [::std::os::raw::c_char; 8usize],
555}
556#[test]
557fn bindgen_test_layout__opaque_pthread_once_t() {
558    assert_eq!(
559        ::std::mem::size_of::<_opaque_pthread_once_t>(),
560        16usize,
561        concat!("Size of: ", stringify!(_opaque_pthread_once_t))
562    );
563    assert_eq!(
564        ::std::mem::align_of::<_opaque_pthread_once_t>(),
565        8usize,
566        concat!("Alignment of ", stringify!(_opaque_pthread_once_t))
567    );
568    assert_eq!(
569        unsafe { &(*(::std::ptr::null::<_opaque_pthread_once_t>())).__sig as *const _ as usize },
570        0usize,
571        concat!(
572            "Offset of field: ",
573            stringify!(_opaque_pthread_once_t),
574            "::",
575            stringify!(__sig)
576        )
577    );
578    assert_eq!(
579        unsafe { &(*(::std::ptr::null::<_opaque_pthread_once_t>())).__opaque as *const _ as usize },
580        8usize,
581        concat!(
582            "Offset of field: ",
583            stringify!(_opaque_pthread_once_t),
584            "::",
585            stringify!(__opaque)
586        )
587    );
588}
589#[repr(C)]
590#[derive(Copy, Clone)]
591pub struct _opaque_pthread_rwlock_t {
592    pub __sig: ::std::os::raw::c_long,
593    pub __opaque: [::std::os::raw::c_char; 192usize],
594}
595#[test]
596fn bindgen_test_layout__opaque_pthread_rwlock_t() {
597    assert_eq!(
598        ::std::mem::size_of::<_opaque_pthread_rwlock_t>(),
599        200usize,
600        concat!("Size of: ", stringify!(_opaque_pthread_rwlock_t))
601    );
602    assert_eq!(
603        ::std::mem::align_of::<_opaque_pthread_rwlock_t>(),
604        8usize,
605        concat!("Alignment of ", stringify!(_opaque_pthread_rwlock_t))
606    );
607    assert_eq!(
608        unsafe { &(*(::std::ptr::null::<_opaque_pthread_rwlock_t>())).__sig as *const _ as usize },
609        0usize,
610        concat!(
611            "Offset of field: ",
612            stringify!(_opaque_pthread_rwlock_t),
613            "::",
614            stringify!(__sig)
615        )
616    );
617    assert_eq!(
618        unsafe {
619            &(*(::std::ptr::null::<_opaque_pthread_rwlock_t>())).__opaque as *const _ as usize
620        },
621        8usize,
622        concat!(
623            "Offset of field: ",
624            stringify!(_opaque_pthread_rwlock_t),
625            "::",
626            stringify!(__opaque)
627        )
628    );
629}
630#[repr(C)]
631#[derive(Debug, Copy, Clone)]
632pub struct _opaque_pthread_rwlockattr_t {
633    pub __sig: ::std::os::raw::c_long,
634    pub __opaque: [::std::os::raw::c_char; 16usize],
635}
636#[test]
637fn bindgen_test_layout__opaque_pthread_rwlockattr_t() {
638    assert_eq!(
639        ::std::mem::size_of::<_opaque_pthread_rwlockattr_t>(),
640        24usize,
641        concat!("Size of: ", stringify!(_opaque_pthread_rwlockattr_t))
642    );
643    assert_eq!(
644        ::std::mem::align_of::<_opaque_pthread_rwlockattr_t>(),
645        8usize,
646        concat!("Alignment of ", stringify!(_opaque_pthread_rwlockattr_t))
647    );
648    assert_eq!(
649        unsafe {
650            &(*(::std::ptr::null::<_opaque_pthread_rwlockattr_t>())).__sig as *const _ as usize
651        },
652        0usize,
653        concat!(
654            "Offset of field: ",
655            stringify!(_opaque_pthread_rwlockattr_t),
656            "::",
657            stringify!(__sig)
658        )
659    );
660    assert_eq!(
661        unsafe {
662            &(*(::std::ptr::null::<_opaque_pthread_rwlockattr_t>())).__opaque as *const _ as usize
663        },
664        8usize,
665        concat!(
666            "Offset of field: ",
667            stringify!(_opaque_pthread_rwlockattr_t),
668            "::",
669            stringify!(__opaque)
670        )
671    );
672}
673#[repr(C)]
674#[derive(Copy, Clone)]
675pub struct _opaque_pthread_t {
676    pub __sig: ::std::os::raw::c_long,
677    pub __cleanup_stack: *mut __darwin_pthread_handler_rec,
678    pub __opaque: [::std::os::raw::c_char; 8176usize],
679}
680#[test]
681fn bindgen_test_layout__opaque_pthread_t() {
682    assert_eq!(
683        ::std::mem::size_of::<_opaque_pthread_t>(),
684        8192usize,
685        concat!("Size of: ", stringify!(_opaque_pthread_t))
686    );
687    assert_eq!(
688        ::std::mem::align_of::<_opaque_pthread_t>(),
689        8usize,
690        concat!("Alignment of ", stringify!(_opaque_pthread_t))
691    );
692    assert_eq!(
693        unsafe { &(*(::std::ptr::null::<_opaque_pthread_t>())).__sig as *const _ as usize },
694        0usize,
695        concat!(
696            "Offset of field: ",
697            stringify!(_opaque_pthread_t),
698            "::",
699            stringify!(__sig)
700        )
701    );
702    assert_eq!(
703        unsafe {
704            &(*(::std::ptr::null::<_opaque_pthread_t>())).__cleanup_stack as *const _ as usize
705        },
706        8usize,
707        concat!(
708            "Offset of field: ",
709            stringify!(_opaque_pthread_t),
710            "::",
711            stringify!(__cleanup_stack)
712        )
713    );
714    assert_eq!(
715        unsafe { &(*(::std::ptr::null::<_opaque_pthread_t>())).__opaque as *const _ as usize },
716        16usize,
717        concat!(
718            "Offset of field: ",
719            stringify!(_opaque_pthread_t),
720            "::",
721            stringify!(__opaque)
722        )
723    );
724}
725pub type __darwin_pthread_attr_t = _opaque_pthread_attr_t;
726pub type __darwin_pthread_cond_t = _opaque_pthread_cond_t;
727pub type __darwin_pthread_condattr_t = _opaque_pthread_condattr_t;
728pub type __darwin_pthread_key_t = ::std::os::raw::c_ulong;
729pub type __darwin_pthread_mutex_t = _opaque_pthread_mutex_t;
730pub type __darwin_pthread_mutexattr_t = _opaque_pthread_mutexattr_t;
731pub type __darwin_pthread_once_t = _opaque_pthread_once_t;
732pub type __darwin_pthread_rwlock_t = _opaque_pthread_rwlock_t;
733pub type __darwin_pthread_rwlockattr_t = _opaque_pthread_rwlockattr_t;
734pub type __darwin_pthread_t = *mut _opaque_pthread_t;
735pub type intmax_t = ::std::os::raw::c_long;
736pub type uintmax_t = ::std::os::raw::c_ulong;
737pub mod dc1394video_mode_t {
738    #[doc = " Enumeration of video modes. Note that the notion of IIDC \"format\" is not present here, except in the format_7 name."]
739    pub type Type = u32;
740    pub const DC1394_VIDEO_MODE_160x120_YUV444: Type = 64;
741    pub const DC1394_VIDEO_MODE_320x240_YUV422: Type = 65;
742    pub const DC1394_VIDEO_MODE_640x480_YUV411: Type = 66;
743    pub const DC1394_VIDEO_MODE_640x480_YUV422: Type = 67;
744    pub const DC1394_VIDEO_MODE_640x480_RGB8: Type = 68;
745    pub const DC1394_VIDEO_MODE_640x480_MONO8: Type = 69;
746    pub const DC1394_VIDEO_MODE_640x480_MONO16: Type = 70;
747    pub const DC1394_VIDEO_MODE_800x600_YUV422: Type = 71;
748    pub const DC1394_VIDEO_MODE_800x600_RGB8: Type = 72;
749    pub const DC1394_VIDEO_MODE_800x600_MONO8: Type = 73;
750    pub const DC1394_VIDEO_MODE_1024x768_YUV422: Type = 74;
751    pub const DC1394_VIDEO_MODE_1024x768_RGB8: Type = 75;
752    pub const DC1394_VIDEO_MODE_1024x768_MONO8: Type = 76;
753    pub const DC1394_VIDEO_MODE_800x600_MONO16: Type = 77;
754    pub const DC1394_VIDEO_MODE_1024x768_MONO16: Type = 78;
755    pub const DC1394_VIDEO_MODE_1280x960_YUV422: Type = 79;
756    pub const DC1394_VIDEO_MODE_1280x960_RGB8: Type = 80;
757    pub const DC1394_VIDEO_MODE_1280x960_MONO8: Type = 81;
758    pub const DC1394_VIDEO_MODE_1600x1200_YUV422: Type = 82;
759    pub const DC1394_VIDEO_MODE_1600x1200_RGB8: Type = 83;
760    pub const DC1394_VIDEO_MODE_1600x1200_MONO8: Type = 84;
761    pub const DC1394_VIDEO_MODE_1280x960_MONO16: Type = 85;
762    pub const DC1394_VIDEO_MODE_1600x1200_MONO16: Type = 86;
763    pub const DC1394_VIDEO_MODE_EXIF: Type = 87;
764    pub const DC1394_VIDEO_MODE_FORMAT7_0: Type = 88;
765    pub const DC1394_VIDEO_MODE_FORMAT7_1: Type = 89;
766    pub const DC1394_VIDEO_MODE_FORMAT7_2: Type = 90;
767    pub const DC1394_VIDEO_MODE_FORMAT7_3: Type = 91;
768    pub const DC1394_VIDEO_MODE_FORMAT7_4: Type = 92;
769    pub const DC1394_VIDEO_MODE_FORMAT7_5: Type = 93;
770    pub const DC1394_VIDEO_MODE_FORMAT7_6: Type = 94;
771    pub const DC1394_VIDEO_MODE_FORMAT7_7: Type = 95;
772}
773pub mod dc1394color_coding_t {
774    #[doc = " Enumeration of colour codings. For details on the data format please read the IIDC specifications."]
775    pub type Type = u32;
776    pub const DC1394_COLOR_CODING_MONO8: Type = 352;
777    pub const DC1394_COLOR_CODING_YUV411: Type = 353;
778    pub const DC1394_COLOR_CODING_YUV422: Type = 354;
779    pub const DC1394_COLOR_CODING_YUV444: Type = 355;
780    pub const DC1394_COLOR_CODING_RGB8: Type = 356;
781    pub const DC1394_COLOR_CODING_MONO16: Type = 357;
782    pub const DC1394_COLOR_CODING_RGB16: Type = 358;
783    pub const DC1394_COLOR_CODING_MONO16S: Type = 359;
784    pub const DC1394_COLOR_CODING_RGB16S: Type = 360;
785    pub const DC1394_COLOR_CODING_RAW8: Type = 361;
786    pub const DC1394_COLOR_CODING_RAW16: Type = 362;
787}
788pub mod dc1394color_filter_t {
789    #[doc = " RAW sensor filters. These elementary tiles tesselate the image plane in RAW modes. RGGB should be interpreted in 2D as"]
790    #[doc = ""]
791    #[doc = "    RG"]
792    #[doc = "    GB"]
793    #[doc = ""]
794    #[doc = " and similarly for other filters."]
795    pub type Type = u32;
796    pub const DC1394_COLOR_FILTER_RGGB: Type = 512;
797    pub const DC1394_COLOR_FILTER_GBRG: Type = 513;
798    pub const DC1394_COLOR_FILTER_GRBG: Type = 514;
799    pub const DC1394_COLOR_FILTER_BGGR: Type = 515;
800}
801pub mod dc1394byte_order_t {
802    #[doc = " Byte order for YUV formats (may be expanded to RGB in the future)"]
803    #[doc = ""]
804    #[doc = " IIDC cameras always return data in UYVY order, but conversion functions can change this if requested."]
805    pub type Type = u32;
806    pub const DC1394_BYTE_ORDER_UYVY: Type = 800;
807    pub const DC1394_BYTE_ORDER_YUYV: Type = 801;
808}
809#[doc = " A struct containing a list of color codings"]
810#[repr(C)]
811#[derive(Debug, Copy, Clone)]
812pub struct dc1394color_codings_t {
813    pub num: u32,
814    pub codings: [dc1394color_coding_t::Type; 11usize],
815}
816#[test]
817fn bindgen_test_layout_dc1394color_codings_t() {
818    assert_eq!(
819        ::std::mem::size_of::<dc1394color_codings_t>(),
820        48usize,
821        concat!("Size of: ", stringify!(dc1394color_codings_t))
822    );
823    assert_eq!(
824        ::std::mem::align_of::<dc1394color_codings_t>(),
825        4usize,
826        concat!("Alignment of ", stringify!(dc1394color_codings_t))
827    );
828    assert_eq!(
829        unsafe { &(*(::std::ptr::null::<dc1394color_codings_t>())).num as *const _ as usize },
830        0usize,
831        concat!(
832            "Offset of field: ",
833            stringify!(dc1394color_codings_t),
834            "::",
835            stringify!(num)
836        )
837    );
838    assert_eq!(
839        unsafe { &(*(::std::ptr::null::<dc1394color_codings_t>())).codings as *const _ as usize },
840        4usize,
841        concat!(
842            "Offset of field: ",
843            stringify!(dc1394color_codings_t),
844            "::",
845            stringify!(codings)
846        )
847    );
848}
849#[doc = " A struct containing a list of video modes"]
850#[repr(C)]
851#[derive(Debug, Copy, Clone)]
852pub struct dc1394video_modes_t {
853    pub num: u32,
854    pub modes: [dc1394video_mode_t::Type; 32usize],
855}
856#[test]
857fn bindgen_test_layout_dc1394video_modes_t() {
858    assert_eq!(
859        ::std::mem::size_of::<dc1394video_modes_t>(),
860        132usize,
861        concat!("Size of: ", stringify!(dc1394video_modes_t))
862    );
863    assert_eq!(
864        ::std::mem::align_of::<dc1394video_modes_t>(),
865        4usize,
866        concat!("Alignment of ", stringify!(dc1394video_modes_t))
867    );
868    assert_eq!(
869        unsafe { &(*(::std::ptr::null::<dc1394video_modes_t>())).num as *const _ as usize },
870        0usize,
871        concat!(
872            "Offset of field: ",
873            stringify!(dc1394video_modes_t),
874            "::",
875            stringify!(num)
876        )
877    );
878    assert_eq!(
879        unsafe { &(*(::std::ptr::null::<dc1394video_modes_t>())).modes as *const _ as usize },
880        4usize,
881        concat!(
882            "Offset of field: ",
883            stringify!(dc1394video_modes_t),
884            "::",
885            stringify!(modes)
886        )
887    );
888}
889pub mod dc1394bool_t {
890    #[doc = " Yet another boolean data type"]
891    pub type Type = u32;
892    pub const DC1394_FALSE: Type = 0;
893    pub const DC1394_TRUE: Type = 1;
894}
895pub mod dc1394switch_t {
896    #[doc = " Yet another boolean data type, a bit more oriented towards electrical-engineers"]
897    pub type Type = u32;
898    pub const DC1394_OFF: Type = 0;
899    pub const DC1394_ON: Type = 1;
900}
901pub mod dc1394error_t {
902    #[doc = " Error codes returned by most libdc1394 functions."]
903    #[doc = ""]
904    #[doc = " General rule: 0 is success, negative denotes a problem."]
905    pub type Type = i32;
906    pub const DC1394_SUCCESS: Type = 0;
907    pub const DC1394_FAILURE: Type = -1;
908    pub const DC1394_NOT_A_CAMERA: Type = -2;
909    pub const DC1394_FUNCTION_NOT_SUPPORTED: Type = -3;
910    pub const DC1394_CAMERA_NOT_INITIALIZED: Type = -4;
911    pub const DC1394_MEMORY_ALLOCATION_FAILURE: Type = -5;
912    pub const DC1394_TAGGED_REGISTER_NOT_FOUND: Type = -6;
913    pub const DC1394_NO_ISO_CHANNEL: Type = -7;
914    pub const DC1394_NO_BANDWIDTH: Type = -8;
915    pub const DC1394_IOCTL_FAILURE: Type = -9;
916    pub const DC1394_CAPTURE_IS_NOT_SET: Type = -10;
917    pub const DC1394_CAPTURE_IS_RUNNING: Type = -11;
918    pub const DC1394_RAW1394_FAILURE: Type = -12;
919    pub const DC1394_FORMAT7_ERROR_FLAG_1: Type = -13;
920    pub const DC1394_FORMAT7_ERROR_FLAG_2: Type = -14;
921    pub const DC1394_INVALID_ARGUMENT_VALUE: Type = -15;
922    pub const DC1394_REQ_VALUE_OUTSIDE_RANGE: Type = -16;
923    pub const DC1394_INVALID_FEATURE: Type = -17;
924    pub const DC1394_INVALID_VIDEO_FORMAT: Type = -18;
925    pub const DC1394_INVALID_VIDEO_MODE: Type = -19;
926    pub const DC1394_INVALID_FRAMERATE: Type = -20;
927    pub const DC1394_INVALID_TRIGGER_MODE: Type = -21;
928    pub const DC1394_INVALID_TRIGGER_SOURCE: Type = -22;
929    pub const DC1394_INVALID_ISO_SPEED: Type = -23;
930    pub const DC1394_INVALID_IIDC_VERSION: Type = -24;
931    pub const DC1394_INVALID_COLOR_CODING: Type = -25;
932    pub const DC1394_INVALID_COLOR_FILTER: Type = -26;
933    pub const DC1394_INVALID_CAPTURE_POLICY: Type = -27;
934    pub const DC1394_INVALID_ERROR_CODE: Type = -28;
935    pub const DC1394_INVALID_BAYER_METHOD: Type = -29;
936    pub const DC1394_INVALID_VIDEO1394_DEVICE: Type = -30;
937    pub const DC1394_INVALID_OPERATION_MODE: Type = -31;
938    pub const DC1394_INVALID_TRIGGER_POLARITY: Type = -32;
939    pub const DC1394_INVALID_FEATURE_MODE: Type = -33;
940    pub const DC1394_INVALID_LOG_TYPE: Type = -34;
941    pub const DC1394_INVALID_BYTE_ORDER: Type = -35;
942    pub const DC1394_INVALID_STEREO_METHOD: Type = -36;
943    pub const DC1394_BASLER_NO_MORE_SFF_CHUNKS: Type = -37;
944    pub const DC1394_BASLER_CORRUPTED_SFF_CHUNK: Type = -38;
945    pub const DC1394_BASLER_UNKNOWN_SFF_CHUNK: Type = -39;
946}
947pub mod dc1394log_t {
948    #[doc = " Types of logging messages"]
949    #[doc = ""]
950    #[doc = " Three types exist:"]
951    #[doc = " - ERROR for real, hard, unrecoverable errors that will result in the program terminating."]
952    #[doc = " - WARNING for things that have gone wrong, but are not requiring a termination of the program."]
953    #[doc = " - DEBUG for debug messages that can be very verbose but may help the developers to fix bugs."]
954    pub type Type = u32;
955    pub const DC1394_LOG_ERROR: Type = 768;
956    pub const DC1394_LOG_WARNING: Type = 769;
957    pub const DC1394_LOG_DEBUG: Type = 770;
958}
959extern "C" {
960    #[doc = " dc1394_log_register_handler: register log handler for reporting error, warning or debug statements"]
961    #[doc = " Passing NULL as argument turns off this log level."]
962    #[doc = " @param [in] log_handler: pointer to a function which takes a character string as argument"]
963    #[doc = "             type: the type of log"]
964    #[doc = " @param [in] type: message type (\\a debug, \\a err or \\a warning)"]
965    #[doc = " @param [in] message: log message"]
966    pub fn dc1394_log_register_handler(
967        type_: dc1394log_t::Type,
968        log_handler: ::std::option::Option<
969            unsafe extern "C" fn(
970                type_: dc1394log_t::Type,
971                log_handler: *const ::std::os::raw::c_char,
972                user: *mut ::std::os::raw::c_void,
973            ),
974        >,
975        user: *mut ::std::os::raw::c_void,
976    ) -> dc1394error_t::Type;
977}
978extern "C" {
979    #[doc = " dc1394_log_set_default_handler: set the log handler to the default handler"]
980    #[doc = " At boot time, debug logging is OFF (handler is NULL). Using this function for the debug statements"]
981    #[doc = " will start logging of debug statements usng the default handler."]
982    pub fn dc1394_log_set_default_handler(type_: dc1394log_t::Type) -> dc1394error_t::Type;
983}
984extern "C" {
985    #[doc = " dc1394_log_error: logs a fatal error condition to the registered facility"]
986    #[doc = " This function shall be invoked if a fatal error condition is encountered."]
987    #[doc = " The message passed as argument is delivered to the registered error reporting"]
988    #[doc = " function registered before."]
989    #[doc = " @param [in] format,...: error message to be logged, multiple arguments allowed (printf style)"]
990    pub fn dc1394_log_error(format: *const ::std::os::raw::c_char, ...);
991}
992extern "C" {
993    #[doc = " dc1394_log_warning: logs a nonfatal error condition to the registered facility"]
994    #[doc = " This function shall be invoked if a nonfatal error condition is encountered."]
995    #[doc = " The message passed as argument is delivered to the registered warning reporting"]
996    #[doc = " function registered before."]
997    #[doc = " @param [in] format,...: warning message to be logged, multiple arguments allowed (printf style)"]
998    pub fn dc1394_log_warning(format: *const ::std::os::raw::c_char, ...);
999}
1000extern "C" {
1001    #[doc = " dc1394_log_debug: logs a debug statement to the registered facility"]
1002    #[doc = " This function shall be invoked if a debug statement is to be logged."]
1003    #[doc = " The message passed as argument is delivered to the registered debug reporting"]
1004    #[doc = " function registered before ONLY IF the environment variable DC1394_DEBUG has been set before the"]
1005    #[doc = " program starts."]
1006    #[doc = " @param [in] format,...: debug statement to be logged, multiple arguments allowed (printf style)"]
1007    pub fn dc1394_log_debug(format: *const ::std::os::raw::c_char, ...);
1008}
1009pub type __darwin_nl_item = ::std::os::raw::c_int;
1010pub type __darwin_wctrans_t = ::std::os::raw::c_int;
1011pub type __darwin_wctype_t = __uint32_t;
1012pub type va_list = __darwin_va_list;
1013extern "C" {
1014    pub fn renameat(
1015        arg1: ::std::os::raw::c_int,
1016        arg2: *const ::std::os::raw::c_char,
1017        arg3: ::std::os::raw::c_int,
1018        arg4: *const ::std::os::raw::c_char,
1019    ) -> ::std::os::raw::c_int;
1020}
1021extern "C" {
1022    pub fn renamex_np(
1023        arg1: *const ::std::os::raw::c_char,
1024        arg2: *const ::std::os::raw::c_char,
1025        arg3: ::std::os::raw::c_uint,
1026    ) -> ::std::os::raw::c_int;
1027}
1028extern "C" {
1029    pub fn renameatx_np(
1030        arg1: ::std::os::raw::c_int,
1031        arg2: *const ::std::os::raw::c_char,
1032        arg3: ::std::os::raw::c_int,
1033        arg4: *const ::std::os::raw::c_char,
1034        arg5: ::std::os::raw::c_uint,
1035    ) -> ::std::os::raw::c_int;
1036}
1037pub type fpos_t = __darwin_off_t;
1038#[repr(C)]
1039#[derive(Debug, Copy, Clone)]
1040pub struct __sbuf {
1041    pub _base: *mut ::std::os::raw::c_uchar,
1042    pub _size: ::std::os::raw::c_int,
1043}
1044#[test]
1045fn bindgen_test_layout___sbuf() {
1046    assert_eq!(
1047        ::std::mem::size_of::<__sbuf>(),
1048        16usize,
1049        concat!("Size of: ", stringify!(__sbuf))
1050    );
1051    assert_eq!(
1052        ::std::mem::align_of::<__sbuf>(),
1053        8usize,
1054        concat!("Alignment of ", stringify!(__sbuf))
1055    );
1056    assert_eq!(
1057        unsafe { &(*(::std::ptr::null::<__sbuf>()))._base as *const _ as usize },
1058        0usize,
1059        concat!(
1060            "Offset of field: ",
1061            stringify!(__sbuf),
1062            "::",
1063            stringify!(_base)
1064        )
1065    );
1066    assert_eq!(
1067        unsafe { &(*(::std::ptr::null::<__sbuf>()))._size as *const _ as usize },
1068        8usize,
1069        concat!(
1070            "Offset of field: ",
1071            stringify!(__sbuf),
1072            "::",
1073            stringify!(_size)
1074        )
1075    );
1076}
1077#[repr(C)]
1078#[derive(Debug, Copy, Clone)]
1079pub struct __sFILEX {
1080    _unused: [u8; 0],
1081}
1082#[repr(C)]
1083#[derive(Debug, Copy, Clone)]
1084pub struct __sFILE {
1085    pub _p: *mut ::std::os::raw::c_uchar,
1086    pub _r: ::std::os::raw::c_int,
1087    pub _w: ::std::os::raw::c_int,
1088    pub _flags: ::std::os::raw::c_short,
1089    pub _file: ::std::os::raw::c_short,
1090    pub _bf: __sbuf,
1091    pub _lbfsize: ::std::os::raw::c_int,
1092    pub _cookie: *mut ::std::os::raw::c_void,
1093    pub _close: ::std::option::Option<
1094        unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int,
1095    >,
1096    pub _read: ::std::option::Option<
1097        unsafe extern "C" fn(
1098            arg1: *mut ::std::os::raw::c_void,
1099            arg2: *mut ::std::os::raw::c_char,
1100            arg3: ::std::os::raw::c_int,
1101        ) -> ::std::os::raw::c_int,
1102    >,
1103    pub _seek: ::std::option::Option<
1104        unsafe extern "C" fn(
1105            arg1: *mut ::std::os::raw::c_void,
1106            arg2: fpos_t,
1107            arg3: ::std::os::raw::c_int,
1108        ) -> fpos_t,
1109    >,
1110    pub _write: ::std::option::Option<
1111        unsafe extern "C" fn(
1112            arg1: *mut ::std::os::raw::c_void,
1113            arg2: *const ::std::os::raw::c_char,
1114            arg3: ::std::os::raw::c_int,
1115        ) -> ::std::os::raw::c_int,
1116    >,
1117    pub _ub: __sbuf,
1118    pub _extra: *mut __sFILEX,
1119    pub _ur: ::std::os::raw::c_int,
1120    pub _ubuf: [::std::os::raw::c_uchar; 3usize],
1121    pub _nbuf: [::std::os::raw::c_uchar; 1usize],
1122    pub _lb: __sbuf,
1123    pub _blksize: ::std::os::raw::c_int,
1124    pub _offset: fpos_t,
1125}
1126#[test]
1127fn bindgen_test_layout___sFILE() {
1128    assert_eq!(
1129        ::std::mem::size_of::<__sFILE>(),
1130        152usize,
1131        concat!("Size of: ", stringify!(__sFILE))
1132    );
1133    assert_eq!(
1134        ::std::mem::align_of::<__sFILE>(),
1135        8usize,
1136        concat!("Alignment of ", stringify!(__sFILE))
1137    );
1138    assert_eq!(
1139        unsafe { &(*(::std::ptr::null::<__sFILE>()))._p as *const _ as usize },
1140        0usize,
1141        concat!(
1142            "Offset of field: ",
1143            stringify!(__sFILE),
1144            "::",
1145            stringify!(_p)
1146        )
1147    );
1148    assert_eq!(
1149        unsafe { &(*(::std::ptr::null::<__sFILE>()))._r as *const _ as usize },
1150        8usize,
1151        concat!(
1152            "Offset of field: ",
1153            stringify!(__sFILE),
1154            "::",
1155            stringify!(_r)
1156        )
1157    );
1158    assert_eq!(
1159        unsafe { &(*(::std::ptr::null::<__sFILE>()))._w as *const _ as usize },
1160        12usize,
1161        concat!(
1162            "Offset of field: ",
1163            stringify!(__sFILE),
1164            "::",
1165            stringify!(_w)
1166        )
1167    );
1168    assert_eq!(
1169        unsafe { &(*(::std::ptr::null::<__sFILE>()))._flags as *const _ as usize },
1170        16usize,
1171        concat!(
1172            "Offset of field: ",
1173            stringify!(__sFILE),
1174            "::",
1175            stringify!(_flags)
1176        )
1177    );
1178    assert_eq!(
1179        unsafe { &(*(::std::ptr::null::<__sFILE>()))._file as *const _ as usize },
1180        18usize,
1181        concat!(
1182            "Offset of field: ",
1183            stringify!(__sFILE),
1184            "::",
1185            stringify!(_file)
1186        )
1187    );
1188    assert_eq!(
1189        unsafe { &(*(::std::ptr::null::<__sFILE>()))._bf as *const _ as usize },
1190        24usize,
1191        concat!(
1192            "Offset of field: ",
1193            stringify!(__sFILE),
1194            "::",
1195            stringify!(_bf)
1196        )
1197    );
1198    assert_eq!(
1199        unsafe { &(*(::std::ptr::null::<__sFILE>()))._lbfsize as *const _ as usize },
1200        40usize,
1201        concat!(
1202            "Offset of field: ",
1203            stringify!(__sFILE),
1204            "::",
1205            stringify!(_lbfsize)
1206        )
1207    );
1208    assert_eq!(
1209        unsafe { &(*(::std::ptr::null::<__sFILE>()))._cookie as *const _ as usize },
1210        48usize,
1211        concat!(
1212            "Offset of field: ",
1213            stringify!(__sFILE),
1214            "::",
1215            stringify!(_cookie)
1216        )
1217    );
1218    assert_eq!(
1219        unsafe { &(*(::std::ptr::null::<__sFILE>()))._close as *const _ as usize },
1220        56usize,
1221        concat!(
1222            "Offset of field: ",
1223            stringify!(__sFILE),
1224            "::",
1225            stringify!(_close)
1226        )
1227    );
1228    assert_eq!(
1229        unsafe { &(*(::std::ptr::null::<__sFILE>()))._read as *const _ as usize },
1230        64usize,
1231        concat!(
1232            "Offset of field: ",
1233            stringify!(__sFILE),
1234            "::",
1235            stringify!(_read)
1236        )
1237    );
1238    assert_eq!(
1239        unsafe { &(*(::std::ptr::null::<__sFILE>()))._seek as *const _ as usize },
1240        72usize,
1241        concat!(
1242            "Offset of field: ",
1243            stringify!(__sFILE),
1244            "::",
1245            stringify!(_seek)
1246        )
1247    );
1248    assert_eq!(
1249        unsafe { &(*(::std::ptr::null::<__sFILE>()))._write as *const _ as usize },
1250        80usize,
1251        concat!(
1252            "Offset of field: ",
1253            stringify!(__sFILE),
1254            "::",
1255            stringify!(_write)
1256        )
1257    );
1258    assert_eq!(
1259        unsafe { &(*(::std::ptr::null::<__sFILE>()))._ub as *const _ as usize },
1260        88usize,
1261        concat!(
1262            "Offset of field: ",
1263            stringify!(__sFILE),
1264            "::",
1265            stringify!(_ub)
1266        )
1267    );
1268    assert_eq!(
1269        unsafe { &(*(::std::ptr::null::<__sFILE>()))._extra as *const _ as usize },
1270        104usize,
1271        concat!(
1272            "Offset of field: ",
1273            stringify!(__sFILE),
1274            "::",
1275            stringify!(_extra)
1276        )
1277    );
1278    assert_eq!(
1279        unsafe { &(*(::std::ptr::null::<__sFILE>()))._ur as *const _ as usize },
1280        112usize,
1281        concat!(
1282            "Offset of field: ",
1283            stringify!(__sFILE),
1284            "::",
1285            stringify!(_ur)
1286        )
1287    );
1288    assert_eq!(
1289        unsafe { &(*(::std::ptr::null::<__sFILE>()))._ubuf as *const _ as usize },
1290        116usize,
1291        concat!(
1292            "Offset of field: ",
1293            stringify!(__sFILE),
1294            "::",
1295            stringify!(_ubuf)
1296        )
1297    );
1298    assert_eq!(
1299        unsafe { &(*(::std::ptr::null::<__sFILE>()))._nbuf as *const _ as usize },
1300        119usize,
1301        concat!(
1302            "Offset of field: ",
1303            stringify!(__sFILE),
1304            "::",
1305            stringify!(_nbuf)
1306        )
1307    );
1308    assert_eq!(
1309        unsafe { &(*(::std::ptr::null::<__sFILE>()))._lb as *const _ as usize },
1310        120usize,
1311        concat!(
1312            "Offset of field: ",
1313            stringify!(__sFILE),
1314            "::",
1315            stringify!(_lb)
1316        )
1317    );
1318    assert_eq!(
1319        unsafe { &(*(::std::ptr::null::<__sFILE>()))._blksize as *const _ as usize },
1320        136usize,
1321        concat!(
1322            "Offset of field: ",
1323            stringify!(__sFILE),
1324            "::",
1325            stringify!(_blksize)
1326        )
1327    );
1328    assert_eq!(
1329        unsafe { &(*(::std::ptr::null::<__sFILE>()))._offset as *const _ as usize },
1330        144usize,
1331        concat!(
1332            "Offset of field: ",
1333            stringify!(__sFILE),
1334            "::",
1335            stringify!(_offset)
1336        )
1337    );
1338}
1339pub type FILE = __sFILE;
1340extern "C" {
1341    pub static mut __stdinp: *mut FILE;
1342}
1343extern "C" {
1344    pub static mut __stdoutp: *mut FILE;
1345}
1346extern "C" {
1347    pub static mut __stderrp: *mut FILE;
1348}
1349extern "C" {
1350    pub fn clearerr(arg1: *mut FILE);
1351}
1352extern "C" {
1353    pub fn fclose(arg1: *mut FILE) -> ::std::os::raw::c_int;
1354}
1355extern "C" {
1356    pub fn feof(arg1: *mut FILE) -> ::std::os::raw::c_int;
1357}
1358extern "C" {
1359    pub fn ferror(arg1: *mut FILE) -> ::std::os::raw::c_int;
1360}
1361extern "C" {
1362    pub fn fflush(arg1: *mut FILE) -> ::std::os::raw::c_int;
1363}
1364extern "C" {
1365    pub fn fgetc(arg1: *mut FILE) -> ::std::os::raw::c_int;
1366}
1367extern "C" {
1368    pub fn fgetpos(arg1: *mut FILE, arg2: *mut fpos_t) -> ::std::os::raw::c_int;
1369}
1370extern "C" {
1371    pub fn fgets(
1372        arg1: *mut ::std::os::raw::c_char,
1373        arg2: ::std::os::raw::c_int,
1374        arg3: *mut FILE,
1375    ) -> *mut ::std::os::raw::c_char;
1376}
1377extern "C" {
1378    pub fn fopen(
1379        __filename: *const ::std::os::raw::c_char,
1380        __mode: *const ::std::os::raw::c_char,
1381    ) -> *mut FILE;
1382}
1383extern "C" {
1384    pub fn fprintf(
1385        arg1: *mut FILE,
1386        arg2: *const ::std::os::raw::c_char,
1387        ...
1388    ) -> ::std::os::raw::c_int;
1389}
1390extern "C" {
1391    pub fn fputc(arg1: ::std::os::raw::c_int, arg2: *mut FILE) -> ::std::os::raw::c_int;
1392}
1393extern "C" {
1394    pub fn fputs(arg1: *const ::std::os::raw::c_char, arg2: *mut FILE) -> ::std::os::raw::c_int;
1395}
1396extern "C" {
1397    pub fn fread(
1398        __ptr: *mut ::std::os::raw::c_void,
1399        __size: usize,
1400        __nitems: usize,
1401        __stream: *mut FILE,
1402    ) -> usize;
1403}
1404extern "C" {
1405    pub fn freopen(
1406        arg1: *const ::std::os::raw::c_char,
1407        arg2: *const ::std::os::raw::c_char,
1408        arg3: *mut FILE,
1409    ) -> *mut FILE;
1410}
1411extern "C" {
1412    pub fn fscanf(
1413        arg1: *mut FILE,
1414        arg2: *const ::std::os::raw::c_char,
1415        ...
1416    ) -> ::std::os::raw::c_int;
1417}
1418extern "C" {
1419    pub fn fseek(
1420        arg1: *mut FILE,
1421        arg2: ::std::os::raw::c_long,
1422        arg3: ::std::os::raw::c_int,
1423    ) -> ::std::os::raw::c_int;
1424}
1425extern "C" {
1426    pub fn fsetpos(arg1: *mut FILE, arg2: *const fpos_t) -> ::std::os::raw::c_int;
1427}
1428extern "C" {
1429    pub fn ftell(arg1: *mut FILE) -> ::std::os::raw::c_long;
1430}
1431extern "C" {
1432    pub fn fwrite(
1433        __ptr: *const ::std::os::raw::c_void,
1434        __size: usize,
1435        __nitems: usize,
1436        __stream: *mut FILE,
1437    ) -> usize;
1438}
1439extern "C" {
1440    pub fn getc(arg1: *mut FILE) -> ::std::os::raw::c_int;
1441}
1442extern "C" {
1443    pub fn getchar() -> ::std::os::raw::c_int;
1444}
1445extern "C" {
1446    pub fn gets(arg1: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
1447}
1448extern "C" {
1449    pub fn perror(arg1: *const ::std::os::raw::c_char);
1450}
1451extern "C" {
1452    pub fn printf(arg1: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int;
1453}
1454extern "C" {
1455    pub fn putc(arg1: ::std::os::raw::c_int, arg2: *mut FILE) -> ::std::os::raw::c_int;
1456}
1457extern "C" {
1458    pub fn putchar(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
1459}
1460extern "C" {
1461    pub fn puts(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
1462}
1463extern "C" {
1464    pub fn remove(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
1465}
1466extern "C" {
1467    pub fn rename(
1468        __old: *const ::std::os::raw::c_char,
1469        __new: *const ::std::os::raw::c_char,
1470    ) -> ::std::os::raw::c_int;
1471}
1472extern "C" {
1473    pub fn rewind(arg1: *mut FILE);
1474}
1475extern "C" {
1476    pub fn scanf(arg1: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int;
1477}
1478extern "C" {
1479    pub fn setbuf(arg1: *mut FILE, arg2: *mut ::std::os::raw::c_char);
1480}
1481extern "C" {
1482    pub fn setvbuf(
1483        arg1: *mut FILE,
1484        arg2: *mut ::std::os::raw::c_char,
1485        arg3: ::std::os::raw::c_int,
1486        arg4: usize,
1487    ) -> ::std::os::raw::c_int;
1488}
1489extern "C" {
1490    pub fn sprintf(
1491        arg1: *mut ::std::os::raw::c_char,
1492        arg2: *const ::std::os::raw::c_char,
1493        ...
1494    ) -> ::std::os::raw::c_int;
1495}
1496extern "C" {
1497    pub fn sscanf(
1498        arg1: *const ::std::os::raw::c_char,
1499        arg2: *const ::std::os::raw::c_char,
1500        ...
1501    ) -> ::std::os::raw::c_int;
1502}
1503extern "C" {
1504    pub fn tmpfile() -> *mut FILE;
1505}
1506extern "C" {
1507    pub fn tmpnam(arg1: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
1508}
1509extern "C" {
1510    pub fn ungetc(arg1: ::std::os::raw::c_int, arg2: *mut FILE) -> ::std::os::raw::c_int;
1511}
1512extern "C" {
1513    pub fn vfprintf(
1514        arg1: *mut FILE,
1515        arg2: *const ::std::os::raw::c_char,
1516        arg3: *mut __va_list_tag,
1517    ) -> ::std::os::raw::c_int;
1518}
1519extern "C" {
1520    pub fn vprintf(
1521        arg1: *const ::std::os::raw::c_char,
1522        arg2: *mut __va_list_tag,
1523    ) -> ::std::os::raw::c_int;
1524}
1525extern "C" {
1526    pub fn vsprintf(
1527        arg1: *mut ::std::os::raw::c_char,
1528        arg2: *const ::std::os::raw::c_char,
1529        arg3: *mut __va_list_tag,
1530    ) -> ::std::os::raw::c_int;
1531}
1532extern "C" {
1533    pub fn ctermid(arg1: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
1534}
1535extern "C" {
1536    pub fn fdopen(arg1: ::std::os::raw::c_int, arg2: *const ::std::os::raw::c_char) -> *mut FILE;
1537}
1538extern "C" {
1539    pub fn fileno(arg1: *mut FILE) -> ::std::os::raw::c_int;
1540}
1541extern "C" {
1542    pub fn pclose(arg1: *mut FILE) -> ::std::os::raw::c_int;
1543}
1544extern "C" {
1545    pub fn popen(
1546        arg1: *const ::std::os::raw::c_char,
1547        arg2: *const ::std::os::raw::c_char,
1548    ) -> *mut FILE;
1549}
1550extern "C" {
1551    pub fn __srget(arg1: *mut FILE) -> ::std::os::raw::c_int;
1552}
1553extern "C" {
1554    pub fn __svfscanf(
1555        arg1: *mut FILE,
1556        arg2: *const ::std::os::raw::c_char,
1557        arg3: *mut __va_list_tag,
1558    ) -> ::std::os::raw::c_int;
1559}
1560extern "C" {
1561    pub fn __swbuf(arg1: ::std::os::raw::c_int, arg2: *mut FILE) -> ::std::os::raw::c_int;
1562}
1563extern "C" {
1564    pub fn flockfile(arg1: *mut FILE);
1565}
1566extern "C" {
1567    pub fn ftrylockfile(arg1: *mut FILE) -> ::std::os::raw::c_int;
1568}
1569extern "C" {
1570    pub fn funlockfile(arg1: *mut FILE);
1571}
1572extern "C" {
1573    pub fn getc_unlocked(arg1: *mut FILE) -> ::std::os::raw::c_int;
1574}
1575extern "C" {
1576    pub fn getchar_unlocked() -> ::std::os::raw::c_int;
1577}
1578extern "C" {
1579    pub fn putc_unlocked(arg1: ::std::os::raw::c_int, arg2: *mut FILE) -> ::std::os::raw::c_int;
1580}
1581extern "C" {
1582    pub fn putchar_unlocked(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
1583}
1584extern "C" {
1585    pub fn getw(arg1: *mut FILE) -> ::std::os::raw::c_int;
1586}
1587extern "C" {
1588    pub fn putw(arg1: ::std::os::raw::c_int, arg2: *mut FILE) -> ::std::os::raw::c_int;
1589}
1590extern "C" {
1591    pub fn tempnam(
1592        __dir: *const ::std::os::raw::c_char,
1593        __prefix: *const ::std::os::raw::c_char,
1594    ) -> *mut ::std::os::raw::c_char;
1595}
1596pub type off_t = __darwin_off_t;
1597extern "C" {
1598    pub fn fseeko(
1599        __stream: *mut FILE,
1600        __offset: off_t,
1601        __whence: ::std::os::raw::c_int,
1602    ) -> ::std::os::raw::c_int;
1603}
1604extern "C" {
1605    pub fn ftello(__stream: *mut FILE) -> off_t;
1606}
1607extern "C" {
1608    pub fn snprintf(
1609        __str: *mut ::std::os::raw::c_char,
1610        __size: ::std::os::raw::c_ulong,
1611        __format: *const ::std::os::raw::c_char,
1612        ...
1613    ) -> ::std::os::raw::c_int;
1614}
1615extern "C" {
1616    pub fn vfscanf(
1617        __stream: *mut FILE,
1618        __format: *const ::std::os::raw::c_char,
1619        arg1: *mut __va_list_tag,
1620    ) -> ::std::os::raw::c_int;
1621}
1622extern "C" {
1623    pub fn vscanf(
1624        __format: *const ::std::os::raw::c_char,
1625        arg1: *mut __va_list_tag,
1626    ) -> ::std::os::raw::c_int;
1627}
1628extern "C" {
1629    pub fn vsnprintf(
1630        __str: *mut ::std::os::raw::c_char,
1631        __size: ::std::os::raw::c_ulong,
1632        __format: *const ::std::os::raw::c_char,
1633        arg1: *mut __va_list_tag,
1634    ) -> ::std::os::raw::c_int;
1635}
1636extern "C" {
1637    pub fn vsscanf(
1638        __str: *const ::std::os::raw::c_char,
1639        __format: *const ::std::os::raw::c_char,
1640        arg1: *mut __va_list_tag,
1641    ) -> ::std::os::raw::c_int;
1642}
1643extern "C" {
1644    pub fn dprintf(
1645        arg1: ::std::os::raw::c_int,
1646        arg2: *const ::std::os::raw::c_char,
1647        ...
1648    ) -> ::std::os::raw::c_int;
1649}
1650extern "C" {
1651    pub fn vdprintf(
1652        arg1: ::std::os::raw::c_int,
1653        arg2: *const ::std::os::raw::c_char,
1654        arg3: *mut __va_list_tag,
1655    ) -> ::std::os::raw::c_int;
1656}
1657extern "C" {
1658    pub fn getdelim(
1659        __linep: *mut *mut ::std::os::raw::c_char,
1660        __linecapp: *mut usize,
1661        __delimiter: ::std::os::raw::c_int,
1662        __stream: *mut FILE,
1663    ) -> isize;
1664}
1665extern "C" {
1666    pub fn getline(
1667        __linep: *mut *mut ::std::os::raw::c_char,
1668        __linecapp: *mut usize,
1669        __stream: *mut FILE,
1670    ) -> isize;
1671}
1672extern "C" {
1673    pub static sys_nerr: ::std::os::raw::c_int;
1674}
1675extern "C" {
1676    pub static mut sys_errlist: [*const ::std::os::raw::c_char; 0usize];
1677}
1678extern "C" {
1679    pub fn asprintf(
1680        arg1: *mut *mut ::std::os::raw::c_char,
1681        arg2: *const ::std::os::raw::c_char,
1682        ...
1683    ) -> ::std::os::raw::c_int;
1684}
1685extern "C" {
1686    pub fn ctermid_r(arg1: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
1687}
1688extern "C" {
1689    pub fn fgetln(arg1: *mut FILE, arg2: *mut usize) -> *mut ::std::os::raw::c_char;
1690}
1691extern "C" {
1692    pub fn fmtcheck(
1693        arg1: *const ::std::os::raw::c_char,
1694        arg2: *const ::std::os::raw::c_char,
1695    ) -> *const ::std::os::raw::c_char;
1696}
1697extern "C" {
1698    pub fn fpurge(arg1: *mut FILE) -> ::std::os::raw::c_int;
1699}
1700extern "C" {
1701    pub fn setbuffer(
1702        arg1: *mut FILE,
1703        arg2: *mut ::std::os::raw::c_char,
1704        arg3: ::std::os::raw::c_int,
1705    );
1706}
1707extern "C" {
1708    pub fn setlinebuf(arg1: *mut FILE) -> ::std::os::raw::c_int;
1709}
1710extern "C" {
1711    pub fn vasprintf(
1712        arg1: *mut *mut ::std::os::raw::c_char,
1713        arg2: *const ::std::os::raw::c_char,
1714        arg3: *mut __va_list_tag,
1715    ) -> ::std::os::raw::c_int;
1716}
1717extern "C" {
1718    pub fn zopen(
1719        arg1: *const ::std::os::raw::c_char,
1720        arg2: *const ::std::os::raw::c_char,
1721        arg3: ::std::os::raw::c_int,
1722    ) -> *mut FILE;
1723}
1724extern "C" {
1725    pub fn funopen(
1726        arg1: *const ::std::os::raw::c_void,
1727        arg2: ::std::option::Option<
1728            unsafe extern "C" fn(
1729                arg1: *mut ::std::os::raw::c_void,
1730                arg2: *mut ::std::os::raw::c_char,
1731                arg3: ::std::os::raw::c_int,
1732            ) -> ::std::os::raw::c_int,
1733        >,
1734        arg3: ::std::option::Option<
1735            unsafe extern "C" fn(
1736                arg1: *mut ::std::os::raw::c_void,
1737                arg2: *const ::std::os::raw::c_char,
1738                arg3: ::std::os::raw::c_int,
1739            ) -> ::std::os::raw::c_int,
1740        >,
1741        arg4: ::std::option::Option<
1742            unsafe extern "C" fn(
1743                arg1: *mut ::std::os::raw::c_void,
1744                arg2: fpos_t,
1745                arg3: ::std::os::raw::c_int,
1746            ) -> fpos_t,
1747        >,
1748        arg5: ::std::option::Option<
1749            unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int,
1750        >,
1751    ) -> *mut FILE;
1752}
1753pub mod dc1394iidc_version_t {
1754    #[doc = " List of IIDC versions"]
1755    #[doc = ""]
1756    #[doc = " Currently, the following versions exist: 1.04, 1.20, PTGREY, 1.30 and 1.31 (1.32 coming soon)"]
1757    #[doc = " Observing other versions means that there\'s a bug crawling somewhere."]
1758    pub type Type = u32;
1759    pub const DC1394_IIDC_VERSION_1_04: Type = 544;
1760    pub const DC1394_IIDC_VERSION_1_20: Type = 545;
1761    pub const DC1394_IIDC_VERSION_PTGREY: Type = 546;
1762    pub const DC1394_IIDC_VERSION_1_30: Type = 547;
1763    pub const DC1394_IIDC_VERSION_1_31: Type = 548;
1764    pub const DC1394_IIDC_VERSION_1_32: Type = 549;
1765    pub const DC1394_IIDC_VERSION_1_33: Type = 550;
1766    pub const DC1394_IIDC_VERSION_1_34: Type = 551;
1767    pub const DC1394_IIDC_VERSION_1_35: Type = 552;
1768    pub const DC1394_IIDC_VERSION_1_36: Type = 553;
1769    pub const DC1394_IIDC_VERSION_1_37: Type = 554;
1770    pub const DC1394_IIDC_VERSION_1_38: Type = 555;
1771    pub const DC1394_IIDC_VERSION_1_39: Type = 556;
1772}
1773pub mod dc1394power_class_t {
1774    #[doc = " Enumeration of power classes"]
1775    #[doc = ""]
1776    #[doc = " This is currently not used in libdc1394."]
1777    pub type Type = u32;
1778    pub const DC1394_POWER_CLASS_NONE: Type = 608;
1779    pub const DC1394_POWER_CLASS_PROV_MIN_15W: Type = 609;
1780    pub const DC1394_POWER_CLASS_PROV_MIN_30W: Type = 610;
1781    pub const DC1394_POWER_CLASS_PROV_MIN_45W: Type = 611;
1782    pub const DC1394_POWER_CLASS_USES_MAX_1W: Type = 612;
1783    pub const DC1394_POWER_CLASS_USES_MAX_3W: Type = 613;
1784    pub const DC1394_POWER_CLASS_USES_MAX_6W: Type = 614;
1785    pub const DC1394_POWER_CLASS_USES_MAX_10W: Type = 615;
1786}
1787pub mod dc1394phy_delay_t {
1788    #[doc = " Enumeration of PHY delays"]
1789    #[doc = ""]
1790    #[doc = " This is currently not used in libdc1394."]
1791    pub type Type = u32;
1792    pub const DC1394_PHY_DELAY_MAX_144_NS: Type = 640;
1793    pub const DC1394_PHY_DELAY_UNKNOWN_0: Type = 641;
1794    pub const DC1394_PHY_DELAY_UNKNOWN_1: Type = 642;
1795    pub const DC1394_PHY_DELAY_UNKNOWN_2: Type = 643;
1796}
1797#[doc = " Camera structure"]
1798#[doc = ""]
1799#[doc = " This structure represents the camera in libdc1394. It contains a number of useful static information, such as model/vendor names,"]
1800#[doc = " a few capabilities, some ROM offsets, a unique identifier, etc..."]
1801#[repr(C)]
1802#[derive(Debug, Copy, Clone)]
1803pub struct __dc1394_camera {
1804    pub guid: u64,
1805    pub unit: ::std::os::raw::c_int,
1806    pub unit_spec_ID: u32,
1807    pub unit_sw_version: u32,
1808    pub unit_sub_sw_version: u32,
1809    pub command_registers_base: u32,
1810    pub unit_directory: u32,
1811    pub unit_dependent_directory: u32,
1812    pub advanced_features_csr: u64,
1813    pub PIO_control_csr: u64,
1814    pub SIO_control_csr: u64,
1815    pub strobe_control_csr: u64,
1816    pub format7_csr: [u64; 8usize],
1817    pub iidc_version: dc1394iidc_version_t::Type,
1818    pub vendor: *mut ::std::os::raw::c_char,
1819    pub model: *mut ::std::os::raw::c_char,
1820    pub vendor_id: u32,
1821    pub model_id: u32,
1822    pub bmode_capable: dc1394bool_t::Type,
1823    pub one_shot_capable: dc1394bool_t::Type,
1824    pub multi_shot_capable: dc1394bool_t::Type,
1825    pub can_switch_on_off: dc1394bool_t::Type,
1826    pub has_vmode_error_status: dc1394bool_t::Type,
1827    pub has_feature_error_status: dc1394bool_t::Type,
1828    pub max_mem_channel: ::std::os::raw::c_int,
1829    pub flags: u32,
1830}
1831#[test]
1832fn bindgen_test_layout___dc1394_camera() {
1833    assert_eq!(
1834        ::std::mem::size_of::<__dc1394_camera>(),
1835        200usize,
1836        concat!("Size of: ", stringify!(__dc1394_camera))
1837    );
1838    assert_eq!(
1839        ::std::mem::align_of::<__dc1394_camera>(),
1840        8usize,
1841        concat!("Alignment of ", stringify!(__dc1394_camera))
1842    );
1843    assert_eq!(
1844        unsafe { &(*(::std::ptr::null::<__dc1394_camera>())).guid as *const _ as usize },
1845        0usize,
1846        concat!(
1847            "Offset of field: ",
1848            stringify!(__dc1394_camera),
1849            "::",
1850            stringify!(guid)
1851        )
1852    );
1853    assert_eq!(
1854        unsafe { &(*(::std::ptr::null::<__dc1394_camera>())).unit as *const _ as usize },
1855        8usize,
1856        concat!(
1857            "Offset of field: ",
1858            stringify!(__dc1394_camera),
1859            "::",
1860            stringify!(unit)
1861        )
1862    );
1863    assert_eq!(
1864        unsafe { &(*(::std::ptr::null::<__dc1394_camera>())).unit_spec_ID as *const _ as usize },
1865        12usize,
1866        concat!(
1867            "Offset of field: ",
1868            stringify!(__dc1394_camera),
1869            "::",
1870            stringify!(unit_spec_ID)
1871        )
1872    );
1873    assert_eq!(
1874        unsafe { &(*(::std::ptr::null::<__dc1394_camera>())).unit_sw_version as *const _ as usize },
1875        16usize,
1876        concat!(
1877            "Offset of field: ",
1878            stringify!(__dc1394_camera),
1879            "::",
1880            stringify!(unit_sw_version)
1881        )
1882    );
1883    assert_eq!(
1884        unsafe {
1885            &(*(::std::ptr::null::<__dc1394_camera>())).unit_sub_sw_version as *const _ as usize
1886        },
1887        20usize,
1888        concat!(
1889            "Offset of field: ",
1890            stringify!(__dc1394_camera),
1891            "::",
1892            stringify!(unit_sub_sw_version)
1893        )
1894    );
1895    assert_eq!(
1896        unsafe {
1897            &(*(::std::ptr::null::<__dc1394_camera>())).command_registers_base as *const _ as usize
1898        },
1899        24usize,
1900        concat!(
1901            "Offset of field: ",
1902            stringify!(__dc1394_camera),
1903            "::",
1904            stringify!(command_registers_base)
1905        )
1906    );
1907    assert_eq!(
1908        unsafe { &(*(::std::ptr::null::<__dc1394_camera>())).unit_directory as *const _ as usize },
1909        28usize,
1910        concat!(
1911            "Offset of field: ",
1912            stringify!(__dc1394_camera),
1913            "::",
1914            stringify!(unit_directory)
1915        )
1916    );
1917    assert_eq!(
1918        unsafe {
1919            &(*(::std::ptr::null::<__dc1394_camera>())).unit_dependent_directory as *const _
1920                as usize
1921        },
1922        32usize,
1923        concat!(
1924            "Offset of field: ",
1925            stringify!(__dc1394_camera),
1926            "::",
1927            stringify!(unit_dependent_directory)
1928        )
1929    );
1930    assert_eq!(
1931        unsafe {
1932            &(*(::std::ptr::null::<__dc1394_camera>())).advanced_features_csr as *const _ as usize
1933        },
1934        40usize,
1935        concat!(
1936            "Offset of field: ",
1937            stringify!(__dc1394_camera),
1938            "::",
1939            stringify!(advanced_features_csr)
1940        )
1941    );
1942    assert_eq!(
1943        unsafe { &(*(::std::ptr::null::<__dc1394_camera>())).PIO_control_csr as *const _ as usize },
1944        48usize,
1945        concat!(
1946            "Offset of field: ",
1947            stringify!(__dc1394_camera),
1948            "::",
1949            stringify!(PIO_control_csr)
1950        )
1951    );
1952    assert_eq!(
1953        unsafe { &(*(::std::ptr::null::<__dc1394_camera>())).SIO_control_csr as *const _ as usize },
1954        56usize,
1955        concat!(
1956            "Offset of field: ",
1957            stringify!(__dc1394_camera),
1958            "::",
1959            stringify!(SIO_control_csr)
1960        )
1961    );
1962    assert_eq!(
1963        unsafe {
1964            &(*(::std::ptr::null::<__dc1394_camera>())).strobe_control_csr as *const _ as usize
1965        },
1966        64usize,
1967        concat!(
1968            "Offset of field: ",
1969            stringify!(__dc1394_camera),
1970            "::",
1971            stringify!(strobe_control_csr)
1972        )
1973    );
1974    assert_eq!(
1975        unsafe { &(*(::std::ptr::null::<__dc1394_camera>())).format7_csr as *const _ as usize },
1976        72usize,
1977        concat!(
1978            "Offset of field: ",
1979            stringify!(__dc1394_camera),
1980            "::",
1981            stringify!(format7_csr)
1982        )
1983    );
1984    assert_eq!(
1985        unsafe { &(*(::std::ptr::null::<__dc1394_camera>())).iidc_version as *const _ as usize },
1986        136usize,
1987        concat!(
1988            "Offset of field: ",
1989            stringify!(__dc1394_camera),
1990            "::",
1991            stringify!(iidc_version)
1992        )
1993    );
1994    assert_eq!(
1995        unsafe { &(*(::std::ptr::null::<__dc1394_camera>())).vendor as *const _ as usize },
1996        144usize,
1997        concat!(
1998            "Offset of field: ",
1999            stringify!(__dc1394_camera),
2000            "::",
2001            stringify!(vendor)
2002        )
2003    );
2004    assert_eq!(
2005        unsafe { &(*(::std::ptr::null::<__dc1394_camera>())).model as *const _ as usize },
2006        152usize,
2007        concat!(
2008            "Offset of field: ",
2009            stringify!(__dc1394_camera),
2010            "::",
2011            stringify!(model)
2012        )
2013    );
2014    assert_eq!(
2015        unsafe { &(*(::std::ptr::null::<__dc1394_camera>())).vendor_id as *const _ as usize },
2016        160usize,
2017        concat!(
2018            "Offset of field: ",
2019            stringify!(__dc1394_camera),
2020            "::",
2021            stringify!(vendor_id)
2022        )
2023    );
2024    assert_eq!(
2025        unsafe { &(*(::std::ptr::null::<__dc1394_camera>())).model_id as *const _ as usize },
2026        164usize,
2027        concat!(
2028            "Offset of field: ",
2029            stringify!(__dc1394_camera),
2030            "::",
2031            stringify!(model_id)
2032        )
2033    );
2034    assert_eq!(
2035        unsafe { &(*(::std::ptr::null::<__dc1394_camera>())).bmode_capable as *const _ as usize },
2036        168usize,
2037        concat!(
2038            "Offset of field: ",
2039            stringify!(__dc1394_camera),
2040            "::",
2041            stringify!(bmode_capable)
2042        )
2043    );
2044    assert_eq!(
2045        unsafe {
2046            &(*(::std::ptr::null::<__dc1394_camera>())).one_shot_capable as *const _ as usize
2047        },
2048        172usize,
2049        concat!(
2050            "Offset of field: ",
2051            stringify!(__dc1394_camera),
2052            "::",
2053            stringify!(one_shot_capable)
2054        )
2055    );
2056    assert_eq!(
2057        unsafe {
2058            &(*(::std::ptr::null::<__dc1394_camera>())).multi_shot_capable as *const _ as usize
2059        },
2060        176usize,
2061        concat!(
2062            "Offset of field: ",
2063            stringify!(__dc1394_camera),
2064            "::",
2065            stringify!(multi_shot_capable)
2066        )
2067    );
2068    assert_eq!(
2069        unsafe {
2070            &(*(::std::ptr::null::<__dc1394_camera>())).can_switch_on_off as *const _ as usize
2071        },
2072        180usize,
2073        concat!(
2074            "Offset of field: ",
2075            stringify!(__dc1394_camera),
2076            "::",
2077            stringify!(can_switch_on_off)
2078        )
2079    );
2080    assert_eq!(
2081        unsafe {
2082            &(*(::std::ptr::null::<__dc1394_camera>())).has_vmode_error_status as *const _ as usize
2083        },
2084        184usize,
2085        concat!(
2086            "Offset of field: ",
2087            stringify!(__dc1394_camera),
2088            "::",
2089            stringify!(has_vmode_error_status)
2090        )
2091    );
2092    assert_eq!(
2093        unsafe {
2094            &(*(::std::ptr::null::<__dc1394_camera>())).has_feature_error_status as *const _
2095                as usize
2096        },
2097        188usize,
2098        concat!(
2099            "Offset of field: ",
2100            stringify!(__dc1394_camera),
2101            "::",
2102            stringify!(has_feature_error_status)
2103        )
2104    );
2105    assert_eq!(
2106        unsafe { &(*(::std::ptr::null::<__dc1394_camera>())).max_mem_channel as *const _ as usize },
2107        192usize,
2108        concat!(
2109            "Offset of field: ",
2110            stringify!(__dc1394_camera),
2111            "::",
2112            stringify!(max_mem_channel)
2113        )
2114    );
2115    assert_eq!(
2116        unsafe { &(*(::std::ptr::null::<__dc1394_camera>())).flags as *const _ as usize },
2117        196usize,
2118        concat!(
2119            "Offset of field: ",
2120            stringify!(__dc1394_camera),
2121            "::",
2122            stringify!(flags)
2123        )
2124    );
2125}
2126pub type dc1394camera_t = __dc1394_camera;
2127#[doc = " A unique identifier for a functional camera unit"]
2128#[doc = ""]
2129#[doc = " Since a single camera can contain several functional units (think stereo cameras), the GUID is not enough to identify an IIDC camera."]
2130#[doc = " The unit number must also be used, hence this struct."]
2131#[repr(C)]
2132#[derive(Debug, Copy, Clone)]
2133pub struct dc1394camera_id_t {
2134    pub unit: u16,
2135    pub guid: u64,
2136}
2137#[test]
2138fn bindgen_test_layout_dc1394camera_id_t() {
2139    assert_eq!(
2140        ::std::mem::size_of::<dc1394camera_id_t>(),
2141        16usize,
2142        concat!("Size of: ", stringify!(dc1394camera_id_t))
2143    );
2144    assert_eq!(
2145        ::std::mem::align_of::<dc1394camera_id_t>(),
2146        8usize,
2147        concat!("Alignment of ", stringify!(dc1394camera_id_t))
2148    );
2149    assert_eq!(
2150        unsafe { &(*(::std::ptr::null::<dc1394camera_id_t>())).unit as *const _ as usize },
2151        0usize,
2152        concat!(
2153            "Offset of field: ",
2154            stringify!(dc1394camera_id_t),
2155            "::",
2156            stringify!(unit)
2157        )
2158    );
2159    assert_eq!(
2160        unsafe { &(*(::std::ptr::null::<dc1394camera_id_t>())).guid as *const _ as usize },
2161        8usize,
2162        concat!(
2163            "Offset of field: ",
2164            stringify!(dc1394camera_id_t),
2165            "::",
2166            stringify!(guid)
2167        )
2168    );
2169}
2170#[doc = " A list of cameras"]
2171#[doc = ""]
2172#[doc = " Usually returned by dc1394_camera_eumerate()."]
2173#[repr(C)]
2174#[derive(Debug, Copy, Clone)]
2175pub struct __dc1394camera_list_t {
2176    pub num: u32,
2177    pub ids: *mut dc1394camera_id_t,
2178}
2179#[test]
2180fn bindgen_test_layout___dc1394camera_list_t() {
2181    assert_eq!(
2182        ::std::mem::size_of::<__dc1394camera_list_t>(),
2183        16usize,
2184        concat!("Size of: ", stringify!(__dc1394camera_list_t))
2185    );
2186    assert_eq!(
2187        ::std::mem::align_of::<__dc1394camera_list_t>(),
2188        8usize,
2189        concat!("Alignment of ", stringify!(__dc1394camera_list_t))
2190    );
2191    assert_eq!(
2192        unsafe { &(*(::std::ptr::null::<__dc1394camera_list_t>())).num as *const _ as usize },
2193        0usize,
2194        concat!(
2195            "Offset of field: ",
2196            stringify!(__dc1394camera_list_t),
2197            "::",
2198            stringify!(num)
2199        )
2200    );
2201    assert_eq!(
2202        unsafe { &(*(::std::ptr::null::<__dc1394camera_list_t>())).ids as *const _ as usize },
2203        8usize,
2204        concat!(
2205            "Offset of field: ",
2206            stringify!(__dc1394camera_list_t),
2207            "::",
2208            stringify!(ids)
2209        )
2210    );
2211}
2212pub type dc1394camera_list_t = __dc1394camera_list_t;
2213#[repr(C)]
2214#[derive(Debug, Copy, Clone)]
2215pub struct __dc1394_t {
2216    _unused: [u8; 0],
2217}
2218pub type dc1394_t = __dc1394_t;
2219extern "C" {
2220    #[doc = " Creates a new context in which cameras can be searched and used. This should be called before using any other libdc1394 function."]
2221    pub fn dc1394_new() -> *mut dc1394_t;
2222}
2223extern "C" {
2224    #[doc = " Liberates a context. Last function to use in your program. After this, no libdc1394 function can be used."]
2225    pub fn dc1394_free(dc1394: *mut dc1394_t);
2226}
2227extern "C" {
2228    #[doc = " Sets and gets the broadcast flag of a camera. If the broadcast flag is set,"]
2229    #[doc = " all devices on the bus will execute the command. Useful to sync ISO start"]
2230    #[doc = " commands or setting a bunch of cameras at the same time. Broadcast only works"]
2231    #[doc = " with identical devices (brand/model). If the devices are not identical your"]
2232    #[doc = " mileage may vary. Some cameras may not answer broadcast commands at all. Also,"]
2233    #[doc = " this only works with cameras on the SAME bus (IOW, the same port)."]
2234    pub fn dc1394_camera_set_broadcast(
2235        camera: *mut dc1394camera_t,
2236        pwr: dc1394bool_t::Type,
2237    ) -> dc1394error_t::Type;
2238}
2239extern "C" {
2240    pub fn dc1394_camera_get_broadcast(
2241        camera: *mut dc1394camera_t,
2242        pwr: *mut dc1394bool_t::Type,
2243    ) -> dc1394error_t::Type;
2244}
2245extern "C" {
2246    #[doc = " Resets the IEEE1394 bus which camera is attached to.  Calling this function is"]
2247    #[doc = " \"rude\" to other devices because it causes them to re-enumerate on the bus and"]
2248    #[doc = " may cause a temporary disruption in their current activities.  Thus, use it"]
2249    #[doc = " sparingly.  Its primary use is if a program shuts down uncleanly and needs to"]
2250    #[doc = " free leftover ISO channels or bandwidth.  A bus reset will free those things"]
2251    #[doc = " as a side effect."]
2252    pub fn dc1394_reset_bus(camera: *mut dc1394camera_t) -> dc1394error_t::Type;
2253}
2254extern "C" {
2255    pub fn dc1394_read_cycle_timer(
2256        camera: *mut dc1394camera_t,
2257        cycle_timer: *mut u32,
2258        local_time: *mut u64,
2259    ) -> dc1394error_t::Type;
2260}
2261extern "C" {
2262    #[doc = " Gets the IEEE 1394 node ID of the camera."]
2263    pub fn dc1394_camera_get_node(
2264        camera: *mut dc1394camera_t,
2265        node: *mut u32,
2266        generation: *mut u32,
2267    ) -> dc1394error_t::Type;
2268}
2269extern "C" {
2270    #[doc = " Returns the list of cameras available on the computer. If present, multiple cards will be probed"]
2271    pub fn dc1394_camera_enumerate(
2272        dc1394: *mut dc1394_t,
2273        list: *mut *mut dc1394camera_list_t,
2274    ) -> dc1394error_t::Type;
2275}
2276extern "C" {
2277    #[doc = " Frees the memory allocated in dc1394_enumerate_cameras for the camera list"]
2278    pub fn dc1394_camera_free_list(list: *mut dc1394camera_list_t);
2279}
2280extern "C" {
2281    #[doc = " Create a new camera based on a GUID (Global Unique IDentifier)"]
2282    pub fn dc1394_camera_new(dc1394: *mut dc1394_t, guid: u64) -> *mut dc1394camera_t;
2283}
2284extern "C" {
2285    #[doc = " Create a new camera based on a GUID and a unit number (for multi-unit cameras)"]
2286    pub fn dc1394_camera_new_unit(
2287        dc1394: *mut dc1394_t,
2288        guid: u64,
2289        unit: ::std::os::raw::c_int,
2290    ) -> *mut dc1394camera_t;
2291}
2292extern "C" {
2293    #[doc = " Frees a camera structure"]
2294    pub fn dc1394_camera_free(camera: *mut dc1394camera_t);
2295}
2296extern "C" {
2297    #[doc = " Print various camera information, such as GUID, vendor, model, supported IIDC specs, etc..."]
2298    pub fn dc1394_camera_print_info(
2299        camera: *mut dc1394camera_t,
2300        fd: *mut FILE,
2301    ) -> dc1394error_t::Type;
2302}
2303extern "C" {
2304    #[doc = " Returns a pointer to a string identifying the platform for the cameras. Platforms strings are:"]
2305    #[doc = " juju, linux, macosx, windows, usb"]
2306    pub fn dc1394_camera_get_platform_string(
2307        camera: *mut dc1394camera_t,
2308        platform: *mut *const ::std::os::raw::c_char,
2309    ) -> dc1394error_t::Type;
2310}
2311pub mod dc1394trigger_mode_t {
2312    #[doc = " Enumeration of trigger modes"]
2313    pub type Type = u32;
2314    pub const DC1394_TRIGGER_MODE_0: Type = 384;
2315    pub const DC1394_TRIGGER_MODE_1: Type = 385;
2316    pub const DC1394_TRIGGER_MODE_2: Type = 386;
2317    pub const DC1394_TRIGGER_MODE_3: Type = 387;
2318    pub const DC1394_TRIGGER_MODE_4: Type = 388;
2319    pub const DC1394_TRIGGER_MODE_5: Type = 389;
2320    pub const DC1394_TRIGGER_MODE_14: Type = 390;
2321    pub const DC1394_TRIGGER_MODE_15: Type = 391;
2322}
2323pub mod dc1394feature_t {
2324    #[doc = " Enumeration of camera features"]
2325    pub type Type = u32;
2326    pub const DC1394_FEATURE_BRIGHTNESS: Type = 416;
2327    pub const DC1394_FEATURE_EXPOSURE: Type = 417;
2328    pub const DC1394_FEATURE_SHARPNESS: Type = 418;
2329    pub const DC1394_FEATURE_WHITE_BALANCE: Type = 419;
2330    pub const DC1394_FEATURE_HUE: Type = 420;
2331    pub const DC1394_FEATURE_SATURATION: Type = 421;
2332    pub const DC1394_FEATURE_GAMMA: Type = 422;
2333    pub const DC1394_FEATURE_SHUTTER: Type = 423;
2334    pub const DC1394_FEATURE_GAIN: Type = 424;
2335    pub const DC1394_FEATURE_IRIS: Type = 425;
2336    pub const DC1394_FEATURE_FOCUS: Type = 426;
2337    pub const DC1394_FEATURE_TEMPERATURE: Type = 427;
2338    pub const DC1394_FEATURE_TRIGGER: Type = 428;
2339    pub const DC1394_FEATURE_TRIGGER_DELAY: Type = 429;
2340    pub const DC1394_FEATURE_WHITE_SHADING: Type = 430;
2341    pub const DC1394_FEATURE_FRAME_RATE: Type = 431;
2342    pub const DC1394_FEATURE_ZOOM: Type = 432;
2343    pub const DC1394_FEATURE_PAN: Type = 433;
2344    pub const DC1394_FEATURE_TILT: Type = 434;
2345    pub const DC1394_FEATURE_OPTICAL_FILTER: Type = 435;
2346    pub const DC1394_FEATURE_CAPTURE_SIZE: Type = 436;
2347    pub const DC1394_FEATURE_CAPTURE_QUALITY: Type = 437;
2348}
2349pub mod dc1394trigger_source_t {
2350    #[doc = " Enumeration of trigger sources"]
2351    pub type Type = u32;
2352    pub const DC1394_TRIGGER_SOURCE_0: Type = 576;
2353    pub const DC1394_TRIGGER_SOURCE_1: Type = 577;
2354    pub const DC1394_TRIGGER_SOURCE_2: Type = 578;
2355    pub const DC1394_TRIGGER_SOURCE_3: Type = 579;
2356    pub const DC1394_TRIGGER_SOURCE_SOFTWARE: Type = 580;
2357}
2358pub mod dc1394trigger_polarity_t {
2359    #[doc = " External trigger polarity"]
2360    pub type Type = u32;
2361    pub const DC1394_TRIGGER_ACTIVE_LOW: Type = 704;
2362    pub const DC1394_TRIGGER_ACTIVE_HIGH: Type = 705;
2363}
2364pub mod dc1394feature_mode_t {
2365    #[doc = " Control modes for a feature (excl. absolute control)"]
2366    pub type Type = u32;
2367    pub const DC1394_FEATURE_MODE_MANUAL: Type = 736;
2368    pub const DC1394_FEATURE_MODE_AUTO: Type = 737;
2369    pub const DC1394_FEATURE_MODE_ONE_PUSH_AUTO: Type = 738;
2370}
2371#[doc = " List of feature modes"]
2372#[repr(C)]
2373#[derive(Debug, Copy, Clone)]
2374pub struct dc1394feature_modes_t {
2375    pub num: u32,
2376    pub modes: [dc1394feature_mode_t::Type; 3usize],
2377}
2378#[test]
2379fn bindgen_test_layout_dc1394feature_modes_t() {
2380    assert_eq!(
2381        ::std::mem::size_of::<dc1394feature_modes_t>(),
2382        16usize,
2383        concat!("Size of: ", stringify!(dc1394feature_modes_t))
2384    );
2385    assert_eq!(
2386        ::std::mem::align_of::<dc1394feature_modes_t>(),
2387        4usize,
2388        concat!("Alignment of ", stringify!(dc1394feature_modes_t))
2389    );
2390    assert_eq!(
2391        unsafe { &(*(::std::ptr::null::<dc1394feature_modes_t>())).num as *const _ as usize },
2392        0usize,
2393        concat!(
2394            "Offset of field: ",
2395            stringify!(dc1394feature_modes_t),
2396            "::",
2397            stringify!(num)
2398        )
2399    );
2400    assert_eq!(
2401        unsafe { &(*(::std::ptr::null::<dc1394feature_modes_t>())).modes as *const _ as usize },
2402        4usize,
2403        concat!(
2404            "Offset of field: ",
2405            stringify!(dc1394feature_modes_t),
2406            "::",
2407            stringify!(modes)
2408        )
2409    );
2410}
2411#[doc = " List of trigger modes"]
2412#[repr(C)]
2413#[derive(Debug, Copy, Clone)]
2414pub struct dc1394trigger_modes_t {
2415    pub num: u32,
2416    pub modes: [dc1394trigger_mode_t::Type; 8usize],
2417}
2418#[test]
2419fn bindgen_test_layout_dc1394trigger_modes_t() {
2420    assert_eq!(
2421        ::std::mem::size_of::<dc1394trigger_modes_t>(),
2422        36usize,
2423        concat!("Size of: ", stringify!(dc1394trigger_modes_t))
2424    );
2425    assert_eq!(
2426        ::std::mem::align_of::<dc1394trigger_modes_t>(),
2427        4usize,
2428        concat!("Alignment of ", stringify!(dc1394trigger_modes_t))
2429    );
2430    assert_eq!(
2431        unsafe { &(*(::std::ptr::null::<dc1394trigger_modes_t>())).num as *const _ as usize },
2432        0usize,
2433        concat!(
2434            "Offset of field: ",
2435            stringify!(dc1394trigger_modes_t),
2436            "::",
2437            stringify!(num)
2438        )
2439    );
2440    assert_eq!(
2441        unsafe { &(*(::std::ptr::null::<dc1394trigger_modes_t>())).modes as *const _ as usize },
2442        4usize,
2443        concat!(
2444            "Offset of field: ",
2445            stringify!(dc1394trigger_modes_t),
2446            "::",
2447            stringify!(modes)
2448        )
2449    );
2450}
2451#[doc = " List of trigger sources"]
2452#[repr(C)]
2453#[derive(Debug, Copy, Clone)]
2454pub struct dc1394trigger_sources_t {
2455    pub num: u32,
2456    pub sources: [dc1394trigger_source_t::Type; 5usize],
2457}
2458#[test]
2459fn bindgen_test_layout_dc1394trigger_sources_t() {
2460    assert_eq!(
2461        ::std::mem::size_of::<dc1394trigger_sources_t>(),
2462        24usize,
2463        concat!("Size of: ", stringify!(dc1394trigger_sources_t))
2464    );
2465    assert_eq!(
2466        ::std::mem::align_of::<dc1394trigger_sources_t>(),
2467        4usize,
2468        concat!("Alignment of ", stringify!(dc1394trigger_sources_t))
2469    );
2470    assert_eq!(
2471        unsafe { &(*(::std::ptr::null::<dc1394trigger_sources_t>())).num as *const _ as usize },
2472        0usize,
2473        concat!(
2474            "Offset of field: ",
2475            stringify!(dc1394trigger_sources_t),
2476            "::",
2477            stringify!(num)
2478        )
2479    );
2480    assert_eq!(
2481        unsafe { &(*(::std::ptr::null::<dc1394trigger_sources_t>())).sources as *const _ as usize },
2482        4usize,
2483        concat!(
2484            "Offset of field: ",
2485            stringify!(dc1394trigger_sources_t),
2486            "::",
2487            stringify!(sources)
2488        )
2489    );
2490}
2491#[doc = " A structure containing all information about a feature."]
2492#[doc = ""]
2493#[doc = " Some fields are only valid for some features (e.g. trigger, white balance,...)"]
2494#[repr(C)]
2495#[derive(Debug, Copy, Clone)]
2496pub struct __dc1394feature_info_t_struct {
2497    pub id: dc1394feature_t::Type,
2498    pub available: dc1394bool_t::Type,
2499    pub absolute_capable: dc1394bool_t::Type,
2500    pub readout_capable: dc1394bool_t::Type,
2501    pub on_off_capable: dc1394bool_t::Type,
2502    pub polarity_capable: dc1394bool_t::Type,
2503    pub is_on: dc1394switch_t::Type,
2504    pub current_mode: dc1394feature_mode_t::Type,
2505    pub modes: dc1394feature_modes_t,
2506    pub trigger_modes: dc1394trigger_modes_t,
2507    pub trigger_mode: dc1394trigger_mode_t::Type,
2508    pub trigger_polarity: dc1394trigger_polarity_t::Type,
2509    pub trigger_sources: dc1394trigger_sources_t,
2510    pub trigger_source: dc1394trigger_source_t::Type,
2511    pub min: u32,
2512    pub max: u32,
2513    pub value: u32,
2514    pub BU_value: u32,
2515    pub RV_value: u32,
2516    pub B_value: u32,
2517    pub R_value: u32,
2518    pub G_value: u32,
2519    pub target_value: u32,
2520    pub abs_control: dc1394switch_t::Type,
2521    pub abs_value: f32,
2522    pub abs_max: f32,
2523    pub abs_min: f32,
2524}
2525#[test]
2526fn bindgen_test_layout___dc1394feature_info_t_struct() {
2527    assert_eq!(
2528        ::std::mem::size_of::<__dc1394feature_info_t_struct>(),
2529        172usize,
2530        concat!("Size of: ", stringify!(__dc1394feature_info_t_struct))
2531    );
2532    assert_eq!(
2533        ::std::mem::align_of::<__dc1394feature_info_t_struct>(),
2534        4usize,
2535        concat!("Alignment of ", stringify!(__dc1394feature_info_t_struct))
2536    );
2537    assert_eq!(
2538        unsafe {
2539            &(*(::std::ptr::null::<__dc1394feature_info_t_struct>())).id as *const _ as usize
2540        },
2541        0usize,
2542        concat!(
2543            "Offset of field: ",
2544            stringify!(__dc1394feature_info_t_struct),
2545            "::",
2546            stringify!(id)
2547        )
2548    );
2549    assert_eq!(
2550        unsafe {
2551            &(*(::std::ptr::null::<__dc1394feature_info_t_struct>())).available as *const _ as usize
2552        },
2553        4usize,
2554        concat!(
2555            "Offset of field: ",
2556            stringify!(__dc1394feature_info_t_struct),
2557            "::",
2558            stringify!(available)
2559        )
2560    );
2561    assert_eq!(
2562        unsafe {
2563            &(*(::std::ptr::null::<__dc1394feature_info_t_struct>())).absolute_capable as *const _
2564                as usize
2565        },
2566        8usize,
2567        concat!(
2568            "Offset of field: ",
2569            stringify!(__dc1394feature_info_t_struct),
2570            "::",
2571            stringify!(absolute_capable)
2572        )
2573    );
2574    assert_eq!(
2575        unsafe {
2576            &(*(::std::ptr::null::<__dc1394feature_info_t_struct>())).readout_capable as *const _
2577                as usize
2578        },
2579        12usize,
2580        concat!(
2581            "Offset of field: ",
2582            stringify!(__dc1394feature_info_t_struct),
2583            "::",
2584            stringify!(readout_capable)
2585        )
2586    );
2587    assert_eq!(
2588        unsafe {
2589            &(*(::std::ptr::null::<__dc1394feature_info_t_struct>())).on_off_capable as *const _
2590                as usize
2591        },
2592        16usize,
2593        concat!(
2594            "Offset of field: ",
2595            stringify!(__dc1394feature_info_t_struct),
2596            "::",
2597            stringify!(on_off_capable)
2598        )
2599    );
2600    assert_eq!(
2601        unsafe {
2602            &(*(::std::ptr::null::<__dc1394feature_info_t_struct>())).polarity_capable as *const _
2603                as usize
2604        },
2605        20usize,
2606        concat!(
2607            "Offset of field: ",
2608            stringify!(__dc1394feature_info_t_struct),
2609            "::",
2610            stringify!(polarity_capable)
2611        )
2612    );
2613    assert_eq!(
2614        unsafe {
2615            &(*(::std::ptr::null::<__dc1394feature_info_t_struct>())).is_on as *const _ as usize
2616        },
2617        24usize,
2618        concat!(
2619            "Offset of field: ",
2620            stringify!(__dc1394feature_info_t_struct),
2621            "::",
2622            stringify!(is_on)
2623        )
2624    );
2625    assert_eq!(
2626        unsafe {
2627            &(*(::std::ptr::null::<__dc1394feature_info_t_struct>())).current_mode as *const _
2628                as usize
2629        },
2630        28usize,
2631        concat!(
2632            "Offset of field: ",
2633            stringify!(__dc1394feature_info_t_struct),
2634            "::",
2635            stringify!(current_mode)
2636        )
2637    );
2638    assert_eq!(
2639        unsafe {
2640            &(*(::std::ptr::null::<__dc1394feature_info_t_struct>())).modes as *const _ as usize
2641        },
2642        32usize,
2643        concat!(
2644            "Offset of field: ",
2645            stringify!(__dc1394feature_info_t_struct),
2646            "::",
2647            stringify!(modes)
2648        )
2649    );
2650    assert_eq!(
2651        unsafe {
2652            &(*(::std::ptr::null::<__dc1394feature_info_t_struct>())).trigger_modes as *const _
2653                as usize
2654        },
2655        48usize,
2656        concat!(
2657            "Offset of field: ",
2658            stringify!(__dc1394feature_info_t_struct),
2659            "::",
2660            stringify!(trigger_modes)
2661        )
2662    );
2663    assert_eq!(
2664        unsafe {
2665            &(*(::std::ptr::null::<__dc1394feature_info_t_struct>())).trigger_mode as *const _
2666                as usize
2667        },
2668        84usize,
2669        concat!(
2670            "Offset of field: ",
2671            stringify!(__dc1394feature_info_t_struct),
2672            "::",
2673            stringify!(trigger_mode)
2674        )
2675    );
2676    assert_eq!(
2677        unsafe {
2678            &(*(::std::ptr::null::<__dc1394feature_info_t_struct>())).trigger_polarity as *const _
2679                as usize
2680        },
2681        88usize,
2682        concat!(
2683            "Offset of field: ",
2684            stringify!(__dc1394feature_info_t_struct),
2685            "::",
2686            stringify!(trigger_polarity)
2687        )
2688    );
2689    assert_eq!(
2690        unsafe {
2691            &(*(::std::ptr::null::<__dc1394feature_info_t_struct>())).trigger_sources as *const _
2692                as usize
2693        },
2694        92usize,
2695        concat!(
2696            "Offset of field: ",
2697            stringify!(__dc1394feature_info_t_struct),
2698            "::",
2699            stringify!(trigger_sources)
2700        )
2701    );
2702    assert_eq!(
2703        unsafe {
2704            &(*(::std::ptr::null::<__dc1394feature_info_t_struct>())).trigger_source as *const _
2705                as usize
2706        },
2707        116usize,
2708        concat!(
2709            "Offset of field: ",
2710            stringify!(__dc1394feature_info_t_struct),
2711            "::",
2712            stringify!(trigger_source)
2713        )
2714    );
2715    assert_eq!(
2716        unsafe {
2717            &(*(::std::ptr::null::<__dc1394feature_info_t_struct>())).min as *const _ as usize
2718        },
2719        120usize,
2720        concat!(
2721            "Offset of field: ",
2722            stringify!(__dc1394feature_info_t_struct),
2723            "::",
2724            stringify!(min)
2725        )
2726    );
2727    assert_eq!(
2728        unsafe {
2729            &(*(::std::ptr::null::<__dc1394feature_info_t_struct>())).max as *const _ as usize
2730        },
2731        124usize,
2732        concat!(
2733            "Offset of field: ",
2734            stringify!(__dc1394feature_info_t_struct),
2735            "::",
2736            stringify!(max)
2737        )
2738    );
2739    assert_eq!(
2740        unsafe {
2741            &(*(::std::ptr::null::<__dc1394feature_info_t_struct>())).value as *const _ as usize
2742        },
2743        128usize,
2744        concat!(
2745            "Offset of field: ",
2746            stringify!(__dc1394feature_info_t_struct),
2747            "::",
2748            stringify!(value)
2749        )
2750    );
2751    assert_eq!(
2752        unsafe {
2753            &(*(::std::ptr::null::<__dc1394feature_info_t_struct>())).BU_value as *const _ as usize
2754        },
2755        132usize,
2756        concat!(
2757            "Offset of field: ",
2758            stringify!(__dc1394feature_info_t_struct),
2759            "::",
2760            stringify!(BU_value)
2761        )
2762    );
2763    assert_eq!(
2764        unsafe {
2765            &(*(::std::ptr::null::<__dc1394feature_info_t_struct>())).RV_value as *const _ as usize
2766        },
2767        136usize,
2768        concat!(
2769            "Offset of field: ",
2770            stringify!(__dc1394feature_info_t_struct),
2771            "::",
2772            stringify!(RV_value)
2773        )
2774    );
2775    assert_eq!(
2776        unsafe {
2777            &(*(::std::ptr::null::<__dc1394feature_info_t_struct>())).B_value as *const _ as usize
2778        },
2779        140usize,
2780        concat!(
2781            "Offset of field: ",
2782            stringify!(__dc1394feature_info_t_struct),
2783            "::",
2784            stringify!(B_value)
2785        )
2786    );
2787    assert_eq!(
2788        unsafe {
2789            &(*(::std::ptr::null::<__dc1394feature_info_t_struct>())).R_value as *const _ as usize
2790        },
2791        144usize,
2792        concat!(
2793            "Offset of field: ",
2794            stringify!(__dc1394feature_info_t_struct),
2795            "::",
2796            stringify!(R_value)
2797        )
2798    );
2799    assert_eq!(
2800        unsafe {
2801            &(*(::std::ptr::null::<__dc1394feature_info_t_struct>())).G_value as *const _ as usize
2802        },
2803        148usize,
2804        concat!(
2805            "Offset of field: ",
2806            stringify!(__dc1394feature_info_t_struct),
2807            "::",
2808            stringify!(G_value)
2809        )
2810    );
2811    assert_eq!(
2812        unsafe {
2813            &(*(::std::ptr::null::<__dc1394feature_info_t_struct>())).target_value as *const _
2814                as usize
2815        },
2816        152usize,
2817        concat!(
2818            "Offset of field: ",
2819            stringify!(__dc1394feature_info_t_struct),
2820            "::",
2821            stringify!(target_value)
2822        )
2823    );
2824    assert_eq!(
2825        unsafe {
2826            &(*(::std::ptr::null::<__dc1394feature_info_t_struct>())).abs_control as *const _
2827                as usize
2828        },
2829        156usize,
2830        concat!(
2831            "Offset of field: ",
2832            stringify!(__dc1394feature_info_t_struct),
2833            "::",
2834            stringify!(abs_control)
2835        )
2836    );
2837    assert_eq!(
2838        unsafe {
2839            &(*(::std::ptr::null::<__dc1394feature_info_t_struct>())).abs_value as *const _ as usize
2840        },
2841        160usize,
2842        concat!(
2843            "Offset of field: ",
2844            stringify!(__dc1394feature_info_t_struct),
2845            "::",
2846            stringify!(abs_value)
2847        )
2848    );
2849    assert_eq!(
2850        unsafe {
2851            &(*(::std::ptr::null::<__dc1394feature_info_t_struct>())).abs_max as *const _ as usize
2852        },
2853        164usize,
2854        concat!(
2855            "Offset of field: ",
2856            stringify!(__dc1394feature_info_t_struct),
2857            "::",
2858            stringify!(abs_max)
2859        )
2860    );
2861    assert_eq!(
2862        unsafe {
2863            &(*(::std::ptr::null::<__dc1394feature_info_t_struct>())).abs_min as *const _ as usize
2864        },
2865        168usize,
2866        concat!(
2867            "Offset of field: ",
2868            stringify!(__dc1394feature_info_t_struct),
2869            "::",
2870            stringify!(abs_min)
2871        )
2872    );
2873}
2874pub type dc1394feature_info_t = __dc1394feature_info_t_struct;
2875#[doc = " The list of features"]
2876#[repr(C)]
2877#[derive(Debug, Copy, Clone)]
2878pub struct __dc1394featureset_t {
2879    pub feature: [dc1394feature_info_t; 22usize],
2880}
2881#[test]
2882fn bindgen_test_layout___dc1394featureset_t() {
2883    assert_eq!(
2884        ::std::mem::size_of::<__dc1394featureset_t>(),
2885        3784usize,
2886        concat!("Size of: ", stringify!(__dc1394featureset_t))
2887    );
2888    assert_eq!(
2889        ::std::mem::align_of::<__dc1394featureset_t>(),
2890        4usize,
2891        concat!("Alignment of ", stringify!(__dc1394featureset_t))
2892    );
2893    assert_eq!(
2894        unsafe { &(*(::std::ptr::null::<__dc1394featureset_t>())).feature as *const _ as usize },
2895        0usize,
2896        concat!(
2897            "Offset of field: ",
2898            stringify!(__dc1394featureset_t),
2899            "::",
2900            stringify!(feature)
2901        )
2902    );
2903}
2904pub type dc1394featureset_t = __dc1394featureset_t;
2905extern "C" {
2906    #[doc = " Collects the available features for the camera described by node and stores them in features."]
2907    pub fn dc1394_feature_get_all(
2908        camera: *mut dc1394camera_t,
2909        features: *mut dc1394featureset_t,
2910    ) -> dc1394error_t::Type;
2911}
2912extern "C" {
2913    #[doc = " Stores the bounds and options associated with the feature described by feature->feature_id"]
2914    pub fn dc1394_feature_get(
2915        camera: *mut dc1394camera_t,
2916        feature: *mut dc1394feature_info_t,
2917    ) -> dc1394error_t::Type;
2918}
2919extern "C" {
2920    #[doc = " Displays the bounds and options of the given feature"]
2921    pub fn dc1394_feature_print(
2922        feature: *mut dc1394feature_info_t,
2923        fd: *mut FILE,
2924    ) -> dc1394error_t::Type;
2925}
2926extern "C" {
2927    #[doc = " Displays the bounds and options of every feature supported by the camera"]
2928    pub fn dc1394_feature_print_all(
2929        features: *mut dc1394featureset_t,
2930        fd: *mut FILE,
2931    ) -> dc1394error_t::Type;
2932}
2933extern "C" {
2934    #[doc = " Gets the whitebalance values"]
2935    pub fn dc1394_feature_whitebalance_get_value(
2936        camera: *mut dc1394camera_t,
2937        u_b_value: *mut u32,
2938        v_r_value: *mut u32,
2939    ) -> dc1394error_t::Type;
2940}
2941extern "C" {
2942    #[doc = " Sets the whitebalance values"]
2943    pub fn dc1394_feature_whitebalance_set_value(
2944        camera: *mut dc1394camera_t,
2945        u_b_value: u32,
2946        v_r_value: u32,
2947    ) -> dc1394error_t::Type;
2948}
2949extern "C" {
2950    #[doc = " Gets the temperature values (target and current)"]
2951    pub fn dc1394_feature_temperature_get_value(
2952        camera: *mut dc1394camera_t,
2953        target_temperature: *mut u32,
2954        temperature: *mut u32,
2955    ) -> dc1394error_t::Type;
2956}
2957extern "C" {
2958    #[doc = " Sets the temperature values (target only) FIXME: COULD BE DROPPED? already in the standard feature_set_value()?"]
2959    pub fn dc1394_feature_temperature_set_value(
2960        camera: *mut dc1394camera_t,
2961        target_temperature: u32,
2962    ) -> dc1394error_t::Type;
2963}
2964extern "C" {
2965    #[doc = " Gets the white shading values"]
2966    pub fn dc1394_feature_whiteshading_get_value(
2967        camera: *mut dc1394camera_t,
2968        r_value: *mut u32,
2969        g_value: *mut u32,
2970        b_value: *mut u32,
2971    ) -> dc1394error_t::Type;
2972}
2973extern "C" {
2974    #[doc = " Sets the white shading values"]
2975    pub fn dc1394_feature_whiteshading_set_value(
2976        camera: *mut dc1394camera_t,
2977        r_value: u32,
2978        g_value: u32,
2979        b_value: u32,
2980    ) -> dc1394error_t::Type;
2981}
2982extern "C" {
2983    #[doc = " Gets the value of a feature"]
2984    pub fn dc1394_feature_get_value(
2985        camera: *mut dc1394camera_t,
2986        feature: dc1394feature_t::Type,
2987        value: *mut u32,
2988    ) -> dc1394error_t::Type;
2989}
2990extern "C" {
2991    #[doc = " Sets the value of a feature"]
2992    pub fn dc1394_feature_set_value(
2993        camera: *mut dc1394camera_t,
2994        feature: dc1394feature_t::Type,
2995        value: u32,
2996    ) -> dc1394error_t::Type;
2997}
2998extern "C" {
2999    #[doc = " Tells whether a feature is present or not"]
3000    pub fn dc1394_feature_is_present(
3001        camera: *mut dc1394camera_t,
3002        feature: dc1394feature_t::Type,
3003        value: *mut dc1394bool_t::Type,
3004    ) -> dc1394error_t::Type;
3005}
3006extern "C" {
3007    #[doc = " Tells whether a feature is readable or not"]
3008    pub fn dc1394_feature_is_readable(
3009        camera: *mut dc1394camera_t,
3010        feature: dc1394feature_t::Type,
3011        value: *mut dc1394bool_t::Type,
3012    ) -> dc1394error_t::Type;
3013}
3014extern "C" {
3015    #[doc = " Gets the boundaries of a feature"]
3016    pub fn dc1394_feature_get_boundaries(
3017        camera: *mut dc1394camera_t,
3018        feature: dc1394feature_t::Type,
3019        min: *mut u32,
3020        max: *mut u32,
3021    ) -> dc1394error_t::Type;
3022}
3023extern "C" {
3024    #[doc = " Tells whether a feature is switcheable or not (ON/OFF)"]
3025    pub fn dc1394_feature_is_switchable(
3026        camera: *mut dc1394camera_t,
3027        feature: dc1394feature_t::Type,
3028        value: *mut dc1394bool_t::Type,
3029    ) -> dc1394error_t::Type;
3030}
3031extern "C" {
3032    #[doc = " Gets the power status of a feature (ON or OFF)"]
3033    pub fn dc1394_feature_get_power(
3034        camera: *mut dc1394camera_t,
3035        feature: dc1394feature_t::Type,
3036        pwr: *mut dc1394switch_t::Type,
3037    ) -> dc1394error_t::Type;
3038}
3039extern "C" {
3040    #[doc = " Sets the power status of a feature (ON or OFF)"]
3041    pub fn dc1394_feature_set_power(
3042        camera: *mut dc1394camera_t,
3043        feature: dc1394feature_t::Type,
3044        pwr: dc1394switch_t::Type,
3045    ) -> dc1394error_t::Type;
3046}
3047extern "C" {
3048    #[doc = " Gets the list of control modes for a feature (manual, auto, etc...)"]
3049    pub fn dc1394_feature_get_modes(
3050        camera: *mut dc1394camera_t,
3051        feature: dc1394feature_t::Type,
3052        modes: *mut dc1394feature_modes_t,
3053    ) -> dc1394error_t::Type;
3054}
3055extern "C" {
3056    #[doc = " Gets the current control modes for a feature"]
3057    pub fn dc1394_feature_get_mode(
3058        camera: *mut dc1394camera_t,
3059        feature: dc1394feature_t::Type,
3060        mode: *mut dc1394feature_mode_t::Type,
3061    ) -> dc1394error_t::Type;
3062}
3063extern "C" {
3064    #[doc = " Sets the current control modes for a feature"]
3065    pub fn dc1394_feature_set_mode(
3066        camera: *mut dc1394camera_t,
3067        feature: dc1394feature_t::Type,
3068        mode: dc1394feature_mode_t::Type,
3069    ) -> dc1394error_t::Type;
3070}
3071extern "C" {
3072    #[doc = " Tells whether a feature can be controlled in absolute mode"]
3073    pub fn dc1394_feature_has_absolute_control(
3074        camera: *mut dc1394camera_t,
3075        feature: dc1394feature_t::Type,
3076        value: *mut dc1394bool_t::Type,
3077    ) -> dc1394error_t::Type;
3078}
3079extern "C" {
3080    #[doc = " Gets the absolute boundaries of a feature"]
3081    pub fn dc1394_feature_get_absolute_boundaries(
3082        camera: *mut dc1394camera_t,
3083        feature: dc1394feature_t::Type,
3084        min: *mut f32,
3085        max: *mut f32,
3086    ) -> dc1394error_t::Type;
3087}
3088extern "C" {
3089    #[doc = " Gets the absolute value of a feature"]
3090    pub fn dc1394_feature_get_absolute_value(
3091        camera: *mut dc1394camera_t,
3092        feature: dc1394feature_t::Type,
3093        value: *mut f32,
3094    ) -> dc1394error_t::Type;
3095}
3096extern "C" {
3097    #[doc = " Sets the absolute value of a feature"]
3098    pub fn dc1394_feature_set_absolute_value(
3099        camera: *mut dc1394camera_t,
3100        feature: dc1394feature_t::Type,
3101        value: f32,
3102    ) -> dc1394error_t::Type;
3103}
3104extern "C" {
3105    #[doc = " Gets the status of absolute control of a feature"]
3106    pub fn dc1394_feature_get_absolute_control(
3107        camera: *mut dc1394camera_t,
3108        feature: dc1394feature_t::Type,
3109        pwr: *mut dc1394switch_t::Type,
3110    ) -> dc1394error_t::Type;
3111}
3112extern "C" {
3113    #[doc = " Sets the feature in absolute control mode (ON/OFF)"]
3114    pub fn dc1394_feature_set_absolute_control(
3115        camera: *mut dc1394camera_t,
3116        feature: dc1394feature_t::Type,
3117        pwr: dc1394switch_t::Type,
3118    ) -> dc1394error_t::Type;
3119}
3120extern "C" {
3121    #[doc = " Sets the polarity of the external trigger"]
3122    pub fn dc1394_external_trigger_set_polarity(
3123        camera: *mut dc1394camera_t,
3124        polarity: dc1394trigger_polarity_t::Type,
3125    ) -> dc1394error_t::Type;
3126}
3127extern "C" {
3128    #[doc = " Gets the polarity of the external trigger"]
3129    pub fn dc1394_external_trigger_get_polarity(
3130        camera: *mut dc1394camera_t,
3131        polarity: *mut dc1394trigger_polarity_t::Type,
3132    ) -> dc1394error_t::Type;
3133}
3134extern "C" {
3135    #[doc = " Tells whether the external trigger can change its polarity or not."]
3136    pub fn dc1394_external_trigger_has_polarity(
3137        camera: *mut dc1394camera_t,
3138        polarity_capable: *mut dc1394bool_t::Type,
3139    ) -> dc1394error_t::Type;
3140}
3141extern "C" {
3142    #[doc = " Switch between internal and external trigger"]
3143    pub fn dc1394_external_trigger_set_power(
3144        camera: *mut dc1394camera_t,
3145        pwr: dc1394switch_t::Type,
3146    ) -> dc1394error_t::Type;
3147}
3148extern "C" {
3149    #[doc = " Gets the status of the external trigger"]
3150    pub fn dc1394_external_trigger_get_power(
3151        camera: *mut dc1394camera_t,
3152        pwr: *mut dc1394switch_t::Type,
3153    ) -> dc1394error_t::Type;
3154}
3155extern "C" {
3156    #[doc = " Sets the external trigger mode"]
3157    pub fn dc1394_external_trigger_set_mode(
3158        camera: *mut dc1394camera_t,
3159        mode: dc1394trigger_mode_t::Type,
3160    ) -> dc1394error_t::Type;
3161}
3162extern "C" {
3163    #[doc = " Gets the external trigger mode"]
3164    pub fn dc1394_external_trigger_get_mode(
3165        camera: *mut dc1394camera_t,
3166        mode: *mut dc1394trigger_mode_t::Type,
3167    ) -> dc1394error_t::Type;
3168}
3169extern "C" {
3170    #[doc = " Sets the external trigger source"]
3171    pub fn dc1394_external_trigger_set_source(
3172        camera: *mut dc1394camera_t,
3173        source: dc1394trigger_source_t::Type,
3174    ) -> dc1394error_t::Type;
3175}
3176extern "C" {
3177    #[doc = " Gets the external trigger source"]
3178    pub fn dc1394_external_trigger_get_source(
3179        camera: *mut dc1394camera_t,
3180        source: *mut dc1394trigger_source_t::Type,
3181    ) -> dc1394error_t::Type;
3182}
3183extern "C" {
3184    #[doc = " Gets the list of available external trigger source"]
3185    pub fn dc1394_external_trigger_get_supported_sources(
3186        camera: *mut dc1394camera_t,
3187        sources: *mut dc1394trigger_sources_t,
3188    ) -> dc1394error_t::Type;
3189}
3190extern "C" {
3191    #[doc = " Turn software trigger on or off"]
3192    pub fn dc1394_software_trigger_set_power(
3193        camera: *mut dc1394camera_t,
3194        pwr: dc1394switch_t::Type,
3195    ) -> dc1394error_t::Type;
3196}
3197extern "C" {
3198    #[doc = " Gets the state of software trigger"]
3199    pub fn dc1394_software_trigger_get_power(
3200        camera: *mut dc1394camera_t,
3201        pwr: *mut dc1394switch_t::Type,
3202    ) -> dc1394error_t::Type;
3203}
3204extern "C" {
3205    #[doc = " Sends a quadlet on the PIO (output)"]
3206    pub fn dc1394_pio_set(camera: *mut dc1394camera_t, value: u32) -> dc1394error_t::Type;
3207}
3208extern "C" {
3209    #[doc = " Gets the current quadlet at the PIO (input)"]
3210    pub fn dc1394_pio_get(camera: *mut dc1394camera_t, value: *mut u32) -> dc1394error_t::Type;
3211}
3212extern "C" {
3213    #[doc = " reset a camera to factory default settings"]
3214    pub fn dc1394_camera_reset(camera: *mut dc1394camera_t) -> dc1394error_t::Type;
3215}
3216extern "C" {
3217    #[doc = " turn a camera on or off"]
3218    pub fn dc1394_camera_set_power(
3219        camera: *mut dc1394camera_t,
3220        pwr: dc1394switch_t::Type,
3221    ) -> dc1394error_t::Type;
3222}
3223extern "C" {
3224    #[doc = " Download a camera setup from the memory."]
3225    pub fn dc1394_memory_busy(
3226        camera: *mut dc1394camera_t,
3227        value: *mut dc1394bool_t::Type,
3228    ) -> dc1394error_t::Type;
3229}
3230extern "C" {
3231    #[doc = " Uploads a camera setup in the memory."]
3232    #[doc = ""]
3233    #[doc = " Note that this operation can only be performed a certain number of"]
3234    #[doc = " times for a given camera, as it requires reprogramming of an EEPROM."]
3235    pub fn dc1394_memory_save(camera: *mut dc1394camera_t, channel: u32) -> dc1394error_t::Type;
3236}
3237extern "C" {
3238    #[doc = " Tells whether the writing of the camera setup in memory is finished or not."]
3239    pub fn dc1394_memory_load(camera: *mut dc1394camera_t, channel: u32) -> dc1394error_t::Type;
3240}
3241pub mod dc1394speed_t {
3242    #[doc = " Enumeration of iso data speeds"]
3243    #[doc = ""]
3244    #[doc = " Most (if not all) cameras are compatible with 400Mbps speed. Only older cameras (pre-1999) may still only work at sub-400"]
3245    #[doc = " speeds. However, speeds lower than 400Mbps are still useful: they can be used for longer distances (e.g. 10m cables)."]
3246    #[doc = " Speeds over 400Mbps are only available in \"B\" mode (DC1394_OPERATION_MODE_1394B)."]
3247    pub type Type = u32;
3248    pub const DC1394_ISO_SPEED_100: Type = 0;
3249    pub const DC1394_ISO_SPEED_200: Type = 1;
3250    pub const DC1394_ISO_SPEED_400: Type = 2;
3251    pub const DC1394_ISO_SPEED_800: Type = 3;
3252    pub const DC1394_ISO_SPEED_1600: Type = 4;
3253    pub const DC1394_ISO_SPEED_3200: Type = 5;
3254}
3255pub mod dc1394framerate_t {
3256    #[doc = " Enumeration of video framerates"]
3257    #[doc = ""]
3258    #[doc = " This enumeration is used for non-Format_7 modes. The framerate can be lower than expected if the exposure time is longer"]
3259    #[doc = " than the requested frame period. Framerate can be controlled in a number of other ways: framerate feature, external trigger,"]
3260    #[doc = " software trigger, shutter throttling and packet size (Format_7)"]
3261    pub type Type = u32;
3262    pub const DC1394_FRAMERATE_1_875: Type = 32;
3263    pub const DC1394_FRAMERATE_3_75: Type = 33;
3264    pub const DC1394_FRAMERATE_7_5: Type = 34;
3265    pub const DC1394_FRAMERATE_15: Type = 35;
3266    pub const DC1394_FRAMERATE_30: Type = 36;
3267    pub const DC1394_FRAMERATE_60: Type = 37;
3268    pub const DC1394_FRAMERATE_120: Type = 38;
3269    pub const DC1394_FRAMERATE_240: Type = 39;
3270}
3271pub mod dc1394operation_mode_t {
3272    #[doc = " Operation modes"]
3273    #[doc = ""]
3274    #[doc = " Two operation modes exist: the legacy and most common 1394a, and the newer 1394B. The latter allows speeds over 400Mbps, but"]
3275    #[doc = " can also be used at other speeds."]
3276    pub type Type = u32;
3277    pub const DC1394_OPERATION_MODE_LEGACY: Type = 480;
3278    pub const DC1394_OPERATION_MODE_1394B: Type = 481;
3279}
3280#[doc = " List of framerates"]
3281#[doc = ""]
3282#[doc = " dc1394framerates_t contains a list of available framerates for a particular video mode."]
3283#[repr(C)]
3284#[derive(Debug, Copy, Clone)]
3285pub struct dc1394framerates_t {
3286    pub num: u32,
3287    pub framerates: [dc1394framerate_t::Type; 8usize],
3288}
3289#[test]
3290fn bindgen_test_layout_dc1394framerates_t() {
3291    assert_eq!(
3292        ::std::mem::size_of::<dc1394framerates_t>(),
3293        36usize,
3294        concat!("Size of: ", stringify!(dc1394framerates_t))
3295    );
3296    assert_eq!(
3297        ::std::mem::align_of::<dc1394framerates_t>(),
3298        4usize,
3299        concat!("Alignment of ", stringify!(dc1394framerates_t))
3300    );
3301    assert_eq!(
3302        unsafe { &(*(::std::ptr::null::<dc1394framerates_t>())).num as *const _ as usize },
3303        0usize,
3304        concat!(
3305            "Offset of field: ",
3306            stringify!(dc1394framerates_t),
3307            "::",
3308            stringify!(num)
3309        )
3310    );
3311    assert_eq!(
3312        unsafe { &(*(::std::ptr::null::<dc1394framerates_t>())).framerates as *const _ as usize },
3313        4usize,
3314        concat!(
3315            "Offset of field: ",
3316            stringify!(dc1394framerates_t),
3317            "::",
3318            stringify!(framerates)
3319        )
3320    );
3321}
3322#[doc = " Video frame structure."]
3323#[doc = ""]
3324#[doc = " dc1394video_frame_t is the structure returned by the capture functions. It contains the captured image as well as a number of"]
3325#[doc = " information."]
3326#[doc = ""]
3327#[doc = " In general this structure should be calloc\'ed so that members such as \"allocated size\""]
3328#[doc = " are properly set to zero. Don\'t forget to free the \"image\" member before freeing the struct itself."]
3329#[repr(C)]
3330#[derive(Debug, Copy, Clone)]
3331pub struct __dc1394_video_frame {
3332    pub image: *mut ::std::os::raw::c_uchar,
3333    pub size: [u32; 2usize],
3334    pub position: [u32; 2usize],
3335    pub color_coding: dc1394color_coding_t::Type,
3336    pub color_filter: dc1394color_filter_t::Type,
3337    pub yuv_byte_order: u32,
3338    pub data_depth: u32,
3339    pub stride: u32,
3340    pub video_mode: dc1394video_mode_t::Type,
3341    pub total_bytes: u64,
3342    pub image_bytes: u32,
3343    pub padding_bytes: u32,
3344    pub packet_size: u32,
3345    pub packets_per_frame: u32,
3346    pub timestamp: u64,
3347    pub frames_behind: u32,
3348    pub camera: *mut dc1394camera_t,
3349    pub id: u32,
3350    pub allocated_image_bytes: u64,
3351    pub little_endian: dc1394bool_t::Type,
3352    pub data_in_padding: dc1394bool_t::Type,
3353}
3354#[test]
3355fn bindgen_test_layout___dc1394_video_frame() {
3356    assert_eq!(
3357        ::std::mem::size_of::<__dc1394_video_frame>(),
3358        120usize,
3359        concat!("Size of: ", stringify!(__dc1394_video_frame))
3360    );
3361    assert_eq!(
3362        ::std::mem::align_of::<__dc1394_video_frame>(),
3363        8usize,
3364        concat!("Alignment of ", stringify!(__dc1394_video_frame))
3365    );
3366    assert_eq!(
3367        unsafe { &(*(::std::ptr::null::<__dc1394_video_frame>())).image as *const _ as usize },
3368        0usize,
3369        concat!(
3370            "Offset of field: ",
3371            stringify!(__dc1394_video_frame),
3372            "::",
3373            stringify!(image)
3374        )
3375    );
3376    assert_eq!(
3377        unsafe { &(*(::std::ptr::null::<__dc1394_video_frame>())).size as *const _ as usize },
3378        8usize,
3379        concat!(
3380            "Offset of field: ",
3381            stringify!(__dc1394_video_frame),
3382            "::",
3383            stringify!(size)
3384        )
3385    );
3386    assert_eq!(
3387        unsafe { &(*(::std::ptr::null::<__dc1394_video_frame>())).position as *const _ as usize },
3388        16usize,
3389        concat!(
3390            "Offset of field: ",
3391            stringify!(__dc1394_video_frame),
3392            "::",
3393            stringify!(position)
3394        )
3395    );
3396    assert_eq!(
3397        unsafe {
3398            &(*(::std::ptr::null::<__dc1394_video_frame>())).color_coding as *const _ as usize
3399        },
3400        24usize,
3401        concat!(
3402            "Offset of field: ",
3403            stringify!(__dc1394_video_frame),
3404            "::",
3405            stringify!(color_coding)
3406        )
3407    );
3408    assert_eq!(
3409        unsafe {
3410            &(*(::std::ptr::null::<__dc1394_video_frame>())).color_filter as *const _ as usize
3411        },
3412        28usize,
3413        concat!(
3414            "Offset of field: ",
3415            stringify!(__dc1394_video_frame),
3416            "::",
3417            stringify!(color_filter)
3418        )
3419    );
3420    assert_eq!(
3421        unsafe {
3422            &(*(::std::ptr::null::<__dc1394_video_frame>())).yuv_byte_order as *const _ as usize
3423        },
3424        32usize,
3425        concat!(
3426            "Offset of field: ",
3427            stringify!(__dc1394_video_frame),
3428            "::",
3429            stringify!(yuv_byte_order)
3430        )
3431    );
3432    assert_eq!(
3433        unsafe { &(*(::std::ptr::null::<__dc1394_video_frame>())).data_depth as *const _ as usize },
3434        36usize,
3435        concat!(
3436            "Offset of field: ",
3437            stringify!(__dc1394_video_frame),
3438            "::",
3439            stringify!(data_depth)
3440        )
3441    );
3442    assert_eq!(
3443        unsafe { &(*(::std::ptr::null::<__dc1394_video_frame>())).stride as *const _ as usize },
3444        40usize,
3445        concat!(
3446            "Offset of field: ",
3447            stringify!(__dc1394_video_frame),
3448            "::",
3449            stringify!(stride)
3450        )
3451    );
3452    assert_eq!(
3453        unsafe { &(*(::std::ptr::null::<__dc1394_video_frame>())).video_mode as *const _ as usize },
3454        44usize,
3455        concat!(
3456            "Offset of field: ",
3457            stringify!(__dc1394_video_frame),
3458            "::",
3459            stringify!(video_mode)
3460        )
3461    );
3462    assert_eq!(
3463        unsafe {
3464            &(*(::std::ptr::null::<__dc1394_video_frame>())).total_bytes as *const _ as usize
3465        },
3466        48usize,
3467        concat!(
3468            "Offset of field: ",
3469            stringify!(__dc1394_video_frame),
3470            "::",
3471            stringify!(total_bytes)
3472        )
3473    );
3474    assert_eq!(
3475        unsafe {
3476            &(*(::std::ptr::null::<__dc1394_video_frame>())).image_bytes as *const _ as usize
3477        },
3478        56usize,
3479        concat!(
3480            "Offset of field: ",
3481            stringify!(__dc1394_video_frame),
3482            "::",
3483            stringify!(image_bytes)
3484        )
3485    );
3486    assert_eq!(
3487        unsafe {
3488            &(*(::std::ptr::null::<__dc1394_video_frame>())).padding_bytes as *const _ as usize
3489        },
3490        60usize,
3491        concat!(
3492            "Offset of field: ",
3493            stringify!(__dc1394_video_frame),
3494            "::",
3495            stringify!(padding_bytes)
3496        )
3497    );
3498    assert_eq!(
3499        unsafe {
3500            &(*(::std::ptr::null::<__dc1394_video_frame>())).packet_size as *const _ as usize
3501        },
3502        64usize,
3503        concat!(
3504            "Offset of field: ",
3505            stringify!(__dc1394_video_frame),
3506            "::",
3507            stringify!(packet_size)
3508        )
3509    );
3510    assert_eq!(
3511        unsafe {
3512            &(*(::std::ptr::null::<__dc1394_video_frame>())).packets_per_frame as *const _ as usize
3513        },
3514        68usize,
3515        concat!(
3516            "Offset of field: ",
3517            stringify!(__dc1394_video_frame),
3518            "::",
3519            stringify!(packets_per_frame)
3520        )
3521    );
3522    assert_eq!(
3523        unsafe { &(*(::std::ptr::null::<__dc1394_video_frame>())).timestamp as *const _ as usize },
3524        72usize,
3525        concat!(
3526            "Offset of field: ",
3527            stringify!(__dc1394_video_frame),
3528            "::",
3529            stringify!(timestamp)
3530        )
3531    );
3532    assert_eq!(
3533        unsafe {
3534            &(*(::std::ptr::null::<__dc1394_video_frame>())).frames_behind as *const _ as usize
3535        },
3536        80usize,
3537        concat!(
3538            "Offset of field: ",
3539            stringify!(__dc1394_video_frame),
3540            "::",
3541            stringify!(frames_behind)
3542        )
3543    );
3544    assert_eq!(
3545        unsafe { &(*(::std::ptr::null::<__dc1394_video_frame>())).camera as *const _ as usize },
3546        88usize,
3547        concat!(
3548            "Offset of field: ",
3549            stringify!(__dc1394_video_frame),
3550            "::",
3551            stringify!(camera)
3552        )
3553    );
3554    assert_eq!(
3555        unsafe { &(*(::std::ptr::null::<__dc1394_video_frame>())).id as *const _ as usize },
3556        96usize,
3557        concat!(
3558            "Offset of field: ",
3559            stringify!(__dc1394_video_frame),
3560            "::",
3561            stringify!(id)
3562        )
3563    );
3564    assert_eq!(
3565        unsafe {
3566            &(*(::std::ptr::null::<__dc1394_video_frame>())).allocated_image_bytes as *const _
3567                as usize
3568        },
3569        104usize,
3570        concat!(
3571            "Offset of field: ",
3572            stringify!(__dc1394_video_frame),
3573            "::",
3574            stringify!(allocated_image_bytes)
3575        )
3576    );
3577    assert_eq!(
3578        unsafe {
3579            &(*(::std::ptr::null::<__dc1394_video_frame>())).little_endian as *const _ as usize
3580        },
3581        112usize,
3582        concat!(
3583            "Offset of field: ",
3584            stringify!(__dc1394_video_frame),
3585            "::",
3586            stringify!(little_endian)
3587        )
3588    );
3589    assert_eq!(
3590        unsafe {
3591            &(*(::std::ptr::null::<__dc1394_video_frame>())).data_in_padding as *const _ as usize
3592        },
3593        116usize,
3594        concat!(
3595            "Offset of field: ",
3596            stringify!(__dc1394_video_frame),
3597            "::",
3598            stringify!(data_in_padding)
3599        )
3600    );
3601}
3602pub type dc1394video_frame_t = __dc1394_video_frame;
3603extern "C" {
3604    #[doc = " Gets a list of video modes supported by the camera."]
3605    pub fn dc1394_video_get_supported_modes(
3606        camera: *mut dc1394camera_t,
3607        video_modes: *mut dc1394video_modes_t,
3608    ) -> dc1394error_t::Type;
3609}
3610extern "C" {
3611    #[doc = " Gets a list of supported video framerates for a given video mode. This function only works with non-scalable formats."]
3612    pub fn dc1394_video_get_supported_framerates(
3613        camera: *mut dc1394camera_t,
3614        video_mode: dc1394video_mode_t::Type,
3615        framerates: *mut dc1394framerates_t,
3616    ) -> dc1394error_t::Type;
3617}
3618extern "C" {
3619    #[doc = " Gets the current framerate. This is meaningful only if the video mode is not scalable."]
3620    pub fn dc1394_video_get_framerate(
3621        camera: *mut dc1394camera_t,
3622        framerate: *mut dc1394framerate_t::Type,
3623    ) -> dc1394error_t::Type;
3624}
3625extern "C" {
3626    #[doc = " Sets the current framerate. This is meaningful only if the video mode is not scalable."]
3627    pub fn dc1394_video_set_framerate(
3628        camera: *mut dc1394camera_t,
3629        framerate: dc1394framerate_t::Type,
3630    ) -> dc1394error_t::Type;
3631}
3632extern "C" {
3633    #[doc = " Gets the current vide mode."]
3634    pub fn dc1394_video_get_mode(
3635        camera: *mut dc1394camera_t,
3636        video_mode: *mut dc1394video_mode_t::Type,
3637    ) -> dc1394error_t::Type;
3638}
3639extern "C" {
3640    #[doc = " Sets the current vide mode."]
3641    pub fn dc1394_video_set_mode(
3642        camera: *mut dc1394camera_t,
3643        video_mode: dc1394video_mode_t::Type,
3644    ) -> dc1394error_t::Type;
3645}
3646extern "C" {
3647    #[doc = " Gets the current operation mode."]
3648    pub fn dc1394_video_get_operation_mode(
3649        camera: *mut dc1394camera_t,
3650        mode: *mut dc1394operation_mode_t::Type,
3651    ) -> dc1394error_t::Type;
3652}
3653extern "C" {
3654    #[doc = " Sets the current operation mode."]
3655    pub fn dc1394_video_set_operation_mode(
3656        camera: *mut dc1394camera_t,
3657        mode: dc1394operation_mode_t::Type,
3658    ) -> dc1394error_t::Type;
3659}
3660extern "C" {
3661    #[doc = " Gets the current ISO speed."]
3662    pub fn dc1394_video_get_iso_speed(
3663        camera: *mut dc1394camera_t,
3664        speed: *mut dc1394speed_t::Type,
3665    ) -> dc1394error_t::Type;
3666}
3667extern "C" {
3668    #[doc = " Sets the current ISO speed. Speeds over 400Mbps require 1394B."]
3669    pub fn dc1394_video_set_iso_speed(
3670        camera: *mut dc1394camera_t,
3671        speed: dc1394speed_t::Type,
3672    ) -> dc1394error_t::Type;
3673}
3674extern "C" {
3675    #[doc = " Gets the current ISO channel"]
3676    pub fn dc1394_video_get_iso_channel(
3677        camera: *mut dc1394camera_t,
3678        channel: *mut u32,
3679    ) -> dc1394error_t::Type;
3680}
3681extern "C" {
3682    #[doc = " Sets the current ISO channel"]
3683    pub fn dc1394_video_set_iso_channel(
3684        camera: *mut dc1394camera_t,
3685        channel: u32,
3686    ) -> dc1394error_t::Type;
3687}
3688extern "C" {
3689    #[doc = " Gets the current data depth, in bits. Only meaningful for 16bpp video modes (RAW16, RGB48, MONO16,...)"]
3690    pub fn dc1394_video_get_data_depth(
3691        camera: *mut dc1394camera_t,
3692        depth: *mut u32,
3693    ) -> dc1394error_t::Type;
3694}
3695extern "C" {
3696    #[doc = " Starts/stops the isochronous data transmission. In other words, use this to control the image flow."]
3697    pub fn dc1394_video_set_transmission(
3698        camera: *mut dc1394camera_t,
3699        pwr: dc1394switch_t::Type,
3700    ) -> dc1394error_t::Type;
3701}
3702extern "C" {
3703    #[doc = " Gets the status of the video transmission"]
3704    pub fn dc1394_video_get_transmission(
3705        camera: *mut dc1394camera_t,
3706        pwr: *mut dc1394switch_t::Type,
3707    ) -> dc1394error_t::Type;
3708}
3709extern "C" {
3710    #[doc = " Turns one-shot mode on or off"]
3711    pub fn dc1394_video_set_one_shot(
3712        camera: *mut dc1394camera_t,
3713        pwr: dc1394switch_t::Type,
3714    ) -> dc1394error_t::Type;
3715}
3716extern "C" {
3717    #[doc = " Gets the status of the one-shot mode."]
3718    pub fn dc1394_video_get_one_shot(
3719        camera: *mut dc1394camera_t,
3720        is_on: *mut dc1394bool_t::Type,
3721    ) -> dc1394error_t::Type;
3722}
3723extern "C" {
3724    #[doc = " Turns multishot mode on or off"]
3725    pub fn dc1394_video_set_multi_shot(
3726        camera: *mut dc1394camera_t,
3727        numFrames: u32,
3728        pwr: dc1394switch_t::Type,
3729    ) -> dc1394error_t::Type;
3730}
3731extern "C" {
3732    #[doc = " Gets the status of the multi-shot mode."]
3733    pub fn dc1394_video_get_multi_shot(
3734        camera: *mut dc1394camera_t,
3735        is_on: *mut dc1394bool_t::Type,
3736        numFrames: *mut u32,
3737    ) -> dc1394error_t::Type;
3738}
3739extern "C" {
3740    #[doc = " Gets the bandwidth usage of a camera."]
3741    #[doc = ""]
3742    #[doc = " This function returns the bandwidth that is used by the camera *IF* ISO was ON."]
3743    #[doc = " The returned value is in bandwidth units. The 1394 bus has 4915 bandwidth units"]
3744    #[doc = " available per cycle. Each unit corresponds to the time it takes to send one"]
3745    #[doc = " quadlet at ISO speed S1600. The bandwidth usage at S400 is thus four times the"]
3746    #[doc = " number of quadlets per packet. Thanks to Krisitian Hogsberg for clarifying this."]
3747    pub fn dc1394_video_get_bandwidth_usage(
3748        camera: *mut dc1394camera_t,
3749        bandwidth: *mut u32,
3750    ) -> dc1394error_t::Type;
3751}
3752pub mod dc1394capture_policy_t {
3753    #[doc = " The capture policy."]
3754    #[doc = ""]
3755    #[doc = " Can be blocking (wait for a frame forever) or polling (returns if no frames is in the ring buffer)"]
3756    pub type Type = u32;
3757    pub const DC1394_CAPTURE_POLICY_WAIT: Type = 672;
3758    pub const DC1394_CAPTURE_POLICY_POLL: Type = 673;
3759}
3760#[doc = " typedef for the callback param for dc1394_capture_set_callback"]
3761pub type dc1394capture_callback_t = ::std::option::Option<
3762    unsafe extern "C" fn(arg1: *mut dc1394camera_t, arg2: *mut ::std::os::raw::c_void),
3763>;
3764extern "C" {
3765    #[doc = " Setup the capture, using a ring buffer of a certain size (num_dma_buffers) and certain options (flags)"]
3766    pub fn dc1394_capture_setup(
3767        camera: *mut dc1394camera_t,
3768        num_dma_buffers: u32,
3769        flags: u32,
3770    ) -> dc1394error_t::Type;
3771}
3772extern "C" {
3773    #[doc = " Stop the capture"]
3774    pub fn dc1394_capture_stop(camera: *mut dc1394camera_t) -> dc1394error_t::Type;
3775}
3776extern "C" {
3777    #[doc = " Gets a file descriptor to be used for select(). Must be called after dc1394_capture_setup()."]
3778    pub fn dc1394_capture_get_fileno(camera: *mut dc1394camera_t) -> ::std::os::raw::c_int;
3779}
3780extern "C" {
3781    #[doc = " Captures a video frame. The returned struct contains the image buffer, among others. This image buffer SHALL NOT be freed, as it represents an area"]
3782    #[doc = " in the memory that belongs to the system."]
3783    pub fn dc1394_capture_dequeue(
3784        camera: *mut dc1394camera_t,
3785        policy: dc1394capture_policy_t::Type,
3786        frame: *mut *mut dc1394video_frame_t,
3787    ) -> dc1394error_t::Type;
3788}
3789extern "C" {
3790    #[doc = " Returns a frame to the ring buffer once it has been used."]
3791    pub fn dc1394_capture_enqueue(
3792        camera: *mut dc1394camera_t,
3793        frame: *mut dc1394video_frame_t,
3794    ) -> dc1394error_t::Type;
3795}
3796extern "C" {
3797    #[doc = " Returns DC1394_TRUE if the given frame (previously dequeued) has been"]
3798    #[doc = " detected to be corrupt (missing data, corrupted data, overrun buffer, etc.)."]
3799    #[doc = " Note that certain types of corruption may go undetected in which case"]
3800    #[doc = " DC1394_FALSE will be returned.  The ability to detect corruption also"]
3801    #[doc = " varies between platforms.  Note that corrupt frames still need to be"]
3802    #[doc = " enqueued with dc1394_capture_enqueue() when no longer needed by the user."]
3803    pub fn dc1394_capture_is_frame_corrupt(
3804        camera: *mut dc1394camera_t,
3805        frame: *mut dc1394video_frame_t,
3806    ) -> dc1394bool_t::Type;
3807}
3808extern "C" {
3809    #[doc = " Set a callback if supported by the platform (OS X only for now)."]
3810    pub fn dc1394_capture_set_callback(
3811        camera: *mut dc1394camera_t,
3812        callback: dc1394capture_callback_t,
3813        user_data: *mut ::std::os::raw::c_void,
3814    );
3815}
3816pub mod dc1394bayer_method_t {
3817    #[doc = " A list of de-mosaicing techniques for Bayer-patterns."]
3818    #[doc = ""]
3819    #[doc = " The speed of the techniques can vary greatly, as well as their quality."]
3820    pub type Type = u32;
3821    pub const DC1394_BAYER_METHOD_NEAREST: Type = 0;
3822    pub const DC1394_BAYER_METHOD_SIMPLE: Type = 1;
3823    pub const DC1394_BAYER_METHOD_BILINEAR: Type = 2;
3824    pub const DC1394_BAYER_METHOD_HQLINEAR: Type = 3;
3825    pub const DC1394_BAYER_METHOD_DOWNSAMPLE: Type = 4;
3826    pub const DC1394_BAYER_METHOD_EDGESENSE: Type = 5;
3827    pub const DC1394_BAYER_METHOD_VNG: Type = 6;
3828    pub const DC1394_BAYER_METHOD_AHD: Type = 7;
3829}
3830pub mod dc1394stereo_method_t {
3831    #[doc = " A list of known stereo-in-normal-video modes used by manufacturers like Point Grey Research and Videre Design."]
3832    pub type Type = u32;
3833    pub const DC1394_STEREO_METHOD_INTERLACED: Type = 0;
3834    pub const DC1394_STEREO_METHOD_FIELD: Type = 1;
3835}
3836extern "C" {
3837    #[doc = " Converts an image buffer to YUV422"]
3838    pub fn dc1394_convert_to_YUV422(
3839        src: *mut u8,
3840        dest: *mut u8,
3841        width: u32,
3842        height: u32,
3843        byte_order: u32,
3844        source_coding: dc1394color_coding_t::Type,
3845        bits: u32,
3846    ) -> dc1394error_t::Type;
3847}
3848extern "C" {
3849    #[doc = " Converts an image buffer to MONO8"]
3850    pub fn dc1394_convert_to_MONO8(
3851        src: *mut u8,
3852        dest: *mut u8,
3853        width: u32,
3854        height: u32,
3855        byte_order: u32,
3856        source_coding: dc1394color_coding_t::Type,
3857        bits: u32,
3858    ) -> dc1394error_t::Type;
3859}
3860extern "C" {
3861    #[doc = " Converts an image buffer to RGB8"]
3862    pub fn dc1394_convert_to_RGB8(
3863        src: *mut u8,
3864        dest: *mut u8,
3865        width: u32,
3866        height: u32,
3867        byte_order: u32,
3868        source_coding: dc1394color_coding_t::Type,
3869        bits: u32,
3870    ) -> dc1394error_t::Type;
3871}
3872extern "C" {
3873    #[doc = " changes a 16bit stereo image (8bit/channel) into two 8bit images on top of each other"]
3874    pub fn dc1394_deinterlace_stereo(
3875        src: *mut u8,
3876        dest: *mut u8,
3877        width: u32,
3878        height: u32,
3879    ) -> dc1394error_t::Type;
3880}
3881extern "C" {
3882    #[doc = " Perform de-mosaicing on an 8-bit image buffer"]
3883    pub fn dc1394_bayer_decoding_8bit(
3884        bayer: *const u8,
3885        rgb: *mut u8,
3886        width: u32,
3887        height: u32,
3888        tile: dc1394color_filter_t::Type,
3889        method: dc1394bayer_method_t::Type,
3890    ) -> dc1394error_t::Type;
3891}
3892extern "C" {
3893    #[doc = " Perform de-mosaicing on an 16-bit image buffer"]
3894    pub fn dc1394_bayer_decoding_16bit(
3895        bayer: *const u16,
3896        rgb: *mut u16,
3897        width: u32,
3898        height: u32,
3899        tile: dc1394color_filter_t::Type,
3900        method: dc1394bayer_method_t::Type,
3901        bits: u32,
3902    ) -> dc1394error_t::Type;
3903}
3904extern "C" {
3905    #[doc = " Converts the format of a video frame."]
3906    #[doc = ""]
3907    #[doc = " To set the format of the output, simply set the values of the corresponding fields in the output frame"]
3908    pub fn dc1394_convert_frames(
3909        in_: *mut dc1394video_frame_t,
3910        out: *mut dc1394video_frame_t,
3911    ) -> dc1394error_t::Type;
3912}
3913extern "C" {
3914    #[doc = " De-mosaicing of a Bayer-encoded video frame"]
3915    #[doc = ""]
3916    #[doc = " To set the format of the output, simply set the values of the corresponding fields in the output frame"]
3917    #[doc = " @param in is a pointer to the bayer video frame that is to be converted"]
3918    #[doc = " @param out is a pointer to the frame to be converted to.  If there is memory allocated to the image field,"]
3919    #[doc = "      then it will be adjusted accordingly by this function.  If there is no memory allocated to the image"]
3920    #[doc = "      field, then ensure that out->image == NULL and out->allocated_image_bytes == 0"]
3921    #[doc = " @param method is the bayer method to interpolate the frame."]
3922    pub fn dc1394_debayer_frames(
3923        in_: *mut dc1394video_frame_t,
3924        out: *mut dc1394video_frame_t,
3925        method: dc1394bayer_method_t::Type,
3926    ) -> dc1394error_t::Type;
3927}
3928extern "C" {
3929    #[doc = " De-interlacing of stereo data for cideo frames"]
3930    #[doc = ""]
3931    #[doc = " To set the format of the output, simply set the values of the corresponding fields in the output frame"]
3932    pub fn dc1394_deinterlace_stereo_frames(
3933        in_: *mut dc1394video_frame_t,
3934        out: *mut dc1394video_frame_t,
3935        method: dc1394stereo_method_t::Type,
3936    ) -> dc1394error_t::Type;
3937}
3938#[doc = " A struct containing information about a mode of Format_7, the scalable image format."]
3939#[repr(C)]
3940#[derive(Debug, Copy, Clone)]
3941pub struct __dc1394format7mode_t {
3942    pub present: dc1394bool_t::Type,
3943    pub size_x: u32,
3944    pub size_y: u32,
3945    pub max_size_x: u32,
3946    pub max_size_y: u32,
3947    pub pos_x: u32,
3948    pub pos_y: u32,
3949    pub unit_size_x: u32,
3950    pub unit_size_y: u32,
3951    pub unit_pos_x: u32,
3952    pub unit_pos_y: u32,
3953    pub color_codings: dc1394color_codings_t,
3954    pub color_coding: dc1394color_coding_t::Type,
3955    pub pixnum: u32,
3956    pub packet_size: u32,
3957    pub unit_packet_size: u32,
3958    pub max_packet_size: u32,
3959    pub total_bytes: u64,
3960    pub color_filter: dc1394color_filter_t::Type,
3961}
3962#[test]
3963fn bindgen_test_layout___dc1394format7mode_t() {
3964    assert_eq!(
3965        ::std::mem::size_of::<__dc1394format7mode_t>(),
3966        128usize,
3967        concat!("Size of: ", stringify!(__dc1394format7mode_t))
3968    );
3969    assert_eq!(
3970        ::std::mem::align_of::<__dc1394format7mode_t>(),
3971        8usize,
3972        concat!("Alignment of ", stringify!(__dc1394format7mode_t))
3973    );
3974    assert_eq!(
3975        unsafe { &(*(::std::ptr::null::<__dc1394format7mode_t>())).present as *const _ as usize },
3976        0usize,
3977        concat!(
3978            "Offset of field: ",
3979            stringify!(__dc1394format7mode_t),
3980            "::",
3981            stringify!(present)
3982        )
3983    );
3984    assert_eq!(
3985        unsafe { &(*(::std::ptr::null::<__dc1394format7mode_t>())).size_x as *const _ as usize },
3986        4usize,
3987        concat!(
3988            "Offset of field: ",
3989            stringify!(__dc1394format7mode_t),
3990            "::",
3991            stringify!(size_x)
3992        )
3993    );
3994    assert_eq!(
3995        unsafe { &(*(::std::ptr::null::<__dc1394format7mode_t>())).size_y as *const _ as usize },
3996        8usize,
3997        concat!(
3998            "Offset of field: ",
3999            stringify!(__dc1394format7mode_t),
4000            "::",
4001            stringify!(size_y)
4002        )
4003    );
4004    assert_eq!(
4005        unsafe {
4006            &(*(::std::ptr::null::<__dc1394format7mode_t>())).max_size_x as *const _ as usize
4007        },
4008        12usize,
4009        concat!(
4010            "Offset of field: ",
4011            stringify!(__dc1394format7mode_t),
4012            "::",
4013            stringify!(max_size_x)
4014        )
4015    );
4016    assert_eq!(
4017        unsafe {
4018            &(*(::std::ptr::null::<__dc1394format7mode_t>())).max_size_y as *const _ as usize
4019        },
4020        16usize,
4021        concat!(
4022            "Offset of field: ",
4023            stringify!(__dc1394format7mode_t),
4024            "::",
4025            stringify!(max_size_y)
4026        )
4027    );
4028    assert_eq!(
4029        unsafe { &(*(::std::ptr::null::<__dc1394format7mode_t>())).pos_x as *const _ as usize },
4030        20usize,
4031        concat!(
4032            "Offset of field: ",
4033            stringify!(__dc1394format7mode_t),
4034            "::",
4035            stringify!(pos_x)
4036        )
4037    );
4038    assert_eq!(
4039        unsafe { &(*(::std::ptr::null::<__dc1394format7mode_t>())).pos_y as *const _ as usize },
4040        24usize,
4041        concat!(
4042            "Offset of field: ",
4043            stringify!(__dc1394format7mode_t),
4044            "::",
4045            stringify!(pos_y)
4046        )
4047    );
4048    assert_eq!(
4049        unsafe {
4050            &(*(::std::ptr::null::<__dc1394format7mode_t>())).unit_size_x as *const _ as usize
4051        },
4052        28usize,
4053        concat!(
4054            "Offset of field: ",
4055            stringify!(__dc1394format7mode_t),
4056            "::",
4057            stringify!(unit_size_x)
4058        )
4059    );
4060    assert_eq!(
4061        unsafe {
4062            &(*(::std::ptr::null::<__dc1394format7mode_t>())).unit_size_y as *const _ as usize
4063        },
4064        32usize,
4065        concat!(
4066            "Offset of field: ",
4067            stringify!(__dc1394format7mode_t),
4068            "::",
4069            stringify!(unit_size_y)
4070        )
4071    );
4072    assert_eq!(
4073        unsafe {
4074            &(*(::std::ptr::null::<__dc1394format7mode_t>())).unit_pos_x as *const _ as usize
4075        },
4076        36usize,
4077        concat!(
4078            "Offset of field: ",
4079            stringify!(__dc1394format7mode_t),
4080            "::",
4081            stringify!(unit_pos_x)
4082        )
4083    );
4084    assert_eq!(
4085        unsafe {
4086            &(*(::std::ptr::null::<__dc1394format7mode_t>())).unit_pos_y as *const _ as usize
4087        },
4088        40usize,
4089        concat!(
4090            "Offset of field: ",
4091            stringify!(__dc1394format7mode_t),
4092            "::",
4093            stringify!(unit_pos_y)
4094        )
4095    );
4096    assert_eq!(
4097        unsafe {
4098            &(*(::std::ptr::null::<__dc1394format7mode_t>())).color_codings as *const _ as usize
4099        },
4100        44usize,
4101        concat!(
4102            "Offset of field: ",
4103            stringify!(__dc1394format7mode_t),
4104            "::",
4105            stringify!(color_codings)
4106        )
4107    );
4108    assert_eq!(
4109        unsafe {
4110            &(*(::std::ptr::null::<__dc1394format7mode_t>())).color_coding as *const _ as usize
4111        },
4112        92usize,
4113        concat!(
4114            "Offset of field: ",
4115            stringify!(__dc1394format7mode_t),
4116            "::",
4117            stringify!(color_coding)
4118        )
4119    );
4120    assert_eq!(
4121        unsafe { &(*(::std::ptr::null::<__dc1394format7mode_t>())).pixnum as *const _ as usize },
4122        96usize,
4123        concat!(
4124            "Offset of field: ",
4125            stringify!(__dc1394format7mode_t),
4126            "::",
4127            stringify!(pixnum)
4128        )
4129    );
4130    assert_eq!(
4131        unsafe {
4132            &(*(::std::ptr::null::<__dc1394format7mode_t>())).packet_size as *const _ as usize
4133        },
4134        100usize,
4135        concat!(
4136            "Offset of field: ",
4137            stringify!(__dc1394format7mode_t),
4138            "::",
4139            stringify!(packet_size)
4140        )
4141    );
4142    assert_eq!(
4143        unsafe {
4144            &(*(::std::ptr::null::<__dc1394format7mode_t>())).unit_packet_size as *const _ as usize
4145        },
4146        104usize,
4147        concat!(
4148            "Offset of field: ",
4149            stringify!(__dc1394format7mode_t),
4150            "::",
4151            stringify!(unit_packet_size)
4152        )
4153    );
4154    assert_eq!(
4155        unsafe {
4156            &(*(::std::ptr::null::<__dc1394format7mode_t>())).max_packet_size as *const _ as usize
4157        },
4158        108usize,
4159        concat!(
4160            "Offset of field: ",
4161            stringify!(__dc1394format7mode_t),
4162            "::",
4163            stringify!(max_packet_size)
4164        )
4165    );
4166    assert_eq!(
4167        unsafe {
4168            &(*(::std::ptr::null::<__dc1394format7mode_t>())).total_bytes as *const _ as usize
4169        },
4170        112usize,
4171        concat!(
4172            "Offset of field: ",
4173            stringify!(__dc1394format7mode_t),
4174            "::",
4175            stringify!(total_bytes)
4176        )
4177    );
4178    assert_eq!(
4179        unsafe {
4180            &(*(::std::ptr::null::<__dc1394format7mode_t>())).color_filter as *const _ as usize
4181        },
4182        120usize,
4183        concat!(
4184            "Offset of field: ",
4185            stringify!(__dc1394format7mode_t),
4186            "::",
4187            stringify!(color_filter)
4188        )
4189    );
4190}
4191pub type dc1394format7mode_t = __dc1394format7mode_t;
4192#[doc = " A struct containing the list of Format_7 modes."]
4193#[doc = " FIXME: this may become very big if format_7 pages are used in IIDC 1.32. It would be better to use a \"num\" and an allocated list."]
4194#[repr(C)]
4195#[derive(Debug, Copy, Clone)]
4196pub struct __dc1394format7modeset_t {
4197    pub mode: [dc1394format7mode_t; 8usize],
4198}
4199#[test]
4200fn bindgen_test_layout___dc1394format7modeset_t() {
4201    assert_eq!(
4202        ::std::mem::size_of::<__dc1394format7modeset_t>(),
4203        1024usize,
4204        concat!("Size of: ", stringify!(__dc1394format7modeset_t))
4205    );
4206    assert_eq!(
4207        ::std::mem::align_of::<__dc1394format7modeset_t>(),
4208        8usize,
4209        concat!("Alignment of ", stringify!(__dc1394format7modeset_t))
4210    );
4211    assert_eq!(
4212        unsafe { &(*(::std::ptr::null::<__dc1394format7modeset_t>())).mode as *const _ as usize },
4213        0usize,
4214        concat!(
4215            "Offset of field: ",
4216            stringify!(__dc1394format7modeset_t),
4217            "::",
4218            stringify!(mode)
4219        )
4220    );
4221}
4222pub type dc1394format7modeset_t = __dc1394format7modeset_t;
4223extern "C" {
4224    #[doc = " Gets the maximal image size for a given mode."]
4225    pub fn dc1394_format7_get_max_image_size(
4226        camera: *mut dc1394camera_t,
4227        video_mode: dc1394video_mode_t::Type,
4228        h_size: *mut u32,
4229        v_size: *mut u32,
4230    ) -> dc1394error_t::Type;
4231}
4232extern "C" {
4233    #[doc = " Gets the unit sizes for a given mode. The image size can only be a multiple of the unit size, and cannot be smaller than it."]
4234    pub fn dc1394_format7_get_unit_size(
4235        camera: *mut dc1394camera_t,
4236        video_mode: dc1394video_mode_t::Type,
4237        h_unit: *mut u32,
4238        v_unit: *mut u32,
4239    ) -> dc1394error_t::Type;
4240}
4241extern "C" {
4242    #[doc = " Gets the current image size."]
4243    pub fn dc1394_format7_get_image_size(
4244        camera: *mut dc1394camera_t,
4245        video_mode: dc1394video_mode_t::Type,
4246        width: *mut u32,
4247        height: *mut u32,
4248    ) -> dc1394error_t::Type;
4249}
4250extern "C" {
4251    #[doc = " Sets the current image size"]
4252    pub fn dc1394_format7_set_image_size(
4253        camera: *mut dc1394camera_t,
4254        video_mode: dc1394video_mode_t::Type,
4255        width: u32,
4256        height: u32,
4257    ) -> dc1394error_t::Type;
4258}
4259extern "C" {
4260    #[doc = " Gets the current image position"]
4261    pub fn dc1394_format7_get_image_position(
4262        camera: *mut dc1394camera_t,
4263        video_mode: dc1394video_mode_t::Type,
4264        left: *mut u32,
4265        top: *mut u32,
4266    ) -> dc1394error_t::Type;
4267}
4268extern "C" {
4269    #[doc = " Sets the current image position"]
4270    pub fn dc1394_format7_set_image_position(
4271        camera: *mut dc1394camera_t,
4272        video_mode: dc1394video_mode_t::Type,
4273        left: u32,
4274        top: u32,
4275    ) -> dc1394error_t::Type;
4276}
4277extern "C" {
4278    #[doc = " Gets the unit positions for a given mode. The image position can only be a multiple of the unit position (zero is acceptable)."]
4279    pub fn dc1394_format7_get_unit_position(
4280        camera: *mut dc1394camera_t,
4281        video_mode: dc1394video_mode_t::Type,
4282        h_unit_pos: *mut u32,
4283        v_unit_pos: *mut u32,
4284    ) -> dc1394error_t::Type;
4285}
4286extern "C" {
4287    #[doc = " Gets the current color coding"]
4288    pub fn dc1394_format7_get_color_coding(
4289        camera: *mut dc1394camera_t,
4290        video_mode: dc1394video_mode_t::Type,
4291        color_coding: *mut dc1394color_coding_t::Type,
4292    ) -> dc1394error_t::Type;
4293}
4294extern "C" {
4295    #[doc = " Gets the list of color codings available for this mode"]
4296    pub fn dc1394_format7_get_color_codings(
4297        camera: *mut dc1394camera_t,
4298        video_mode: dc1394video_mode_t::Type,
4299        codings: *mut dc1394color_codings_t,
4300    ) -> dc1394error_t::Type;
4301}
4302extern "C" {
4303    #[doc = " Sets the current color coding"]
4304    pub fn dc1394_format7_set_color_coding(
4305        camera: *mut dc1394camera_t,
4306        video_mode: dc1394video_mode_t::Type,
4307        color_coding: dc1394color_coding_t::Type,
4308    ) -> dc1394error_t::Type;
4309}
4310extern "C" {
4311    #[doc = " Gets the current color filter"]
4312    pub fn dc1394_format7_get_color_filter(
4313        camera: *mut dc1394camera_t,
4314        video_mode: dc1394video_mode_t::Type,
4315        color_filter: *mut dc1394color_filter_t::Type,
4316    ) -> dc1394error_t::Type;
4317}
4318extern "C" {
4319    #[doc = " Get the parameters of the packet size: its maximal size and its unit size. The packet size is always a multiple of the unit bytes and cannot be zero."]
4320    pub fn dc1394_format7_get_packet_parameters(
4321        camera: *mut dc1394camera_t,
4322        video_mode: dc1394video_mode_t::Type,
4323        unit_bytes: *mut u32,
4324        max_bytes: *mut u32,
4325    ) -> dc1394error_t::Type;
4326}
4327extern "C" {
4328    #[doc = " Gets the current packet size"]
4329    pub fn dc1394_format7_get_packet_size(
4330        camera: *mut dc1394camera_t,
4331        video_mode: dc1394video_mode_t::Type,
4332        packet_size: *mut u32,
4333    ) -> dc1394error_t::Type;
4334}
4335extern "C" {
4336    #[doc = " Sets the current packet size"]
4337    pub fn dc1394_format7_set_packet_size(
4338        camera: *mut dc1394camera_t,
4339        video_mode: dc1394video_mode_t::Type,
4340        packet_size: u32,
4341    ) -> dc1394error_t::Type;
4342}
4343extern "C" {
4344    #[doc = " Gets the recommended packet size. Ignore if zero."]
4345    pub fn dc1394_format7_get_recommended_packet_size(
4346        camera: *mut dc1394camera_t,
4347        video_mode: dc1394video_mode_t::Type,
4348        packet_size: *mut u32,
4349    ) -> dc1394error_t::Type;
4350}
4351extern "C" {
4352    #[doc = " Gets the number of packets per frame."]
4353    pub fn dc1394_format7_get_packets_per_frame(
4354        camera: *mut dc1394camera_t,
4355        video_mode: dc1394video_mode_t::Type,
4356        ppf: *mut u32,
4357    ) -> dc1394error_t::Type;
4358}
4359extern "C" {
4360    #[doc = " Gets the data depth (e.g. 12, 13, 14 bits/pixel)"]
4361    pub fn dc1394_format7_get_data_depth(
4362        camera: *mut dc1394camera_t,
4363        video_mode: dc1394video_mode_t::Type,
4364        data_depth: *mut u32,
4365    ) -> dc1394error_t::Type;
4366}
4367extern "C" {
4368    #[doc = " Gets the frame interval in float format"]
4369    pub fn dc1394_format7_get_frame_interval(
4370        camera: *mut dc1394camera_t,
4371        video_mode: dc1394video_mode_t::Type,
4372        interval: *mut f32,
4373    ) -> dc1394error_t::Type;
4374}
4375extern "C" {
4376    #[doc = " Gets the number of pixels per image frame"]
4377    pub fn dc1394_format7_get_pixel_number(
4378        camera: *mut dc1394camera_t,
4379        video_mode: dc1394video_mode_t::Type,
4380        pixnum: *mut u32,
4381    ) -> dc1394error_t::Type;
4382}
4383extern "C" {
4384    #[doc = " Get the total number of bytes per frame. This includes padding (to reach an entire number of packets)"]
4385    pub fn dc1394_format7_get_total_bytes(
4386        camera: *mut dc1394camera_t,
4387        video_mode: dc1394video_mode_t::Type,
4388        total_bytes: *mut u64,
4389    ) -> dc1394error_t::Type;
4390}
4391extern "C" {
4392    #[doc = " Gets the properties of all Format_7 modes supported by the camera."]
4393    pub fn dc1394_format7_get_modeset(
4394        camera: *mut dc1394camera_t,
4395        info: *mut dc1394format7modeset_t,
4396    ) -> dc1394error_t::Type;
4397}
4398extern "C" {
4399    #[doc = " Gets the properties of a Format_7 mode"]
4400    pub fn dc1394_format7_get_mode_info(
4401        camera: *mut dc1394camera_t,
4402        video_mode: dc1394video_mode_t::Type,
4403        f7_mode: *mut dc1394format7mode_t,
4404    ) -> dc1394error_t::Type;
4405}
4406extern "C" {
4407    #[doc = " Joint function that fully sets a certain ROI taking all parameters into account."]
4408    #[doc = " Note that this function does not SWITCH to the video mode passed as argument, it mearly sets it"]
4409    pub fn dc1394_format7_set_roi(
4410        camera: *mut dc1394camera_t,
4411        video_mode: dc1394video_mode_t::Type,
4412        color_coding: dc1394color_coding_t::Type,
4413        packet_size: i32,
4414        left: i32,
4415        top: i32,
4416        width: i32,
4417        height: i32,
4418    ) -> dc1394error_t::Type;
4419}
4420extern "C" {
4421    #[doc = " Joint function that fully gets a certain ROI taking all parameters into account."]
4422    pub fn dc1394_format7_get_roi(
4423        camera: *mut dc1394camera_t,
4424        video_mode: dc1394video_mode_t::Type,
4425        color_coding: *mut dc1394color_coding_t::Type,
4426        packet_size: *mut u32,
4427        left: *mut u32,
4428        top: *mut u32,
4429        width: *mut u32,
4430        height: *mut u32,
4431    ) -> dc1394error_t::Type;
4432}
4433extern "C" {
4434    #[doc = " dc1394_iso_set_persist"]
4435    #[doc = " @param camera A camera handle."]
4436    #[doc = ""]
4437    #[doc = " Calling this function will cause isochronous channel and bandwidth"]
4438    #[doc = " allocations to persist beyond the lifetime of this dc1394camera_t"]
4439    #[doc = " instance.  Normally (when this function is not called), any allocations"]
4440    #[doc = " would be automatically released upon freeing this camera or a"]
4441    #[doc = " premature shutdown of the application (if possible).  For this function"]
4442    #[doc = " to be used, it must be called prior to any allocations or an error will"]
4443    #[doc = " be returned."]
4444    #[doc = ""]
4445    #[doc = " @return \\a DC1394_SUCCESS if the operation succeeded."]
4446    #[doc = " \\a DC1394_FUNCTION_NOT_SUPPORTED if the current platform/driver does not"]
4447    #[doc = " allow persistent allocations."]
4448    pub fn dc1394_iso_set_persist(camera: *mut dc1394camera_t) -> dc1394error_t::Type;
4449}
4450extern "C" {
4451    #[doc = " dc1394_iso_allocate_channel:"]
4452    #[doc = " @param camera A camera handle."]
4453    #[doc = " @param channels_allowed A bitmask of acceptable channels for the allocation."]
4454    #[doc = "   The LSB corresponds to channel 0 and the MSB corresponds to channel"]
4455    #[doc = "   63.  Only channels whose bit is set will be considered for the allocation."]
4456    #[doc = "   If \\a channels_allowed = 0, the complete set of channels supported by"]
4457    #[doc = "   this camera will be considered for the allocation."]
4458    #[doc = " @param channel The allocated channel number is returned here."]
4459    #[doc = ""]
4460    #[doc = " Allocates an isochronous channel.  This"]
4461    #[doc = " function may be called multiple times, each time allocating an additional"]
4462    #[doc = " channel.  The channel is automatically re-allocated if there is a bus"]
4463    #[doc = " reset.  The channel is automatically released when this dc1394camera_t"]
4464    #[doc = " is freed or if the application shuts down prematurely.  If the channel"]
4465    #[doc = " needs to persist beyond the lifetime of this application, call"]
4466    #[doc = " \\a dc1394_iso_set_persist() first.  Note that this function does _not_"]
4467    #[doc = " automatically program @a camera to use the allocated channel for isochronous"]
4468    #[doc = " streaming.  You must do that manually using \\a dc1394_video_set_iso_channel()."]
4469    #[doc = ""]
4470    #[doc = " @return \\a DC1394_SUCCESS if the operation succeeded.  The allocated"]
4471    #[doc = " channel is stored in \\a channel. \\a DC1394_FUNCTION_NOT_SUPPORTED if the"]
4472    #[doc = " current driver/platform does not allow channel allocation."]
4473    #[doc = " \\a DC1394_NO_ISO_CHANNEL if none of the requested channels are available."]
4474    pub fn dc1394_iso_allocate_channel(
4475        camera: *mut dc1394camera_t,
4476        channels_allowed: u64,
4477        channel: *mut ::std::os::raw::c_int,
4478    ) -> dc1394error_t::Type;
4479}
4480extern "C" {
4481    #[doc = " dc1394_iso_release_channel:"]
4482    #[doc = " @param camera A camera handle."]
4483    #[doc = " @param channel The channel number to release."]
4484    #[doc = ""]
4485    #[doc = " Releases a previously allocated channel.  It is acceptable to release"]
4486    #[doc = " channels that were allocated by a different process or host.  If"]
4487    #[doc = " attempting to release a channel that is already released, the function"]
4488    #[doc = " will succeed."]
4489    #[doc = ""]
4490    #[doc = " @return \\a DC1394_SUCCESS if the operation succeeded."]
4491    #[doc = " \\a DC1394_FUNCTION_NOT_SUPPORTED if the current driver/platform does not"]
4492    #[doc = " allow channel release."]
4493    pub fn dc1394_iso_release_channel(
4494        camera: *mut dc1394camera_t,
4495        channel: ::std::os::raw::c_int,
4496    ) -> dc1394error_t::Type;
4497}
4498extern "C" {
4499    #[doc = " dc1394_iso_allocate_bandwidth:"]
4500    #[doc = " @param camera A camera handle."]
4501    #[doc = " @param bandwidth_units The number of isochronous bandwidth units to allocate."]
4502    #[doc = ""]
4503    #[doc = " Allocates isochronous bandwidth.  This functions allocates bandwidth"]
4504    #[doc = " _in addition_ to any previous allocations.  It may be called multiple"]
4505    #[doc = " times.  The bandwidth is automatically re-allocated if there is a bus"]
4506    #[doc = " reset.  The bandwidth is automatically released if this camera is freed"]
4507    #[doc = " or the application shuts down prematurely.  If the bandwidth needs to"]
4508    #[doc = " persist beyond the lifetime of this application, call"]
4509    #[doc = " \\a dc1394_iso_set_persist() first."]
4510    #[doc = ""]
4511    #[doc = " @return \\a DC1394_SUCCESS if the operation succeeded."]
4512    #[doc = " \\a DC1394_FUNCTION_NOT_SUPPORTED if the current driver/platform does not"]
4513    #[doc = " allow bandwidth allocation. \\a DC1394_NO_BANDWIDTH if there is not enough"]
4514    #[doc = " available bandwidth to support the allocation.  In this case,"]
4515    #[doc = " no bandwidth is allocated."]
4516    pub fn dc1394_iso_allocate_bandwidth(
4517        camera: *mut dc1394camera_t,
4518        bandwidth_units: ::std::os::raw::c_int,
4519    ) -> dc1394error_t::Type;
4520}
4521extern "C" {
4522    #[doc = " dc1394_iso_release_bandwidth:"]
4523    #[doc = " @param camera A camera handle."]
4524    #[doc = " @param bandwidth_units The number of isochronous bandwidth units to free."]
4525    #[doc = ""]
4526    #[doc = " Releases previously allocated isochronous bandwidth.  Each \\a dc1394camera_t"]
4527    #[doc = " keeps track of a running total of bandwidth that has been allocated."]
4528    #[doc = " Released bandwidth is subtracted from this total for the sake of"]
4529    #[doc = " automatic re-allocation and automatic release on shutdown.  It is also"]
4530    #[doc = " acceptable for a camera to release more bandwidth than it has allocated"]
4531    #[doc = " (to clean up for another process for example).  In this case, the"]
4532    #[doc = " running total of bandwidth is not affected.  It is acceptable to"]
4533    #[doc = " release more bandwidth than is allocated in total for the bus.  In this"]
4534    #[doc = " case, all bandwidth is released and the function succeeds."]
4535    #[doc = ""]
4536    #[doc = " @return \\a DC1394_SUCCESS if the operation succeeded."]
4537    #[doc = " \\a DC1394_FUNCTION_NOT_SUPPORTED if the current driver/platform does not"]
4538    #[doc = " allow bandwidth release."]
4539    pub fn dc1394_iso_release_bandwidth(
4540        camera: *mut dc1394camera_t,
4541        bandwidth_units: ::std::os::raw::c_int,
4542    ) -> dc1394error_t::Type;
4543}
4544extern "C" {
4545    #[doc = " dc1394_iso_release_all:"]
4546    #[doc = " @param camera A camera handle."]
4547    #[doc = ""]
4548    #[doc = " Releases all channels and bandwidth that have been previously allocated"]
4549    #[doc = " for this dc1394camera_t.  Note that this information can only be tracked"]
4550    #[doc = " per process, and there is no knowledge of allocations for this camera"]
4551    #[doc = " by previous processes.  To release resources in such a case, the manual"]
4552    #[doc = " release functions \\a dc1394_iso_release_channel() and"]
4553    #[doc = " \\a dc1394_iso_release_bandwidth() must be used."]
4554    #[doc = ""]
4555    #[doc = " @return \\a DC1394_SUCCESS if the operation succeeded. \\a DC1394_FAILURE"]
4556    #[doc = " if some resources were not able to be released."]
4557    pub fn dc1394_iso_release_all(camera: *mut dc1394camera_t) -> dc1394error_t::Type;
4558}
4559extern "C" {
4560    #[doc = " No Docs"]
4561    pub fn dc1394_get_registers(
4562        camera: *mut dc1394camera_t,
4563        offset: u64,
4564        value: *mut u32,
4565        num_regs: u32,
4566    ) -> dc1394error_t::Type;
4567}
4568extern "C" {
4569    #[doc = " No Docs"]
4570    pub fn dc1394_set_registers(
4571        camera: *mut dc1394camera_t,
4572        offset: u64,
4573        value: *const u32,
4574        num_regs: u32,
4575    ) -> dc1394error_t::Type;
4576}
4577extern "C" {
4578    #[doc = " No Docs"]
4579    pub fn dc1394_get_control_registers(
4580        camera: *mut dc1394camera_t,
4581        offset: u64,
4582        value: *mut u32,
4583        num_regs: u32,
4584    ) -> dc1394error_t::Type;
4585}
4586extern "C" {
4587    #[doc = " No Docs"]
4588    pub fn dc1394_set_control_registers(
4589        camera: *mut dc1394camera_t,
4590        offset: u64,
4591        value: *const u32,
4592        num_regs: u32,
4593    ) -> dc1394error_t::Type;
4594}
4595extern "C" {
4596    #[doc = " No Docs"]
4597    pub fn dc1394_get_adv_control_registers(
4598        camera: *mut dc1394camera_t,
4599        offset: u64,
4600        value: *mut u32,
4601        num_regs: u32,
4602    ) -> dc1394error_t::Type;
4603}
4604extern "C" {
4605    #[doc = " No Docs"]
4606    pub fn dc1394_set_adv_control_registers(
4607        camera: *mut dc1394camera_t,
4608        offset: u64,
4609        value: *const u32,
4610        num_regs: u32,
4611    ) -> dc1394error_t::Type;
4612}
4613extern "C" {
4614    #[doc = " No Docs"]
4615    pub fn dc1394_get_format7_register(
4616        camera: *mut dc1394camera_t,
4617        mode: ::std::os::raw::c_uint,
4618        offset: u64,
4619        value: *mut u32,
4620    ) -> dc1394error_t::Type;
4621}
4622extern "C" {
4623    #[doc = " No Docs"]
4624    pub fn dc1394_set_format7_register(
4625        camera: *mut dc1394camera_t,
4626        mode: ::std::os::raw::c_uint,
4627        offset: u64,
4628        value: u32,
4629    ) -> dc1394error_t::Type;
4630}
4631extern "C" {
4632    #[doc = " No Docs"]
4633    pub fn dc1394_get_absolute_register(
4634        camera: *mut dc1394camera_t,
4635        feature: ::std::os::raw::c_uint,
4636        offset: u64,
4637        value: *mut u32,
4638    ) -> dc1394error_t::Type;
4639}
4640extern "C" {
4641    #[doc = " No Docs"]
4642    pub fn dc1394_set_absolute_register(
4643        camera: *mut dc1394camera_t,
4644        feature: ::std::os::raw::c_uint,
4645        offset: u64,
4646        value: u32,
4647    ) -> dc1394error_t::Type;
4648}
4649extern "C" {
4650    #[doc = " No Docs"]
4651    pub fn dc1394_get_PIO_register(
4652        camera: *mut dc1394camera_t,
4653        offset: u64,
4654        value: *mut u32,
4655    ) -> dc1394error_t::Type;
4656}
4657extern "C" {
4658    #[doc = " No Docs"]
4659    pub fn dc1394_set_PIO_register(
4660        camera: *mut dc1394camera_t,
4661        offset: u64,
4662        value: u32,
4663    ) -> dc1394error_t::Type;
4664}
4665extern "C" {
4666    #[doc = " No Docs"]
4667    pub fn dc1394_get_SIO_register(
4668        camera: *mut dc1394camera_t,
4669        offset: u64,
4670        value: *mut u32,
4671    ) -> dc1394error_t::Type;
4672}
4673extern "C" {
4674    #[doc = " No Docs"]
4675    pub fn dc1394_set_SIO_register(
4676        camera: *mut dc1394camera_t,
4677        offset: u64,
4678        value: u32,
4679    ) -> dc1394error_t::Type;
4680}
4681extern "C" {
4682    #[doc = " No Docs"]
4683    pub fn dc1394_get_strobe_register(
4684        camera: *mut dc1394camera_t,
4685        offset: u64,
4686        value: *mut u32,
4687    ) -> dc1394error_t::Type;
4688}
4689extern "C" {
4690    #[doc = " No Docs"]
4691    pub fn dc1394_set_strobe_register(
4692        camera: *mut dc1394camera_t,
4693        offset: u64,
4694        value: u32,
4695    ) -> dc1394error_t::Type;
4696}
4697extern "C" {
4698    #[doc = " Returns the image width and height (in pixels) corresponding to a video mode. Works for scalable and non-scalable video modes."]
4699    pub fn dc1394_get_image_size_from_video_mode(
4700        camera: *mut dc1394camera_t,
4701        video_mode: u32,
4702        width: *mut u32,
4703        height: *mut u32,
4704    ) -> dc1394error_t::Type;
4705}
4706extern "C" {
4707    #[doc = " Returns the given framerate as a float."]
4708    pub fn dc1394_framerate_as_float(
4709        framerate_enum: dc1394framerate_t::Type,
4710        framerate: *mut f32,
4711    ) -> dc1394error_t::Type;
4712}
4713extern "C" {
4714    #[doc = " Returns the number of bits per pixel for a certain color coding. This is the size of the data sent on the bus, the effective"]
4715    #[doc = " data depth may vary. Example: RGB16 is 16, YUV411 is 8, YUV422 is 8."]
4716    pub fn dc1394_get_color_coding_data_depth(
4717        color_coding: dc1394color_coding_t::Type,
4718        bits: *mut u32,
4719    ) -> dc1394error_t::Type;
4720}
4721extern "C" {
4722    #[doc = " Returns the bit-space used by a pixel. This is different from the data depth! For instance, RGB16 has a bit space of 48 bits,"]
4723    #[doc = " YUV422 is 16bits and YU411 is 12bits."]
4724    pub fn dc1394_get_color_coding_bit_size(
4725        color_coding: dc1394color_coding_t::Type,
4726        bits: *mut u32,
4727    ) -> dc1394error_t::Type;
4728}
4729extern "C" {
4730    #[doc = " Returns the color coding from the video mode. Works with scalable image formats too."]
4731    pub fn dc1394_get_color_coding_from_video_mode(
4732        camera: *mut dc1394camera_t,
4733        video_mode: dc1394video_mode_t::Type,
4734        color_coding: *mut dc1394color_coding_t::Type,
4735    ) -> dc1394error_t::Type;
4736}
4737extern "C" {
4738    #[doc = " Tells whether the color mode is color or monochrome"]
4739    pub fn dc1394_is_color(
4740        color_mode: dc1394color_coding_t::Type,
4741        is_color: *mut dc1394bool_t::Type,
4742    ) -> dc1394error_t::Type;
4743}
4744extern "C" {
4745    #[doc = " Tells whether the video mode is scalable or not."]
4746    pub fn dc1394_is_video_mode_scalable(
4747        video_mode: dc1394video_mode_t::Type,
4748    ) -> dc1394bool_t::Type;
4749}
4750extern "C" {
4751    #[doc = " Tells whether the video mode is \"still image\" or not (\"still image\" is currently not supported by any cameras on the market)"]
4752    pub fn dc1394_is_video_mode_still_image(
4753        video_mode: dc1394video_mode_t::Type,
4754    ) -> dc1394bool_t::Type;
4755}
4756extern "C" {
4757    #[doc = " Tells whether two IDs refer to the same physical camera unit."]
4758    pub fn dc1394_is_same_camera(
4759        id1: dc1394camera_id_t,
4760        id2: dc1394camera_id_t,
4761    ) -> dc1394bool_t::Type;
4762}
4763extern "C" {
4764    #[doc = " Returns a descriptive name for a feature"]
4765    pub fn dc1394_feature_get_string(
4766        feature: dc1394feature_t::Type,
4767    ) -> *const ::std::os::raw::c_char;
4768}
4769extern "C" {
4770    #[doc = " Returns a descriptive string for an error code"]
4771    pub fn dc1394_error_get_string(error: dc1394error_t::Type) -> *const ::std::os::raw::c_char;
4772}
4773extern "C" {
4774    #[doc = " Calculates the CRC16 checksum of a memory region. Useful to verify the CRC of an image buffer, for instance."]
4775    pub fn dc1394_checksum_crc16(buffer: *const u8, buffer_size: u32) -> u16;
4776}
4777pub type __builtin_va_list = [__va_list_tag; 1usize];
4778#[repr(C)]
4779#[derive(Debug, Copy, Clone)]
4780pub struct __va_list_tag {
4781    pub gp_offset: ::std::os::raw::c_uint,
4782    pub fp_offset: ::std::os::raw::c_uint,
4783    pub overflow_arg_area: *mut ::std::os::raw::c_void,
4784    pub reg_save_area: *mut ::std::os::raw::c_void,
4785}
4786#[test]
4787fn bindgen_test_layout___va_list_tag() {
4788    assert_eq!(
4789        ::std::mem::size_of::<__va_list_tag>(),
4790        24usize,
4791        concat!("Size of: ", stringify!(__va_list_tag))
4792    );
4793    assert_eq!(
4794        ::std::mem::align_of::<__va_list_tag>(),
4795        8usize,
4796        concat!("Alignment of ", stringify!(__va_list_tag))
4797    );
4798    assert_eq!(
4799        unsafe { &(*(::std::ptr::null::<__va_list_tag>())).gp_offset as *const _ as usize },
4800        0usize,
4801        concat!(
4802            "Offset of field: ",
4803            stringify!(__va_list_tag),
4804            "::",
4805            stringify!(gp_offset)
4806        )
4807    );
4808    assert_eq!(
4809        unsafe { &(*(::std::ptr::null::<__va_list_tag>())).fp_offset as *const _ as usize },
4810        4usize,
4811        concat!(
4812            "Offset of field: ",
4813            stringify!(__va_list_tag),
4814            "::",
4815            stringify!(fp_offset)
4816        )
4817    );
4818    assert_eq!(
4819        unsafe { &(*(::std::ptr::null::<__va_list_tag>())).overflow_arg_area as *const _ as usize },
4820        8usize,
4821        concat!(
4822            "Offset of field: ",
4823            stringify!(__va_list_tag),
4824            "::",
4825            stringify!(overflow_arg_area)
4826        )
4827    );
4828    assert_eq!(
4829        unsafe { &(*(::std::ptr::null::<__va_list_tag>())).reg_save_area as *const _ as usize },
4830        16usize,
4831        concat!(
4832            "Offset of field: ",
4833            stringify!(__va_list_tag),
4834            "::",
4835            stringify!(reg_save_area)
4836        )
4837    );
4838}