vlfeat_sys/
lib.rs

1extern crate libc;
2
3/* automatically generated by rust-bindgen */
4
5#[repr(C)]
6pub struct __BindgenUnionField<T>(::std::marker::PhantomData<T>);
7impl <T> __BindgenUnionField<T> {
8    #[inline]
9    pub fn new() -> Self { __BindgenUnionField(::std::marker::PhantomData) }
10    #[inline]
11    pub unsafe fn as_ref(&self) -> &T { ::std::mem::transmute(self) }
12    #[inline]
13    pub unsafe fn as_mut(&mut self) -> &mut T { ::std::mem::transmute(self) }
14}
15impl <T> ::std::default::Default for __BindgenUnionField<T> {
16    #[inline]
17    fn default() -> Self { Self::new() }
18}
19impl <T> ::std::clone::Clone for __BindgenUnionField<T> {
20    #[inline]
21    fn clone(&self) -> Self { Self::new() }
22}
23impl <T> ::std::marker::Copy for __BindgenUnionField<T> { }
24impl <T> ::std::fmt::Debug for __BindgenUnionField<T> {
25    fn fmt(&self, fmt: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
26        fmt.write_str("__BindgenUnionField")
27    }
28}
29pub const VL_OS_MACOSX: ::std::os::raw::c_uint = 1;
30pub const VL_THREADS_POSIX: ::std::os::raw::c_uint = 1;
31pub const VL_TRUE: ::std::os::raw::c_uint = 1;
32pub const VL_FALSE: ::std::os::raw::c_uint = 0;
33pub const VL_FL_INT64: &'static [u8; 3usize] = b"ll\x00";
34pub const VL_FL_INT32: &'static [u8; 1usize] = b"\x00";
35pub const VL_FL_INT16: &'static [u8; 2usize] = b"h\x00";
36pub const VL_FL_INT8: &'static [u8; 3usize] = b"hh\x00";
37pub const VL_FL_INDEX: &'static [u8; 3usize] = b"ll\x00";
38pub const VL_FMT_INDEX: &'static [u8; 4usize] = b"lld\x00";
39pub const VL_FMT_INTPTR: &'static [u8; 4usize] = b"lld\x00";
40pub const VL_FMT_UINDEX: &'static [u8; 4usize] = b"llu\x00";
41pub const VL_FMT_SIZE: &'static [u8; 4usize] = b"llu\x00";
42pub const VL_FMT_UINTPTR: &'static [u8; 4usize] = b"llu\x00";
43pub const VL_BIG_INT: ::std::os::raw::c_uint = 2147483647;
44pub const VL_SMALL_INT: ::std::os::raw::c_int = -2147483648;
45pub const VL_BIG_UINT: ::std::os::raw::c_uint = 4294967295;
46pub const __MAC_10_0: ::std::os::raw::c_uint = 1000;
47pub const __MAC_10_1: ::std::os::raw::c_uint = 1010;
48pub const __MAC_10_2: ::std::os::raw::c_uint = 1020;
49pub const __MAC_10_3: ::std::os::raw::c_uint = 1030;
50pub const __MAC_10_4: ::std::os::raw::c_uint = 1040;
51pub const __MAC_10_5: ::std::os::raw::c_uint = 1050;
52pub const __MAC_10_6: ::std::os::raw::c_uint = 1060;
53pub const __MAC_10_7: ::std::os::raw::c_uint = 1070;
54pub const __MAC_10_8: ::std::os::raw::c_uint = 1080;
55pub const __MAC_10_9: ::std::os::raw::c_uint = 1090;
56pub const __MAC_10_10: ::std::os::raw::c_uint = 101000;
57pub const __MAC_10_10_2: ::std::os::raw::c_uint = 101002;
58pub const __MAC_10_10_3: ::std::os::raw::c_uint = 101003;
59pub const __MAC_10_11: ::std::os::raw::c_uint = 101100;
60pub const __MAC_10_11_2: ::std::os::raw::c_uint = 101102;
61pub const __MAC_10_11_3: ::std::os::raw::c_uint = 101103;
62pub const __MAC_10_11_4: ::std::os::raw::c_uint = 101104;
63pub const __IPHONE_2_0: ::std::os::raw::c_uint = 20000;
64pub const __IPHONE_2_1: ::std::os::raw::c_uint = 20100;
65pub const __IPHONE_2_2: ::std::os::raw::c_uint = 20200;
66pub const __IPHONE_3_0: ::std::os::raw::c_uint = 30000;
67pub const __IPHONE_3_1: ::std::os::raw::c_uint = 30100;
68pub const __IPHONE_3_2: ::std::os::raw::c_uint = 30200;
69pub const __IPHONE_4_0: ::std::os::raw::c_uint = 40000;
70pub const __IPHONE_4_1: ::std::os::raw::c_uint = 40100;
71pub const __IPHONE_4_2: ::std::os::raw::c_uint = 40200;
72pub const __IPHONE_4_3: ::std::os::raw::c_uint = 40300;
73pub const __IPHONE_5_0: ::std::os::raw::c_uint = 50000;
74pub const __IPHONE_5_1: ::std::os::raw::c_uint = 50100;
75pub const __IPHONE_6_0: ::std::os::raw::c_uint = 60000;
76pub const __IPHONE_6_1: ::std::os::raw::c_uint = 60100;
77pub const __IPHONE_7_0: ::std::os::raw::c_uint = 70000;
78pub const __IPHONE_7_1: ::std::os::raw::c_uint = 70100;
79pub const __IPHONE_8_0: ::std::os::raw::c_uint = 80000;
80pub const __IPHONE_8_1: ::std::os::raw::c_uint = 80100;
81pub const __IPHONE_8_2: ::std::os::raw::c_uint = 80200;
82pub const __IPHONE_8_3: ::std::os::raw::c_uint = 80300;
83pub const __IPHONE_8_4: ::std::os::raw::c_uint = 80400;
84pub const __IPHONE_9_0: ::std::os::raw::c_uint = 90000;
85pub const __IPHONE_9_1: ::std::os::raw::c_uint = 90100;
86pub const __IPHONE_9_2: ::std::os::raw::c_uint = 90200;
87pub const __IPHONE_9_3: ::std::os::raw::c_uint = 90300;
88pub const __TVOS_9_0: ::std::os::raw::c_uint = 90000;
89pub const __TVOS_9_1: ::std::os::raw::c_uint = 90100;
90pub const __TVOS_9_2: ::std::os::raw::c_uint = 90200;
91pub const __WATCHOS_1_0: ::std::os::raw::c_uint = 10000;
92pub const __WATCHOS_2_0: ::std::os::raw::c_uint = 20000;
93pub const __MAC_OS_X_VERSION_MAX_ALLOWED: ::std::os::raw::c_uint = 101104;
94pub const __DARWIN_ONLY_64_BIT_INO_T: ::std::os::raw::c_uint = 0;
95pub const __DARWIN_ONLY_VERS_1050: ::std::os::raw::c_uint = 0;
96pub const __DARWIN_ONLY_UNIX_CONFORMANCE: ::std::os::raw::c_uint = 1;
97pub const __DARWIN_UNIX03: ::std::os::raw::c_uint = 1;
98pub const __DARWIN_64_BIT_INO_T: ::std::os::raw::c_uint = 1;
99pub const __DARWIN_VERS_1050: ::std::os::raw::c_uint = 1;
100pub const __DARWIN_NON_CANCELABLE: ::std::os::raw::c_uint = 0;
101pub const __DARWIN_SUF_64_BIT_INO_T: &'static [u8; 9usize] = b"$INODE64\x00";
102pub const __DARWIN_SUF_1050: &'static [u8; 6usize] = b"$1050\x00";
103pub const __DARWIN_SUF_EXTSN: &'static [u8; 14usize] = b"$DARWIN_EXTSN\x00";
104pub const __DARWIN_C_ANSI: ::std::os::raw::c_uint = 4096;
105pub const __DARWIN_C_FULL: ::std::os::raw::c_uint = 900000;
106pub const __DARWIN_C_LEVEL: ::std::os::raw::c_uint = 900000;
107pub const __STDC_WANT_LIB_EXT1__: ::std::os::raw::c_uint = 1;
108pub const _DARWIN_FEATURE_64_BIT_INODE: ::std::os::raw::c_uint = 1;
109pub const _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE: ::std::os::raw::c_uint = 1;
110pub const _DARWIN_FEATURE_UNIX_CONFORMANCE: ::std::os::raw::c_uint = 3;
111pub const __PTHREAD_SIZE__: ::std::os::raw::c_uint = 8176;
112pub const __PTHREAD_ATTR_SIZE__: ::std::os::raw::c_uint = 56;
113pub const __PTHREAD_MUTEXATTR_SIZE__: ::std::os::raw::c_uint = 8;
114pub const __PTHREAD_MUTEX_SIZE__: ::std::os::raw::c_uint = 56;
115pub const __PTHREAD_CONDATTR_SIZE__: ::std::os::raw::c_uint = 8;
116pub const __PTHREAD_COND_SIZE__: ::std::os::raw::c_uint = 40;
117pub const __PTHREAD_ONCE_SIZE__: ::std::os::raw::c_uint = 8;
118pub const __PTHREAD_RWLOCK_SIZE__: ::std::os::raw::c_uint = 192;
119pub const __PTHREAD_RWLOCKATTR_SIZE__: ::std::os::raw::c_uint = 16;
120pub const __DARWIN_WCHAR_MIN: ::std::os::raw::c_int = -2147483648;
121pub const _FORTIFY_SOURCE: ::std::os::raw::c_uint = 2;
122pub const __DARWIN_NSIG: ::std::os::raw::c_uint = 32;
123pub const NSIG: ::std::os::raw::c_uint = 32;
124pub const _I386_SIGNAL_H_: ::std::os::raw::c_uint = 1;
125pub const SIGHUP: ::std::os::raw::c_uint = 1;
126pub const SIGINT: ::std::os::raw::c_uint = 2;
127pub const SIGQUIT: ::std::os::raw::c_uint = 3;
128pub const SIGILL: ::std::os::raw::c_uint = 4;
129pub const SIGTRAP: ::std::os::raw::c_uint = 5;
130pub const SIGABRT: ::std::os::raw::c_uint = 6;
131pub const SIGIOT: ::std::os::raw::c_uint = 6;
132pub const SIGEMT: ::std::os::raw::c_uint = 7;
133pub const SIGFPE: ::std::os::raw::c_uint = 8;
134pub const SIGKILL: ::std::os::raw::c_uint = 9;
135pub const SIGBUS: ::std::os::raw::c_uint = 10;
136pub const SIGSEGV: ::std::os::raw::c_uint = 11;
137pub const SIGSYS: ::std::os::raw::c_uint = 12;
138pub const SIGPIPE: ::std::os::raw::c_uint = 13;
139pub const SIGALRM: ::std::os::raw::c_uint = 14;
140pub const SIGTERM: ::std::os::raw::c_uint = 15;
141pub const SIGURG: ::std::os::raw::c_uint = 16;
142pub const SIGSTOP: ::std::os::raw::c_uint = 17;
143pub const SIGTSTP: ::std::os::raw::c_uint = 18;
144pub const SIGCONT: ::std::os::raw::c_uint = 19;
145pub const SIGCHLD: ::std::os::raw::c_uint = 20;
146pub const SIGTTIN: ::std::os::raw::c_uint = 21;
147pub const SIGTTOU: ::std::os::raw::c_uint = 22;
148pub const SIGIO: ::std::os::raw::c_uint = 23;
149pub const SIGXCPU: ::std::os::raw::c_uint = 24;
150pub const SIGXFSZ: ::std::os::raw::c_uint = 25;
151pub const SIGVTALRM: ::std::os::raw::c_uint = 26;
152pub const SIGPROF: ::std::os::raw::c_uint = 27;
153pub const SIGWINCH: ::std::os::raw::c_uint = 28;
154pub const SIGINFO: ::std::os::raw::c_uint = 29;
155pub const SIGUSR1: ::std::os::raw::c_uint = 30;
156pub const SIGUSR2: ::std::os::raw::c_uint = 31;
157pub const FP_PREC_24B: ::std::os::raw::c_uint = 0;
158pub const FP_PREC_53B: ::std::os::raw::c_uint = 2;
159pub const FP_PREC_64B: ::std::os::raw::c_uint = 3;
160pub const FP_RND_NEAR: ::std::os::raw::c_uint = 0;
161pub const FP_RND_DOWN: ::std::os::raw::c_uint = 1;
162pub const FP_RND_UP: ::std::os::raw::c_uint = 2;
163pub const FP_CHOP: ::std::os::raw::c_uint = 3;
164pub const FP_STATE_BYTES: ::std::os::raw::c_uint = 512;
165pub const SIGEV_NONE: ::std::os::raw::c_uint = 0;
166pub const SIGEV_SIGNAL: ::std::os::raw::c_uint = 1;
167pub const SIGEV_THREAD: ::std::os::raw::c_uint = 3;
168pub const ILL_NOOP: ::std::os::raw::c_uint = 0;
169pub const ILL_ILLOPC: ::std::os::raw::c_uint = 1;
170pub const ILL_ILLTRP: ::std::os::raw::c_uint = 2;
171pub const ILL_PRVOPC: ::std::os::raw::c_uint = 3;
172pub const ILL_ILLOPN: ::std::os::raw::c_uint = 4;
173pub const ILL_ILLADR: ::std::os::raw::c_uint = 5;
174pub const ILL_PRVREG: ::std::os::raw::c_uint = 6;
175pub const ILL_COPROC: ::std::os::raw::c_uint = 7;
176pub const ILL_BADSTK: ::std::os::raw::c_uint = 8;
177pub const FPE_NOOP: ::std::os::raw::c_uint = 0;
178pub const FPE_FLTDIV: ::std::os::raw::c_uint = 1;
179pub const FPE_FLTOVF: ::std::os::raw::c_uint = 2;
180pub const FPE_FLTUND: ::std::os::raw::c_uint = 3;
181pub const FPE_FLTRES: ::std::os::raw::c_uint = 4;
182pub const FPE_FLTINV: ::std::os::raw::c_uint = 5;
183pub const FPE_FLTSUB: ::std::os::raw::c_uint = 6;
184pub const FPE_INTDIV: ::std::os::raw::c_uint = 7;
185pub const FPE_INTOVF: ::std::os::raw::c_uint = 8;
186pub const SEGV_NOOP: ::std::os::raw::c_uint = 0;
187pub const SEGV_MAPERR: ::std::os::raw::c_uint = 1;
188pub const SEGV_ACCERR: ::std::os::raw::c_uint = 2;
189pub const BUS_NOOP: ::std::os::raw::c_uint = 0;
190pub const BUS_ADRALN: ::std::os::raw::c_uint = 1;
191pub const BUS_ADRERR: ::std::os::raw::c_uint = 2;
192pub const BUS_OBJERR: ::std::os::raw::c_uint = 3;
193pub const TRAP_BRKPT: ::std::os::raw::c_uint = 1;
194pub const TRAP_TRACE: ::std::os::raw::c_uint = 2;
195pub const CLD_NOOP: ::std::os::raw::c_uint = 0;
196pub const CLD_EXITED: ::std::os::raw::c_uint = 1;
197pub const CLD_KILLED: ::std::os::raw::c_uint = 2;
198pub const CLD_DUMPED: ::std::os::raw::c_uint = 3;
199pub const CLD_TRAPPED: ::std::os::raw::c_uint = 4;
200pub const CLD_STOPPED: ::std::os::raw::c_uint = 5;
201pub const CLD_CONTINUED: ::std::os::raw::c_uint = 6;
202pub const POLL_IN: ::std::os::raw::c_uint = 1;
203pub const POLL_OUT: ::std::os::raw::c_uint = 2;
204pub const POLL_MSG: ::std::os::raw::c_uint = 3;
205pub const POLL_ERR: ::std::os::raw::c_uint = 4;
206pub const POLL_PRI: ::std::os::raw::c_uint = 5;
207pub const POLL_HUP: ::std::os::raw::c_uint = 6;
208pub const SA_ONSTACK: ::std::os::raw::c_uint = 1;
209pub const SA_RESTART: ::std::os::raw::c_uint = 2;
210pub const SA_RESETHAND: ::std::os::raw::c_uint = 4;
211pub const SA_NOCLDSTOP: ::std::os::raw::c_uint = 8;
212pub const SA_NODEFER: ::std::os::raw::c_uint = 16;
213pub const SA_NOCLDWAIT: ::std::os::raw::c_uint = 32;
214pub const SA_SIGINFO: ::std::os::raw::c_uint = 64;
215pub const SA_USERTRAMP: ::std::os::raw::c_uint = 256;
216pub const SA_64REGSET: ::std::os::raw::c_uint = 512;
217pub const SA_USERSPACE_MASK: ::std::os::raw::c_uint = 127;
218pub const SIG_BLOCK: ::std::os::raw::c_uint = 1;
219pub const SIG_UNBLOCK: ::std::os::raw::c_uint = 2;
220pub const SIG_SETMASK: ::std::os::raw::c_uint = 3;
221pub const SI_USER: ::std::os::raw::c_uint = 65537;
222pub const SI_QUEUE: ::std::os::raw::c_uint = 65538;
223pub const SI_TIMER: ::std::os::raw::c_uint = 65539;
224pub const SI_ASYNCIO: ::std::os::raw::c_uint = 65540;
225pub const SI_MESGQ: ::std::os::raw::c_uint = 65541;
226pub const SS_ONSTACK: ::std::os::raw::c_uint = 1;
227pub const SS_DISABLE: ::std::os::raw::c_uint = 4;
228pub const MINSIGSTKSZ: ::std::os::raw::c_uint = 32768;
229pub const SIGSTKSZ: ::std::os::raw::c_uint = 131072;
230pub const SV_ONSTACK: ::std::os::raw::c_uint = 1;
231pub const SV_INTERRUPT: ::std::os::raw::c_uint = 2;
232pub const SV_RESETHAND: ::std::os::raw::c_uint = 4;
233pub const SV_NODEFER: ::std::os::raw::c_uint = 16;
234pub const SV_NOCLDSTOP: ::std::os::raw::c_uint = 8;
235pub const SV_SIGINFO: ::std::os::raw::c_uint = 64;
236pub const __WORDSIZE: ::std::os::raw::c_uint = 64;
237pub const INT8_MAX: ::std::os::raw::c_uint = 127;
238pub const INT16_MAX: ::std::os::raw::c_uint = 32767;
239pub const INT32_MAX: ::std::os::raw::c_uint = 2147483647;
240pub const INT64_MAX: ::std::os::raw::c_ulonglong = 9223372036854775807;
241pub const INT8_MIN: ::std::os::raw::c_int = -128;
242pub const INT16_MIN: ::std::os::raw::c_int = -32768;
243pub const INT32_MIN: ::std::os::raw::c_int = -2147483648;
244pub const INT64_MIN: ::std::os::raw::c_longlong = -9223372036854775808;
245pub const UINT8_MAX: ::std::os::raw::c_uint = 255;
246pub const UINT16_MAX: ::std::os::raw::c_uint = 65535;
247pub const UINT32_MAX: ::std::os::raw::c_uint = 4294967295;
248pub const UINT64_MAX: ::std::os::raw::c_int = -1;
249pub const INT_LEAST8_MIN: ::std::os::raw::c_int = -128;
250pub const INT_LEAST16_MIN: ::std::os::raw::c_int = -32768;
251pub const INT_LEAST32_MIN: ::std::os::raw::c_int = -2147483648;
252pub const INT_LEAST64_MIN: ::std::os::raw::c_longlong = -9223372036854775808;
253pub const INT_LEAST8_MAX: ::std::os::raw::c_uint = 127;
254pub const INT_LEAST16_MAX: ::std::os::raw::c_uint = 32767;
255pub const INT_LEAST32_MAX: ::std::os::raw::c_uint = 2147483647;
256pub const INT_LEAST64_MAX: ::std::os::raw::c_ulonglong = 9223372036854775807;
257pub const UINT_LEAST8_MAX: ::std::os::raw::c_uint = 255;
258pub const UINT_LEAST16_MAX: ::std::os::raw::c_uint = 65535;
259pub const UINT_LEAST32_MAX: ::std::os::raw::c_uint = 4294967295;
260pub const UINT_LEAST64_MAX: ::std::os::raw::c_int = -1;
261pub const INT_FAST8_MIN: ::std::os::raw::c_int = -128;
262pub const INT_FAST16_MIN: ::std::os::raw::c_int = -32768;
263pub const INT_FAST32_MIN: ::std::os::raw::c_int = -2147483648;
264pub const INT_FAST64_MIN: ::std::os::raw::c_longlong = -9223372036854775808;
265pub const INT_FAST8_MAX: ::std::os::raw::c_uint = 127;
266pub const INT_FAST16_MAX: ::std::os::raw::c_uint = 32767;
267pub const INT_FAST32_MAX: ::std::os::raw::c_uint = 2147483647;
268pub const INT_FAST64_MAX: ::std::os::raw::c_ulonglong = 9223372036854775807;
269pub const UINT_FAST8_MAX: ::std::os::raw::c_uint = 255;
270pub const UINT_FAST16_MAX: ::std::os::raw::c_uint = 65535;
271pub const UINT_FAST32_MAX: ::std::os::raw::c_uint = 4294967295;
272pub const UINT_FAST64_MAX: ::std::os::raw::c_int = -1;
273pub const INTPTR_MIN: ::std::os::raw::c_longlong = -9223372036854775808;
274pub const INTPTR_MAX: ::std::os::raw::c_ulonglong = 9223372036854775807;
275pub const UINTPTR_MAX: ::std::os::raw::c_int = -1;
276pub const INTMAX_MIN: ::std::os::raw::c_longlong = -9223372036854775808;
277pub const INTMAX_MAX: ::std::os::raw::c_ulonglong = 9223372036854775807;
278pub const UINTMAX_MAX: ::std::os::raw::c_int = -1;
279pub const PTRDIFF_MIN: ::std::os::raw::c_longlong = -9223372036854775808;
280pub const PTRDIFF_MAX: ::std::os::raw::c_ulonglong = 9223372036854775807;
281pub const SIZE_MAX: ::std::os::raw::c_int = -1;
282pub const RSIZE_MAX: ::std::os::raw::c_int = -1;
283pub const WINT_MIN: ::std::os::raw::c_int = -2147483648;
284pub const WINT_MAX: ::std::os::raw::c_uint = 2147483647;
285pub const SIG_ATOMIC_MIN: ::std::os::raw::c_int = -2147483648;
286pub const SIG_ATOMIC_MAX: ::std::os::raw::c_uint = 2147483647;
287pub const PRIO_PROCESS: ::std::os::raw::c_uint = 0;
288pub const PRIO_PGRP: ::std::os::raw::c_uint = 1;
289pub const PRIO_USER: ::std::os::raw::c_uint = 2;
290pub const PRIO_DARWIN_THREAD: ::std::os::raw::c_uint = 3;
291pub const PRIO_DARWIN_PROCESS: ::std::os::raw::c_uint = 4;
292pub const PRIO_MIN: ::std::os::raw::c_int = -20;
293pub const PRIO_MAX: ::std::os::raw::c_uint = 20;
294pub const PRIO_DARWIN_BG: ::std::os::raw::c_uint = 4096;
295pub const PRIO_DARWIN_NONUI: ::std::os::raw::c_uint = 4097;
296pub const RUSAGE_SELF: ::std::os::raw::c_uint = 0;
297pub const RUSAGE_CHILDREN: ::std::os::raw::c_int = -1;
298pub const RUSAGE_INFO_V0: ::std::os::raw::c_uint = 0;
299pub const RUSAGE_INFO_V1: ::std::os::raw::c_uint = 1;
300pub const RUSAGE_INFO_V2: ::std::os::raw::c_uint = 2;
301pub const RUSAGE_INFO_V3: ::std::os::raw::c_uint = 3;
302pub const RUSAGE_INFO_CURRENT: ::std::os::raw::c_uint = 3;
303pub const RLIMIT_CPU: ::std::os::raw::c_uint = 0;
304pub const RLIMIT_FSIZE: ::std::os::raw::c_uint = 1;
305pub const RLIMIT_DATA: ::std::os::raw::c_uint = 2;
306pub const RLIMIT_STACK: ::std::os::raw::c_uint = 3;
307pub const RLIMIT_CORE: ::std::os::raw::c_uint = 4;
308pub const RLIMIT_AS: ::std::os::raw::c_uint = 5;
309pub const RLIMIT_RSS: ::std::os::raw::c_uint = 5;
310pub const RLIMIT_MEMLOCK: ::std::os::raw::c_uint = 6;
311pub const RLIMIT_NPROC: ::std::os::raw::c_uint = 7;
312pub const RLIMIT_NOFILE: ::std::os::raw::c_uint = 8;
313pub const RLIM_NLIMITS: ::std::os::raw::c_uint = 9;
314pub const _RLIMIT_POSIX_FLAG: ::std::os::raw::c_uint = 4096;
315pub const RLIMIT_WAKEUPS_MONITOR: ::std::os::raw::c_uint = 1;
316pub const RLIMIT_CPU_USAGE_MONITOR: ::std::os::raw::c_uint = 2;
317pub const RLIMIT_THREAD_CPULIMITS: ::std::os::raw::c_uint = 3;
318pub const WAKEMON_ENABLE: ::std::os::raw::c_uint = 1;
319pub const WAKEMON_DISABLE: ::std::os::raw::c_uint = 2;
320pub const WAKEMON_GET_PARAMS: ::std::os::raw::c_uint = 4;
321pub const WAKEMON_SET_DEFAULTS: ::std::os::raw::c_uint = 8;
322pub const WAKEMON_MAKE_FATAL: ::std::os::raw::c_uint = 16;
323pub const CPUMON_MAKE_FATAL: ::std::os::raw::c_uint = 4096;
324pub const IOPOL_TYPE_DISK: ::std::os::raw::c_uint = 0;
325pub const IOPOL_SCOPE_PROCESS: ::std::os::raw::c_uint = 0;
326pub const IOPOL_SCOPE_THREAD: ::std::os::raw::c_uint = 1;
327pub const IOPOL_SCOPE_DARWIN_BG: ::std::os::raw::c_uint = 2;
328pub const IOPOL_DEFAULT: ::std::os::raw::c_uint = 0;
329pub const IOPOL_IMPORTANT: ::std::os::raw::c_uint = 1;
330pub const IOPOL_PASSIVE: ::std::os::raw::c_uint = 2;
331pub const IOPOL_THROTTLE: ::std::os::raw::c_uint = 3;
332pub const IOPOL_UTILITY: ::std::os::raw::c_uint = 4;
333pub const IOPOL_STANDARD: ::std::os::raw::c_uint = 5;
334pub const IOPOL_APPLICATION: ::std::os::raw::c_uint = 5;
335pub const IOPOL_NORMAL: ::std::os::raw::c_uint = 1;
336pub const WNOHANG: ::std::os::raw::c_uint = 1;
337pub const WUNTRACED: ::std::os::raw::c_uint = 2;
338pub const WCOREFLAG: ::std::os::raw::c_uint = 128;
339pub const _WSTOPPED: ::std::os::raw::c_uint = 127;
340pub const WEXITED: ::std::os::raw::c_uint = 4;
341pub const WSTOPPED: ::std::os::raw::c_uint = 8;
342pub const WCONTINUED: ::std::os::raw::c_uint = 16;
343pub const WNOWAIT: ::std::os::raw::c_uint = 32;
344pub const WAIT_ANY: ::std::os::raw::c_int = -1;
345pub const WAIT_MYPGRP: ::std::os::raw::c_uint = 0;
346pub const _QUAD_HIGHWORD: ::std::os::raw::c_uint = 1;
347pub const _QUAD_LOWWORD: ::std::os::raw::c_uint = 0;
348pub const __DARWIN_LITTLE_ENDIAN: ::std::os::raw::c_uint = 1234;
349pub const __DARWIN_BIG_ENDIAN: ::std::os::raw::c_uint = 4321;
350pub const __DARWIN_PDP_ENDIAN: ::std::os::raw::c_uint = 3412;
351pub const __DARWIN_BYTE_ORDER: ::std::os::raw::c_uint = 1234;
352pub const LITTLE_ENDIAN: ::std::os::raw::c_uint = 1234;
353pub const BIG_ENDIAN: ::std::os::raw::c_uint = 4321;
354pub const PDP_ENDIAN: ::std::os::raw::c_uint = 3412;
355pub const BYTE_ORDER: ::std::os::raw::c_uint = 1234;
356pub const EXIT_FAILURE: ::std::os::raw::c_uint = 1;
357pub const EXIT_SUCCESS: ::std::os::raw::c_uint = 0;
358pub const RAND_MAX: ::std::os::raw::c_uint = 2147483647;
359pub const CLOCKS_PER_SEC: ::std::os::raw::c_uint = 1000000;
360pub const VL_VERSION_STRING: &'static [u8; 7usize] = b"0.9.20\x00";
361pub const VL_ERR_MSG_LEN: ::std::os::raw::c_uint = 1024;
362pub const VL_TYPE_FLOAT: ::std::os::raw::c_uint = 1;
363pub const VL_TYPE_DOUBLE: ::std::os::raw::c_uint = 2;
364pub const VL_TYPE_INT8: ::std::os::raw::c_uint = 3;
365pub const VL_TYPE_UINT8: ::std::os::raw::c_uint = 4;
366pub const VL_TYPE_INT16: ::std::os::raw::c_uint = 5;
367pub const VL_TYPE_UINT16: ::std::os::raw::c_uint = 6;
368pub const VL_TYPE_INT32: ::std::os::raw::c_uint = 7;
369pub const VL_TYPE_UINT32: ::std::os::raw::c_uint = 8;
370pub const VL_TYPE_INT64: ::std::os::raw::c_uint = 9;
371pub const VL_TYPE_UINT64: ::std::os::raw::c_uint = 10;
372pub const VL_ERR_OK: ::std::os::raw::c_uint = 0;
373pub const VL_ERR_OVERFLOW: ::std::os::raw::c_uint = 1;
374pub const VL_ERR_ALLOC: ::std::os::raw::c_uint = 2;
375pub const VL_ERR_BAD_ARG: ::std::os::raw::c_uint = 3;
376pub const VL_ERR_IO: ::std::os::raw::c_uint = 4;
377pub const VL_ERR_EOF: ::std::os::raw::c_uint = 5;
378pub const VL_ERR_NO_MORE: ::std::os::raw::c_uint = 5;
379pub const FP_NAN: ::std::os::raw::c_uint = 1;
380pub const FP_INFINITE: ::std::os::raw::c_uint = 2;
381pub const FP_ZERO: ::std::os::raw::c_uint = 3;
382pub const FP_NORMAL: ::std::os::raw::c_uint = 4;
383pub const FP_SUBNORMAL: ::std::os::raw::c_uint = 5;
384pub const FP_SUPERNORMAL: ::std::os::raw::c_uint = 6;
385pub const FP_ILOGB0: ::std::os::raw::c_int = -2147483648;
386pub const FP_ILOGBNAN: ::std::os::raw::c_int = -2147483648;
387pub const MATH_ERRNO: ::std::os::raw::c_uint = 1;
388pub const MATH_ERREXCEPT: ::std::os::raw::c_uint = 2;
389pub const M_E: f32 = 2.718281828459045;
390pub const M_LOG2E: f32 = 1.4426950408889634;
391pub const M_LOG10E: f32 = 0.4342944819032518;
392pub const M_LN2: f32 = 0.6931471805599453;
393pub const M_LN10: f32 = 2.302585092994046;
394pub const M_PI: f32 = 3.141592653589793;
395pub const M_PI_2: f32 = 1.5707963267948966;
396pub const M_PI_4: f32 = 0.7853981633974483;
397pub const M_1_PI: f32 = 0.3183098861837907;
398pub const M_2_PI: f32 = 0.6366197723675814;
399pub const M_2_SQRTPI: f32 = 1.1283791670955126;
400pub const M_SQRT2: f32 = 1.4142135623730951;
401pub const M_SQRT1_2: f32 = 0.7071067811865476;
402pub const FP_SNAN: ::std::os::raw::c_uint = 1;
403pub const FP_QNAN: ::std::os::raw::c_uint = 1;
404pub const DOMAIN: ::std::os::raw::c_uint = 1;
405pub const SING: ::std::os::raw::c_uint = 2;
406pub const OVERFLOW: ::std::os::raw::c_uint = 3;
407pub const UNDERFLOW: ::std::os::raw::c_uint = 4;
408pub const TLOSS: ::std::os::raw::c_uint = 5;
409pub const PLOSS: ::std::os::raw::c_uint = 6;
410pub const VL_E: f32 = 2.718281828459045;
411pub const VL_LOG_OF_2: f32 = 0.693147180559945;
412pub const VL_PI: f32 = 3.141592653589793;
413pub const VL_ARRAY_MAX_NUM_DIMENSIONS: ::std::os::raw::c_uint = 16;
414pub const VL_PAD_BY_ZERO: ::std::os::raw::c_uint = 0;
415pub const VL_PAD_BY_CONTINUITY: ::std::os::raw::c_uint = 1;
416pub const VL_PAD_MASK: ::std::os::raw::c_uint = 3;
417pub const VL_TRANSPOSE: ::std::os::raw::c_uint = 4;
418pub const __SLBF: ::std::os::raw::c_uint = 1;
419pub const __SNBF: ::std::os::raw::c_uint = 2;
420pub const __SRD: ::std::os::raw::c_uint = 4;
421pub const __SWR: ::std::os::raw::c_uint = 8;
422pub const __SRW: ::std::os::raw::c_uint = 16;
423pub const __SEOF: ::std::os::raw::c_uint = 32;
424pub const __SERR: ::std::os::raw::c_uint = 64;
425pub const __SMBF: ::std::os::raw::c_uint = 128;
426pub const __SAPP: ::std::os::raw::c_uint = 256;
427pub const __SSTR: ::std::os::raw::c_uint = 512;
428pub const __SOPT: ::std::os::raw::c_uint = 1024;
429pub const __SNPT: ::std::os::raw::c_uint = 2048;
430pub const __SOFF: ::std::os::raw::c_uint = 4096;
431pub const __SMOD: ::std::os::raw::c_uint = 8192;
432pub const __SALC: ::std::os::raw::c_uint = 16384;
433pub const __SIGN: ::std::os::raw::c_uint = 32768;
434pub const _IOFBF: ::std::os::raw::c_uint = 0;
435pub const _IOLBF: ::std::os::raw::c_uint = 1;
436pub const _IONBF: ::std::os::raw::c_uint = 2;
437pub const BUFSIZ: ::std::os::raw::c_uint = 1024;
438pub const EOF: ::std::os::raw::c_int = -1;
439pub const FOPEN_MAX: ::std::os::raw::c_uint = 20;
440pub const FILENAME_MAX: ::std::os::raw::c_uint = 1024;
441pub const P_tmpdir: &'static [u8; 10usize] = b"/var/tmp/\x00";
442pub const L_tmpnam: ::std::os::raw::c_uint = 1024;
443pub const TMP_MAX: ::std::os::raw::c_uint = 308915776;
444pub const SEEK_SET: ::std::os::raw::c_uint = 0;
445pub const SEEK_CUR: ::std::os::raw::c_uint = 1;
446pub const SEEK_END: ::std::os::raw::c_uint = 2;
447pub const L_ctermid: ::std::os::raw::c_uint = 1024;
448pub const __CTERMID_DEFINED: ::std::os::raw::c_uint = 1;
449pub const _USE_FORTIFY_LEVEL: ::std::os::raw::c_uint = 2;
450pub const VL_FISHER_FLAG_SQUARE_ROOT: ::std::os::raw::c_uint = 1;
451pub const VL_FISHER_FLAG_NORMALIZED: ::std::os::raw::c_uint = 2;
452pub const VL_FISHER_FLAG_IMPROVED: ::std::os::raw::c_uint = 3;
453pub const VL_FISHER_FLAG_FAST: ::std::os::raw::c_uint = 4;
454pub const no_argument: ::std::os::raw::c_uint = 0;
455pub const required_argument: ::std::os::raw::c_uint = 1;
456pub const optional_argument: ::std::os::raw::c_uint = 2;
457pub const VL_KDTREE_SPLIT_HEAP_SIZE: ::std::os::raw::c_uint = 5;
458pub const VL_KDTREE_VARIANCE_EST_NUM_SAMPLES: ::std::os::raw::c_uint = 1024;
459pub const VL_IKMACC_MAX: ::std::os::raw::c_uint = 2147483647;
460pub const FLT: ::std::os::raw::c_uint = 2;
461pub const VSIZE: ::std::os::raw::c_uint = 2;
462pub const VL_MSER_PIX_MAXVAL: ::std::os::raw::c_uint = 256;
463pub const VL_MSER_VOID_NODE: ::std::os::raw::c_uint = 4294967295;
464pub const VL_ERR_PGM_INV_HEAD: ::std::os::raw::c_uint = 101;
465pub const VL_ERR_PGM_INV_META: ::std::os::raw::c_uint = 102;
466pub const VL_ERR_PGM_INV_DATA: ::std::os::raw::c_uint = 103;
467pub const VL_ERR_PGM_IO: ::std::os::raw::c_uint = 104;
468pub const VL_VLAD_FLAG_NORMALIZE_COMPONENTS: ::std::os::raw::c_uint = 1;
469pub const VL_VLAD_FLAG_SQUARE_ROOT: ::std::os::raw::c_uint = 2;
470pub const VL_VLAD_FLAG_UNNORMALIZED: ::std::os::raw::c_uint = 4;
471pub const VL_VLAD_FLAG_NORMALIZE_MASS: ::std::os::raw::c_uint = 8;
472extern "C" {
473    pub fn vl_static_configuration_to_string_copy()
474     -> *mut ::std::os::raw::c_char;
475}
476pub type vl_int64 = ::std::os::raw::c_longlong;
477pub type vl_int32 = ::std::os::raw::c_int;
478pub type vl_int16 = ::std::os::raw::c_short;
479pub type vl_int8 = ::std::os::raw::c_char;
480pub type vl_uint64 = ::std::os::raw::c_ulonglong;
481pub type vl_uint32 = ::std::os::raw::c_uint;
482pub type vl_uint16 = ::std::os::raw::c_ushort;
483pub type vl_uint8 = ::std::os::raw::c_uchar;
484pub type vl_int = ::std::os::raw::c_int;
485pub type vl_uint = ::std::os::raw::c_uint;
486pub type vl_bool = ::std::os::raw::c_int;
487pub type vl_intptr = vl_int64;
488pub type vl_uintptr = vl_uint64;
489pub type vl_size = vl_uint64;
490pub type vl_index = vl_int64;
491pub type vl_uindex = vl_uint64;
492/** ------------------------------------------------------------------
493 ** @name Obtaining host info at run time
494 ** @{ */
495#[repr(C)]
496#[derive(Debug, Copy)]
497pub struct _VlX86CpuInfo {
498    pub vendor: _VlX86CpuInfo__bindgen_ty_1,
499    pub hasAVX: vl_bool,
500    pub hasSSE42: vl_bool,
501    pub hasSSE41: vl_bool,
502    pub hasSSE3: vl_bool,
503    pub hasSSE2: vl_bool,
504    pub hasSSE: vl_bool,
505    pub hasMMX: vl_bool,
506}
507#[repr(C)]
508#[derive(Debug, Copy)]
509pub struct _VlX86CpuInfo__bindgen_ty_1 {
510    pub string: __BindgenUnionField<[::std::os::raw::c_char; 32usize]>,
511    pub words: __BindgenUnionField<[vl_uint32; 8usize]>,
512    pub bindgen_union_field: [u32; 8usize],
513}
514#[test]
515fn bindgen_test_layout__VlX86CpuInfo__bindgen_ty_1() {
516    assert_eq!(::std::mem::size_of::<_VlX86CpuInfo__bindgen_ty_1>() , 32usize
517               , concat ! (
518               "Size of: " , stringify ! ( _VlX86CpuInfo__bindgen_ty_1 ) ));
519    assert_eq! (::std::mem::align_of::<_VlX86CpuInfo__bindgen_ty_1>() , 4usize
520                , concat ! (
521                "Alignment of " , stringify ! ( _VlX86CpuInfo__bindgen_ty_1 )
522                ));
523    assert_eq! (unsafe {
524                & ( * ( 0 as * const _VlX86CpuInfo__bindgen_ty_1 ) ) . string
525                as * const _ as usize } , 0usize , concat ! (
526                "Alignment of field: " , stringify ! (
527                _VlX86CpuInfo__bindgen_ty_1 ) , "::" , stringify ! ( string )
528                ));
529    assert_eq! (unsafe {
530                & ( * ( 0 as * const _VlX86CpuInfo__bindgen_ty_1 ) ) . words
531                as * const _ as usize } , 0usize , concat ! (
532                "Alignment of field: " , stringify ! (
533                _VlX86CpuInfo__bindgen_ty_1 ) , "::" , stringify ! ( words )
534                ));
535}
536impl Clone for _VlX86CpuInfo__bindgen_ty_1 {
537    fn clone(&self) -> Self { *self }
538}
539#[test]
540fn bindgen_test_layout__VlX86CpuInfo() {
541    assert_eq!(::std::mem::size_of::<_VlX86CpuInfo>() , 60usize , concat ! (
542               "Size of: " , stringify ! ( _VlX86CpuInfo ) ));
543    assert_eq! (::std::mem::align_of::<_VlX86CpuInfo>() , 4usize , concat ! (
544                "Alignment of " , stringify ! ( _VlX86CpuInfo ) ));
545    assert_eq! (unsafe {
546                & ( * ( 0 as * const _VlX86CpuInfo ) ) . vendor as * const _
547                as usize } , 0usize , concat ! (
548                "Alignment of field: " , stringify ! ( _VlX86CpuInfo ) , "::"
549                , stringify ! ( vendor ) ));
550    assert_eq! (unsafe {
551                & ( * ( 0 as * const _VlX86CpuInfo ) ) . hasAVX as * const _
552                as usize } , 32usize , concat ! (
553                "Alignment of field: " , stringify ! ( _VlX86CpuInfo ) , "::"
554                , stringify ! ( hasAVX ) ));
555    assert_eq! (unsafe {
556                & ( * ( 0 as * const _VlX86CpuInfo ) ) . hasSSE42 as * const _
557                as usize } , 36usize , concat ! (
558                "Alignment of field: " , stringify ! ( _VlX86CpuInfo ) , "::"
559                , stringify ! ( hasSSE42 ) ));
560    assert_eq! (unsafe {
561                & ( * ( 0 as * const _VlX86CpuInfo ) ) . hasSSE41 as * const _
562                as usize } , 40usize , concat ! (
563                "Alignment of field: " , stringify ! ( _VlX86CpuInfo ) , "::"
564                , stringify ! ( hasSSE41 ) ));
565    assert_eq! (unsafe {
566                & ( * ( 0 as * const _VlX86CpuInfo ) ) . hasSSE3 as * const _
567                as usize } , 44usize , concat ! (
568                "Alignment of field: " , stringify ! ( _VlX86CpuInfo ) , "::"
569                , stringify ! ( hasSSE3 ) ));
570    assert_eq! (unsafe {
571                & ( * ( 0 as * const _VlX86CpuInfo ) ) . hasSSE2 as * const _
572                as usize } , 48usize , concat ! (
573                "Alignment of field: " , stringify ! ( _VlX86CpuInfo ) , "::"
574                , stringify ! ( hasSSE2 ) ));
575    assert_eq! (unsafe {
576                & ( * ( 0 as * const _VlX86CpuInfo ) ) . hasSSE as * const _
577                as usize } , 52usize , concat ! (
578                "Alignment of field: " , stringify ! ( _VlX86CpuInfo ) , "::"
579                , stringify ! ( hasSSE ) ));
580    assert_eq! (unsafe {
581                & ( * ( 0 as * const _VlX86CpuInfo ) ) . hasMMX as * const _
582                as usize } , 56usize , concat ! (
583                "Alignment of field: " , stringify ! ( _VlX86CpuInfo ) , "::"
584                , stringify ! ( hasMMX ) ));
585}
586impl Clone for _VlX86CpuInfo {
587    fn clone(&self) -> Self { *self }
588}
589pub type VlX86CpuInfo = _VlX86CpuInfo;
590extern "C" {
591    pub fn _vl_x86cpu_info_init(self_: *mut VlX86CpuInfo);
592}
593extern "C" {
594    pub fn _vl_x86cpu_info_to_string_copy(self_: *const VlX86CpuInfo)
595     -> *mut ::std::os::raw::c_char;
596}
597/** @brief Random numbber generator state */
598#[repr(C)]
599pub struct _VlRand {
600    pub mt: [vl_uint32; 624usize],
601    pub mti: vl_uint32,
602}
603#[test]
604fn bindgen_test_layout__VlRand() {
605    assert_eq!(::std::mem::size_of::<_VlRand>() , 2500usize , concat ! (
606               "Size of: " , stringify ! ( _VlRand ) ));
607    assert_eq! (::std::mem::align_of::<_VlRand>() , 4usize , concat ! (
608                "Alignment of " , stringify ! ( _VlRand ) ));
609    assert_eq! (unsafe {
610                & ( * ( 0 as * const _VlRand ) ) . mt as * const _ as usize }
611                , 0usize , concat ! (
612                "Alignment of field: " , stringify ! ( _VlRand ) , "::" ,
613                stringify ! ( mt ) ));
614    assert_eq! (unsafe {
615                & ( * ( 0 as * const _VlRand ) ) . mti as * const _ as usize }
616                , 2496usize , concat ! (
617                "Alignment of field: " , stringify ! ( _VlRand ) , "::" ,
618                stringify ! ( mti ) ));
619}
620pub type VlRand = _VlRand;
621extern "C" {
622    /** @name Setting and reading the state
623 **
624 ** @{ */
625    pub fn vl_rand_init(self_: *mut VlRand);
626}
627extern "C" {
628    pub fn vl_rand_seed(self_: *mut VlRand, s: vl_uint32);
629}
630extern "C" {
631    pub fn vl_rand_seed_by_array(self_: *mut VlRand, key: *const vl_uint32,
632                                 keySize: vl_size);
633}
634extern "C" {
635    pub fn vl_rand_uint32(self_: *mut VlRand) -> vl_uint32;
636}
637extern "C" {
638    /** @} */
639    pub fn vl_rand_permute_indexes(self_: *mut VlRand, array: *mut vl_index,
640                                   size: vl_size);
641}
642pub type __int8_t = ::std::os::raw::c_char;
643pub type __uint8_t = ::std::os::raw::c_uchar;
644pub type __int16_t = ::std::os::raw::c_short;
645pub type __uint16_t = ::std::os::raw::c_ushort;
646pub type __int32_t = ::std::os::raw::c_int;
647pub type __uint32_t = ::std::os::raw::c_uint;
648pub type __int64_t = ::std::os::raw::c_longlong;
649pub type __uint64_t = ::std::os::raw::c_ulonglong;
650pub type __darwin_intptr_t = ::std::os::raw::c_long;
651pub type __darwin_natural_t = ::std::os::raw::c_uint;
652pub type __darwin_ct_rune_t = ::std::os::raw::c_int;
653#[repr(C)]
654#[derive(Debug, Copy)]
655pub struct __mbstate_t {
656    pub __mbstate8: __BindgenUnionField<[::std::os::raw::c_char; 128usize]>,
657    pub _mbstateL: __BindgenUnionField<::std::os::raw::c_longlong>,
658    pub bindgen_union_field: [u64; 16usize],
659}
660#[test]
661fn bindgen_test_layout___mbstate_t() {
662    assert_eq!(::std::mem::size_of::<__mbstate_t>() , 128usize , concat ! (
663               "Size of: " , stringify ! ( __mbstate_t ) ));
664    assert_eq! (::std::mem::align_of::<__mbstate_t>() , 8usize , concat ! (
665                "Alignment of " , stringify ! ( __mbstate_t ) ));
666    assert_eq! (unsafe {
667                & ( * ( 0 as * const __mbstate_t ) ) . __mbstate8 as * const _
668                as usize } , 0usize , concat ! (
669                "Alignment of field: " , stringify ! ( __mbstate_t ) , "::" ,
670                stringify ! ( __mbstate8 ) ));
671    assert_eq! (unsafe {
672                & ( * ( 0 as * const __mbstate_t ) ) . _mbstateL as * const _
673                as usize } , 0usize , concat ! (
674                "Alignment of field: " , stringify ! ( __mbstate_t ) , "::" ,
675                stringify ! ( _mbstateL ) ));
676}
677impl Clone for __mbstate_t {
678    fn clone(&self) -> Self { *self }
679}
680pub type __darwin_mbstate_t = __mbstate_t;
681pub type __darwin_ptrdiff_t = ::std::os::raw::c_long;
682pub type __darwin_size_t = ::std::os::raw::c_ulong;
683pub type __darwin_va_list = __builtin_va_list;
684pub type __darwin_wchar_t = ::std::os::raw::c_int;
685pub type __darwin_rune_t = __darwin_wchar_t;
686pub type __darwin_wint_t = ::std::os::raw::c_int;
687pub type __darwin_clock_t = ::std::os::raw::c_ulong;
688pub type __darwin_socklen_t = __uint32_t;
689pub type __darwin_ssize_t = ::std::os::raw::c_long;
690pub type __darwin_time_t = ::std::os::raw::c_long;
691pub type __darwin_blkcnt_t = __int64_t;
692pub type __darwin_blksize_t = __int32_t;
693pub type __darwin_dev_t = __int32_t;
694pub type __darwin_fsblkcnt_t = ::std::os::raw::c_uint;
695pub type __darwin_fsfilcnt_t = ::std::os::raw::c_uint;
696pub type __darwin_gid_t = __uint32_t;
697pub type __darwin_id_t = __uint32_t;
698pub type __darwin_ino64_t = __uint64_t;
699pub type __darwin_ino_t = __darwin_ino64_t;
700pub type __darwin_mach_port_name_t = __darwin_natural_t;
701pub type __darwin_mach_port_t = __darwin_mach_port_name_t;
702pub type __darwin_mode_t = __uint16_t;
703pub type __darwin_off_t = __int64_t;
704pub type __darwin_pid_t = __int32_t;
705pub type __darwin_sigset_t = __uint32_t;
706pub type __darwin_suseconds_t = __int32_t;
707pub type __darwin_uid_t = __uint32_t;
708pub type __darwin_useconds_t = __uint32_t;
709pub type __darwin_uuid_t = [::std::os::raw::c_uchar; 16usize];
710pub type __darwin_uuid_string_t = [::std::os::raw::c_char; 37usize];
711#[repr(C)]
712#[derive(Debug, Copy)]
713pub struct __darwin_pthread_handler_rec {
714    pub __routine: ::std::option::Option<unsafe extern "C" fn(arg1:
715                                                                  *mut ::std::os::raw::c_void)>,
716    pub __arg: *mut ::std::os::raw::c_void,
717    pub __next: *mut __darwin_pthread_handler_rec,
718}
719#[test]
720fn bindgen_test_layout___darwin_pthread_handler_rec() {
721    assert_eq!(::std::mem::size_of::<__darwin_pthread_handler_rec>() , 24usize
722               , concat ! (
723               "Size of: " , stringify ! ( __darwin_pthread_handler_rec ) ));
724    assert_eq! (::std::mem::align_of::<__darwin_pthread_handler_rec>() ,
725                8usize , concat ! (
726                "Alignment of " , stringify ! ( __darwin_pthread_handler_rec )
727                ));
728    assert_eq! (unsafe {
729                & ( * ( 0 as * const __darwin_pthread_handler_rec ) ) .
730                __routine as * const _ as usize } , 0usize , concat ! (
731                "Alignment of field: " , stringify ! (
732                __darwin_pthread_handler_rec ) , "::" , stringify ! (
733                __routine ) ));
734    assert_eq! (unsafe {
735                & ( * ( 0 as * const __darwin_pthread_handler_rec ) ) . __arg
736                as * const _ as usize } , 8usize , concat ! (
737                "Alignment of field: " , stringify ! (
738                __darwin_pthread_handler_rec ) , "::" , stringify ! ( __arg )
739                ));
740    assert_eq! (unsafe {
741                & ( * ( 0 as * const __darwin_pthread_handler_rec ) ) . __next
742                as * const _ as usize } , 16usize , concat ! (
743                "Alignment of field: " , stringify ! (
744                __darwin_pthread_handler_rec ) , "::" , stringify ! ( __next )
745                ));
746}
747impl Clone for __darwin_pthread_handler_rec {
748    fn clone(&self) -> Self { *self }
749}
750#[repr(C)]
751pub struct _opaque_pthread_attr_t {
752    pub __sig: ::std::os::raw::c_long,
753    pub __opaque: [::std::os::raw::c_char; 56usize],
754}
755#[test]
756fn bindgen_test_layout__opaque_pthread_attr_t() {
757    assert_eq!(::std::mem::size_of::<_opaque_pthread_attr_t>() , 64usize ,
758               concat ! ( "Size of: " , stringify ! ( _opaque_pthread_attr_t )
759               ));
760    assert_eq! (::std::mem::align_of::<_opaque_pthread_attr_t>() , 8usize ,
761                concat ! (
762                "Alignment of " , stringify ! ( _opaque_pthread_attr_t ) ));
763    assert_eq! (unsafe {
764                & ( * ( 0 as * const _opaque_pthread_attr_t ) ) . __sig as *
765                const _ as usize } , 0usize , concat ! (
766                "Alignment of field: " , stringify ! ( _opaque_pthread_attr_t
767                ) , "::" , stringify ! ( __sig ) ));
768    assert_eq! (unsafe {
769                & ( * ( 0 as * const _opaque_pthread_attr_t ) ) . __opaque as
770                * const _ as usize } , 8usize , concat ! (
771                "Alignment of field: " , stringify ! ( _opaque_pthread_attr_t
772                ) , "::" , stringify ! ( __opaque ) ));
773}
774#[repr(C)]
775pub struct _opaque_pthread_cond_t {
776    pub __sig: ::std::os::raw::c_long,
777    pub __opaque: [::std::os::raw::c_char; 40usize],
778}
779#[test]
780fn bindgen_test_layout__opaque_pthread_cond_t() {
781    assert_eq!(::std::mem::size_of::<_opaque_pthread_cond_t>() , 48usize ,
782               concat ! ( "Size of: " , stringify ! ( _opaque_pthread_cond_t )
783               ));
784    assert_eq! (::std::mem::align_of::<_opaque_pthread_cond_t>() , 8usize ,
785                concat ! (
786                "Alignment of " , stringify ! ( _opaque_pthread_cond_t ) ));
787    assert_eq! (unsafe {
788                & ( * ( 0 as * const _opaque_pthread_cond_t ) ) . __sig as *
789                const _ as usize } , 0usize , concat ! (
790                "Alignment of field: " , stringify ! ( _opaque_pthread_cond_t
791                ) , "::" , stringify ! ( __sig ) ));
792    assert_eq! (unsafe {
793                & ( * ( 0 as * const _opaque_pthread_cond_t ) ) . __opaque as
794                * const _ as usize } , 8usize , concat ! (
795                "Alignment of field: " , stringify ! ( _opaque_pthread_cond_t
796                ) , "::" , stringify ! ( __opaque ) ));
797}
798#[repr(C)]
799#[derive(Debug, Copy)]
800pub struct _opaque_pthread_condattr_t {
801    pub __sig: ::std::os::raw::c_long,
802    pub __opaque: [::std::os::raw::c_char; 8usize],
803}
804#[test]
805fn bindgen_test_layout__opaque_pthread_condattr_t() {
806    assert_eq!(::std::mem::size_of::<_opaque_pthread_condattr_t>() , 16usize ,
807               concat ! (
808               "Size of: " , stringify ! ( _opaque_pthread_condattr_t ) ));
809    assert_eq! (::std::mem::align_of::<_opaque_pthread_condattr_t>() , 8usize
810                , concat ! (
811                "Alignment of " , stringify ! ( _opaque_pthread_condattr_t )
812                ));
813    assert_eq! (unsafe {
814                & ( * ( 0 as * const _opaque_pthread_condattr_t ) ) . __sig as
815                * const _ as usize } , 0usize , concat ! (
816                "Alignment of field: " , stringify ! (
817                _opaque_pthread_condattr_t ) , "::" , stringify ! ( __sig )
818                ));
819    assert_eq! (unsafe {
820                & ( * ( 0 as * const _opaque_pthread_condattr_t ) ) . __opaque
821                as * const _ as usize } , 8usize , concat ! (
822                "Alignment of field: " , stringify ! (
823                _opaque_pthread_condattr_t ) , "::" , stringify ! ( __opaque )
824                ));
825}
826impl Clone for _opaque_pthread_condattr_t {
827    fn clone(&self) -> Self { *self }
828}
829#[repr(C)]
830pub struct _opaque_pthread_mutex_t {
831    pub __sig: ::std::os::raw::c_long,
832    pub __opaque: [::std::os::raw::c_char; 56usize],
833}
834#[test]
835fn bindgen_test_layout__opaque_pthread_mutex_t() {
836    assert_eq!(::std::mem::size_of::<_opaque_pthread_mutex_t>() , 64usize ,
837               concat ! (
838               "Size of: " , stringify ! ( _opaque_pthread_mutex_t ) ));
839    assert_eq! (::std::mem::align_of::<_opaque_pthread_mutex_t>() , 8usize ,
840                concat ! (
841                "Alignment of " , stringify ! ( _opaque_pthread_mutex_t ) ));
842    assert_eq! (unsafe {
843                & ( * ( 0 as * const _opaque_pthread_mutex_t ) ) . __sig as *
844                const _ as usize } , 0usize , concat ! (
845                "Alignment of field: " , stringify ! ( _opaque_pthread_mutex_t
846                ) , "::" , stringify ! ( __sig ) ));
847    assert_eq! (unsafe {
848                & ( * ( 0 as * const _opaque_pthread_mutex_t ) ) . __opaque as
849                * const _ as usize } , 8usize , concat ! (
850                "Alignment of field: " , stringify ! ( _opaque_pthread_mutex_t
851                ) , "::" , stringify ! ( __opaque ) ));
852}
853#[repr(C)]
854#[derive(Debug, Copy)]
855pub struct _opaque_pthread_mutexattr_t {
856    pub __sig: ::std::os::raw::c_long,
857    pub __opaque: [::std::os::raw::c_char; 8usize],
858}
859#[test]
860fn bindgen_test_layout__opaque_pthread_mutexattr_t() {
861    assert_eq!(::std::mem::size_of::<_opaque_pthread_mutexattr_t>() , 16usize
862               , concat ! (
863               "Size of: " , stringify ! ( _opaque_pthread_mutexattr_t ) ));
864    assert_eq! (::std::mem::align_of::<_opaque_pthread_mutexattr_t>() , 8usize
865                , concat ! (
866                "Alignment of " , stringify ! ( _opaque_pthread_mutexattr_t )
867                ));
868    assert_eq! (unsafe {
869                & ( * ( 0 as * const _opaque_pthread_mutexattr_t ) ) . __sig
870                as * const _ as usize } , 0usize , concat ! (
871                "Alignment of field: " , stringify ! (
872                _opaque_pthread_mutexattr_t ) , "::" , stringify ! ( __sig )
873                ));
874    assert_eq! (unsafe {
875                & ( * ( 0 as * const _opaque_pthread_mutexattr_t ) ) .
876                __opaque as * const _ as usize } , 8usize , concat ! (
877                "Alignment of field: " , stringify ! (
878                _opaque_pthread_mutexattr_t ) , "::" , stringify ! ( __opaque
879                ) ));
880}
881impl Clone for _opaque_pthread_mutexattr_t {
882    fn clone(&self) -> Self { *self }
883}
884#[repr(C)]
885#[derive(Debug, Copy)]
886pub struct _opaque_pthread_once_t {
887    pub __sig: ::std::os::raw::c_long,
888    pub __opaque: [::std::os::raw::c_char; 8usize],
889}
890#[test]
891fn bindgen_test_layout__opaque_pthread_once_t() {
892    assert_eq!(::std::mem::size_of::<_opaque_pthread_once_t>() , 16usize ,
893               concat ! ( "Size of: " , stringify ! ( _opaque_pthread_once_t )
894               ));
895    assert_eq! (::std::mem::align_of::<_opaque_pthread_once_t>() , 8usize ,
896                concat ! (
897                "Alignment of " , stringify ! ( _opaque_pthread_once_t ) ));
898    assert_eq! (unsafe {
899                & ( * ( 0 as * const _opaque_pthread_once_t ) ) . __sig as *
900                const _ as usize } , 0usize , concat ! (
901                "Alignment of field: " , stringify ! ( _opaque_pthread_once_t
902                ) , "::" , stringify ! ( __sig ) ));
903    assert_eq! (unsafe {
904                & ( * ( 0 as * const _opaque_pthread_once_t ) ) . __opaque as
905                * const _ as usize } , 8usize , concat ! (
906                "Alignment of field: " , stringify ! ( _opaque_pthread_once_t
907                ) , "::" , stringify ! ( __opaque ) ));
908}
909impl Clone for _opaque_pthread_once_t {
910    fn clone(&self) -> Self { *self }
911}
912#[repr(C)]
913pub struct _opaque_pthread_rwlock_t {
914    pub __sig: ::std::os::raw::c_long,
915    pub __opaque: [::std::os::raw::c_char; 192usize],
916}
917#[test]
918fn bindgen_test_layout__opaque_pthread_rwlock_t() {
919    assert_eq!(::std::mem::size_of::<_opaque_pthread_rwlock_t>() , 200usize ,
920               concat ! (
921               "Size of: " , stringify ! ( _opaque_pthread_rwlock_t ) ));
922    assert_eq! (::std::mem::align_of::<_opaque_pthread_rwlock_t>() , 8usize ,
923                concat ! (
924                "Alignment of " , stringify ! ( _opaque_pthread_rwlock_t ) ));
925    assert_eq! (unsafe {
926                & ( * ( 0 as * const _opaque_pthread_rwlock_t ) ) . __sig as *
927                const _ as usize } , 0usize , concat ! (
928                "Alignment of field: " , stringify ! (
929                _opaque_pthread_rwlock_t ) , "::" , stringify ! ( __sig ) ));
930    assert_eq! (unsafe {
931                & ( * ( 0 as * const _opaque_pthread_rwlock_t ) ) . __opaque
932                as * const _ as usize } , 8usize , concat ! (
933                "Alignment of field: " , stringify ! (
934                _opaque_pthread_rwlock_t ) , "::" , stringify ! ( __opaque )
935                ));
936}
937#[repr(C)]
938#[derive(Debug, Copy)]
939pub struct _opaque_pthread_rwlockattr_t {
940    pub __sig: ::std::os::raw::c_long,
941    pub __opaque: [::std::os::raw::c_char; 16usize],
942}
943#[test]
944fn bindgen_test_layout__opaque_pthread_rwlockattr_t() {
945    assert_eq!(::std::mem::size_of::<_opaque_pthread_rwlockattr_t>() , 24usize
946               , concat ! (
947               "Size of: " , stringify ! ( _opaque_pthread_rwlockattr_t ) ));
948    assert_eq! (::std::mem::align_of::<_opaque_pthread_rwlockattr_t>() ,
949                8usize , concat ! (
950                "Alignment of " , stringify ! ( _opaque_pthread_rwlockattr_t )
951                ));
952    assert_eq! (unsafe {
953                & ( * ( 0 as * const _opaque_pthread_rwlockattr_t ) ) . __sig
954                as * const _ as usize } , 0usize , concat ! (
955                "Alignment of field: " , stringify ! (
956                _opaque_pthread_rwlockattr_t ) , "::" , stringify ! ( __sig )
957                ));
958    assert_eq! (unsafe {
959                & ( * ( 0 as * const _opaque_pthread_rwlockattr_t ) ) .
960                __opaque as * const _ as usize } , 8usize , concat ! (
961                "Alignment of field: " , stringify ! (
962                _opaque_pthread_rwlockattr_t ) , "::" , stringify ! ( __opaque
963                ) ));
964}
965impl Clone for _opaque_pthread_rwlockattr_t {
966    fn clone(&self) -> Self { *self }
967}
968#[repr(C)]
969pub struct _opaque_pthread_t {
970    pub __sig: ::std::os::raw::c_long,
971    pub __cleanup_stack: *mut __darwin_pthread_handler_rec,
972    pub __opaque: [::std::os::raw::c_char; 8176usize],
973}
974#[test]
975fn bindgen_test_layout__opaque_pthread_t() {
976    assert_eq!(::std::mem::size_of::<_opaque_pthread_t>() , 8192usize , concat
977               ! ( "Size of: " , stringify ! ( _opaque_pthread_t ) ));
978    assert_eq! (::std::mem::align_of::<_opaque_pthread_t>() , 8usize , concat
979                ! ( "Alignment of " , stringify ! ( _opaque_pthread_t ) ));
980    assert_eq! (unsafe {
981                & ( * ( 0 as * const _opaque_pthread_t ) ) . __sig as * const
982                _ as usize } , 0usize , concat ! (
983                "Alignment of field: " , stringify ! ( _opaque_pthread_t ) ,
984                "::" , stringify ! ( __sig ) ));
985    assert_eq! (unsafe {
986                & ( * ( 0 as * const _opaque_pthread_t ) ) . __cleanup_stack
987                as * const _ as usize } , 8usize , concat ! (
988                "Alignment of field: " , stringify ! ( _opaque_pthread_t ) ,
989                "::" , stringify ! ( __cleanup_stack ) ));
990    assert_eq! (unsafe {
991                & ( * ( 0 as * const _opaque_pthread_t ) ) . __opaque as *
992                const _ as usize } , 16usize , concat ! (
993                "Alignment of field: " , stringify ! ( _opaque_pthread_t ) ,
994                "::" , stringify ! ( __opaque ) ));
995}
996pub type __darwin_pthread_attr_t = _opaque_pthread_attr_t;
997pub type __darwin_pthread_cond_t = _opaque_pthread_cond_t;
998pub type __darwin_pthread_condattr_t = _opaque_pthread_condattr_t;
999pub type __darwin_pthread_key_t = ::std::os::raw::c_ulong;
1000pub type __darwin_pthread_mutex_t = _opaque_pthread_mutex_t;
1001pub type __darwin_pthread_mutexattr_t = _opaque_pthread_mutexattr_t;
1002pub type __darwin_pthread_once_t = _opaque_pthread_once_t;
1003pub type __darwin_pthread_rwlock_t = _opaque_pthread_rwlock_t;
1004pub type __darwin_pthread_rwlockattr_t = _opaque_pthread_rwlockattr_t;
1005pub type __darwin_pthread_t = *mut _opaque_pthread_t;
1006pub type __darwin_nl_item = ::std::os::raw::c_int;
1007pub type __darwin_wctrans_t = ::std::os::raw::c_int;
1008pub type __darwin_wctype_t = __uint32_t;
1009#[repr(u32)]
1010#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
1011pub enum idtype_t { P_ALL = 0, P_PID = 1, P_PGID = 2, }
1012pub type pid_t = __darwin_pid_t;
1013pub type id_t = __darwin_id_t;
1014pub type sig_atomic_t = ::std::os::raw::c_int;
1015#[repr(C)]
1016#[derive(Debug, Copy)]
1017pub struct __darwin_i386_thread_state {
1018    pub __eax: ::std::os::raw::c_uint,
1019    pub __ebx: ::std::os::raw::c_uint,
1020    pub __ecx: ::std::os::raw::c_uint,
1021    pub __edx: ::std::os::raw::c_uint,
1022    pub __edi: ::std::os::raw::c_uint,
1023    pub __esi: ::std::os::raw::c_uint,
1024    pub __ebp: ::std::os::raw::c_uint,
1025    pub __esp: ::std::os::raw::c_uint,
1026    pub __ss: ::std::os::raw::c_uint,
1027    pub __eflags: ::std::os::raw::c_uint,
1028    pub __eip: ::std::os::raw::c_uint,
1029    pub __cs: ::std::os::raw::c_uint,
1030    pub __ds: ::std::os::raw::c_uint,
1031    pub __es: ::std::os::raw::c_uint,
1032    pub __fs: ::std::os::raw::c_uint,
1033    pub __gs: ::std::os::raw::c_uint,
1034}
1035#[test]
1036fn bindgen_test_layout___darwin_i386_thread_state() {
1037    assert_eq!(::std::mem::size_of::<__darwin_i386_thread_state>() , 64usize ,
1038               concat ! (
1039               "Size of: " , stringify ! ( __darwin_i386_thread_state ) ));
1040    assert_eq! (::std::mem::align_of::<__darwin_i386_thread_state>() , 4usize
1041                , concat ! (
1042                "Alignment of " , stringify ! ( __darwin_i386_thread_state )
1043                ));
1044    assert_eq! (unsafe {
1045                & ( * ( 0 as * const __darwin_i386_thread_state ) ) . __eax as
1046                * const _ as usize } , 0usize , concat ! (
1047                "Alignment of field: " , stringify ! (
1048                __darwin_i386_thread_state ) , "::" , stringify ! ( __eax )
1049                ));
1050    assert_eq! (unsafe {
1051                & ( * ( 0 as * const __darwin_i386_thread_state ) ) . __ebx as
1052                * const _ as usize } , 4usize , concat ! (
1053                "Alignment of field: " , stringify ! (
1054                __darwin_i386_thread_state ) , "::" , stringify ! ( __ebx )
1055                ));
1056    assert_eq! (unsafe {
1057                & ( * ( 0 as * const __darwin_i386_thread_state ) ) . __ecx as
1058                * const _ as usize } , 8usize , concat ! (
1059                "Alignment of field: " , stringify ! (
1060                __darwin_i386_thread_state ) , "::" , stringify ! ( __ecx )
1061                ));
1062    assert_eq! (unsafe {
1063                & ( * ( 0 as * const __darwin_i386_thread_state ) ) . __edx as
1064                * const _ as usize } , 12usize , concat ! (
1065                "Alignment of field: " , stringify ! (
1066                __darwin_i386_thread_state ) , "::" , stringify ! ( __edx )
1067                ));
1068    assert_eq! (unsafe {
1069                & ( * ( 0 as * const __darwin_i386_thread_state ) ) . __edi as
1070                * const _ as usize } , 16usize , concat ! (
1071                "Alignment of field: " , stringify ! (
1072                __darwin_i386_thread_state ) , "::" , stringify ! ( __edi )
1073                ));
1074    assert_eq! (unsafe {
1075                & ( * ( 0 as * const __darwin_i386_thread_state ) ) . __esi as
1076                * const _ as usize } , 20usize , concat ! (
1077                "Alignment of field: " , stringify ! (
1078                __darwin_i386_thread_state ) , "::" , stringify ! ( __esi )
1079                ));
1080    assert_eq! (unsafe {
1081                & ( * ( 0 as * const __darwin_i386_thread_state ) ) . __ebp as
1082                * const _ as usize } , 24usize , concat ! (
1083                "Alignment of field: " , stringify ! (
1084                __darwin_i386_thread_state ) , "::" , stringify ! ( __ebp )
1085                ));
1086    assert_eq! (unsafe {
1087                & ( * ( 0 as * const __darwin_i386_thread_state ) ) . __esp as
1088                * const _ as usize } , 28usize , concat ! (
1089                "Alignment of field: " , stringify ! (
1090                __darwin_i386_thread_state ) , "::" , stringify ! ( __esp )
1091                ));
1092    assert_eq! (unsafe {
1093                & ( * ( 0 as * const __darwin_i386_thread_state ) ) . __ss as
1094                * const _ as usize } , 32usize , concat ! (
1095                "Alignment of field: " , stringify ! (
1096                __darwin_i386_thread_state ) , "::" , stringify ! ( __ss ) ));
1097    assert_eq! (unsafe {
1098                & ( * ( 0 as * const __darwin_i386_thread_state ) ) . __eflags
1099                as * const _ as usize } , 36usize , concat ! (
1100                "Alignment of field: " , stringify ! (
1101                __darwin_i386_thread_state ) , "::" , stringify ! ( __eflags )
1102                ));
1103    assert_eq! (unsafe {
1104                & ( * ( 0 as * const __darwin_i386_thread_state ) ) . __eip as
1105                * const _ as usize } , 40usize , concat ! (
1106                "Alignment of field: " , stringify ! (
1107                __darwin_i386_thread_state ) , "::" , stringify ! ( __eip )
1108                ));
1109    assert_eq! (unsafe {
1110                & ( * ( 0 as * const __darwin_i386_thread_state ) ) . __cs as
1111                * const _ as usize } , 44usize , concat ! (
1112                "Alignment of field: " , stringify ! (
1113                __darwin_i386_thread_state ) , "::" , stringify ! ( __cs ) ));
1114    assert_eq! (unsafe {
1115                & ( * ( 0 as * const __darwin_i386_thread_state ) ) . __ds as
1116                * const _ as usize } , 48usize , concat ! (
1117                "Alignment of field: " , stringify ! (
1118                __darwin_i386_thread_state ) , "::" , stringify ! ( __ds ) ));
1119    assert_eq! (unsafe {
1120                & ( * ( 0 as * const __darwin_i386_thread_state ) ) . __es as
1121                * const _ as usize } , 52usize , concat ! (
1122                "Alignment of field: " , stringify ! (
1123                __darwin_i386_thread_state ) , "::" , stringify ! ( __es ) ));
1124    assert_eq! (unsafe {
1125                & ( * ( 0 as * const __darwin_i386_thread_state ) ) . __fs as
1126                * const _ as usize } , 56usize , concat ! (
1127                "Alignment of field: " , stringify ! (
1128                __darwin_i386_thread_state ) , "::" , stringify ! ( __fs ) ));
1129    assert_eq! (unsafe {
1130                & ( * ( 0 as * const __darwin_i386_thread_state ) ) . __gs as
1131                * const _ as usize } , 60usize , concat ! (
1132                "Alignment of field: " , stringify ! (
1133                __darwin_i386_thread_state ) , "::" , stringify ! ( __gs ) ));
1134}
1135impl Clone for __darwin_i386_thread_state {
1136    fn clone(&self) -> Self { *self }
1137}
1138#[repr(C)]
1139#[derive(Debug, Copy)]
1140pub struct __darwin_fp_control {
1141    pub _bitfield_1: [u8; 2usize],
1142    pub __bindgen_align: [u16; 0usize],
1143}
1144#[test]
1145fn bindgen_test_layout___darwin_fp_control() {
1146    assert_eq!(::std::mem::size_of::<__darwin_fp_control>() , 2usize , concat
1147               ! ( "Size of: " , stringify ! ( __darwin_fp_control ) ));
1148    assert_eq! (::std::mem::align_of::<__darwin_fp_control>() , 2usize ,
1149                concat ! (
1150                "Alignment of " , stringify ! ( __darwin_fp_control ) ));
1151}
1152impl Clone for __darwin_fp_control {
1153    fn clone(&self) -> Self { *self }
1154}
1155pub type __darwin_fp_control_t = __darwin_fp_control;
1156#[repr(C)]
1157#[derive(Debug, Copy)]
1158pub struct __darwin_fp_status {
1159    pub _bitfield_1: [u8; 2usize],
1160    pub __bindgen_align: [u16; 0usize],
1161}
1162#[test]
1163fn bindgen_test_layout___darwin_fp_status() {
1164    assert_eq!(::std::mem::size_of::<__darwin_fp_status>() , 2usize , concat !
1165               ( "Size of: " , stringify ! ( __darwin_fp_status ) ));
1166    assert_eq! (::std::mem::align_of::<__darwin_fp_status>() , 2usize , concat
1167                ! ( "Alignment of " , stringify ! ( __darwin_fp_status ) ));
1168}
1169impl Clone for __darwin_fp_status {
1170    fn clone(&self) -> Self { *self }
1171}
1172pub type __darwin_fp_status_t = __darwin_fp_status;
1173#[repr(C)]
1174#[derive(Debug, Copy)]
1175pub struct __darwin_mmst_reg {
1176    pub __mmst_reg: [::std::os::raw::c_char; 10usize],
1177    pub __mmst_rsrv: [::std::os::raw::c_char; 6usize],
1178}
1179#[test]
1180fn bindgen_test_layout___darwin_mmst_reg() {
1181    assert_eq!(::std::mem::size_of::<__darwin_mmst_reg>() , 16usize , concat !
1182               ( "Size of: " , stringify ! ( __darwin_mmst_reg ) ));
1183    assert_eq! (::std::mem::align_of::<__darwin_mmst_reg>() , 1usize , concat
1184                ! ( "Alignment of " , stringify ! ( __darwin_mmst_reg ) ));
1185    assert_eq! (unsafe {
1186                & ( * ( 0 as * const __darwin_mmst_reg ) ) . __mmst_reg as *
1187                const _ as usize } , 0usize , concat ! (
1188                "Alignment of field: " , stringify ! ( __darwin_mmst_reg ) ,
1189                "::" , stringify ! ( __mmst_reg ) ));
1190    assert_eq! (unsafe {
1191                & ( * ( 0 as * const __darwin_mmst_reg ) ) . __mmst_rsrv as *
1192                const _ as usize } , 10usize , concat ! (
1193                "Alignment of field: " , stringify ! ( __darwin_mmst_reg ) ,
1194                "::" , stringify ! ( __mmst_rsrv ) ));
1195}
1196impl Clone for __darwin_mmst_reg {
1197    fn clone(&self) -> Self { *self }
1198}
1199#[repr(C)]
1200#[derive(Debug, Copy)]
1201pub struct __darwin_xmm_reg {
1202    pub __xmm_reg: [::std::os::raw::c_char; 16usize],
1203}
1204#[test]
1205fn bindgen_test_layout___darwin_xmm_reg() {
1206    assert_eq!(::std::mem::size_of::<__darwin_xmm_reg>() , 16usize , concat !
1207               ( "Size of: " , stringify ! ( __darwin_xmm_reg ) ));
1208    assert_eq! (::std::mem::align_of::<__darwin_xmm_reg>() , 1usize , concat !
1209                ( "Alignment of " , stringify ! ( __darwin_xmm_reg ) ));
1210    assert_eq! (unsafe {
1211                & ( * ( 0 as * const __darwin_xmm_reg ) ) . __xmm_reg as *
1212                const _ as usize } , 0usize , concat ! (
1213                "Alignment of field: " , stringify ! ( __darwin_xmm_reg ) ,
1214                "::" , stringify ! ( __xmm_reg ) ));
1215}
1216impl Clone for __darwin_xmm_reg {
1217    fn clone(&self) -> Self { *self }
1218}
1219#[repr(C)]
1220pub struct __darwin_i386_float_state {
1221    pub __fpu_reserved: [::std::os::raw::c_int; 2usize],
1222    pub __fpu_fcw: __darwin_fp_control,
1223    pub __fpu_fsw: __darwin_fp_status,
1224    pub __fpu_ftw: __uint8_t,
1225    pub __fpu_rsrv1: __uint8_t,
1226    pub __fpu_fop: __uint16_t,
1227    pub __fpu_ip: __uint32_t,
1228    pub __fpu_cs: __uint16_t,
1229    pub __fpu_rsrv2: __uint16_t,
1230    pub __fpu_dp: __uint32_t,
1231    pub __fpu_ds: __uint16_t,
1232    pub __fpu_rsrv3: __uint16_t,
1233    pub __fpu_mxcsr: __uint32_t,
1234    pub __fpu_mxcsrmask: __uint32_t,
1235    pub __fpu_stmm0: __darwin_mmst_reg,
1236    pub __fpu_stmm1: __darwin_mmst_reg,
1237    pub __fpu_stmm2: __darwin_mmst_reg,
1238    pub __fpu_stmm3: __darwin_mmst_reg,
1239    pub __fpu_stmm4: __darwin_mmst_reg,
1240    pub __fpu_stmm5: __darwin_mmst_reg,
1241    pub __fpu_stmm6: __darwin_mmst_reg,
1242    pub __fpu_stmm7: __darwin_mmst_reg,
1243    pub __fpu_xmm0: __darwin_xmm_reg,
1244    pub __fpu_xmm1: __darwin_xmm_reg,
1245    pub __fpu_xmm2: __darwin_xmm_reg,
1246    pub __fpu_xmm3: __darwin_xmm_reg,
1247    pub __fpu_xmm4: __darwin_xmm_reg,
1248    pub __fpu_xmm5: __darwin_xmm_reg,
1249    pub __fpu_xmm6: __darwin_xmm_reg,
1250    pub __fpu_xmm7: __darwin_xmm_reg,
1251    pub __fpu_rsrv4: [::std::os::raw::c_char; 224usize],
1252    pub __fpu_reserved1: ::std::os::raw::c_int,
1253}
1254#[test]
1255fn bindgen_test_layout___darwin_i386_float_state() {
1256    assert_eq!(::std::mem::size_of::<__darwin_i386_float_state>() , 524usize ,
1257               concat ! (
1258               "Size of: " , stringify ! ( __darwin_i386_float_state ) ));
1259    assert_eq! (::std::mem::align_of::<__darwin_i386_float_state>() , 4usize ,
1260                concat ! (
1261                "Alignment of " , stringify ! ( __darwin_i386_float_state )
1262                ));
1263    assert_eq! (unsafe {
1264                & ( * ( 0 as * const __darwin_i386_float_state ) ) .
1265                __fpu_reserved as * const _ as usize } , 0usize , concat ! (
1266                "Alignment of field: " , stringify ! (
1267                __darwin_i386_float_state ) , "::" , stringify ! (
1268                __fpu_reserved ) ));
1269    assert_eq! (unsafe {
1270                & ( * ( 0 as * const __darwin_i386_float_state ) ) . __fpu_fcw
1271                as * const _ as usize } , 8usize , concat ! (
1272                "Alignment of field: " , stringify ! (
1273                __darwin_i386_float_state ) , "::" , stringify ! ( __fpu_fcw )
1274                ));
1275    assert_eq! (unsafe {
1276                & ( * ( 0 as * const __darwin_i386_float_state ) ) . __fpu_fsw
1277                as * const _ as usize } , 10usize , concat ! (
1278                "Alignment of field: " , stringify ! (
1279                __darwin_i386_float_state ) , "::" , stringify ! ( __fpu_fsw )
1280                ));
1281    assert_eq! (unsafe {
1282                & ( * ( 0 as * const __darwin_i386_float_state ) ) . __fpu_ftw
1283                as * const _ as usize } , 12usize , concat ! (
1284                "Alignment of field: " , stringify ! (
1285                __darwin_i386_float_state ) , "::" , stringify ! ( __fpu_ftw )
1286                ));
1287    assert_eq! (unsafe {
1288                & ( * ( 0 as * const __darwin_i386_float_state ) ) .
1289                __fpu_rsrv1 as * const _ as usize } , 13usize , concat ! (
1290                "Alignment of field: " , stringify ! (
1291                __darwin_i386_float_state ) , "::" , stringify ! ( __fpu_rsrv1
1292                ) ));
1293    assert_eq! (unsafe {
1294                & ( * ( 0 as * const __darwin_i386_float_state ) ) . __fpu_fop
1295                as * const _ as usize } , 14usize , concat ! (
1296                "Alignment of field: " , stringify ! (
1297                __darwin_i386_float_state ) , "::" , stringify ! ( __fpu_fop )
1298                ));
1299    assert_eq! (unsafe {
1300                & ( * ( 0 as * const __darwin_i386_float_state ) ) . __fpu_ip
1301                as * const _ as usize } , 16usize , concat ! (
1302                "Alignment of field: " , stringify ! (
1303                __darwin_i386_float_state ) , "::" , stringify ! ( __fpu_ip )
1304                ));
1305    assert_eq! (unsafe {
1306                & ( * ( 0 as * const __darwin_i386_float_state ) ) . __fpu_cs
1307                as * const _ as usize } , 20usize , concat ! (
1308                "Alignment of field: " , stringify ! (
1309                __darwin_i386_float_state ) , "::" , stringify ! ( __fpu_cs )
1310                ));
1311    assert_eq! (unsafe {
1312                & ( * ( 0 as * const __darwin_i386_float_state ) ) .
1313                __fpu_rsrv2 as * const _ as usize } , 22usize , concat ! (
1314                "Alignment of field: " , stringify ! (
1315                __darwin_i386_float_state ) , "::" , stringify ! ( __fpu_rsrv2
1316                ) ));
1317    assert_eq! (unsafe {
1318                & ( * ( 0 as * const __darwin_i386_float_state ) ) . __fpu_dp
1319                as * const _ as usize } , 24usize , concat ! (
1320                "Alignment of field: " , stringify ! (
1321                __darwin_i386_float_state ) , "::" , stringify ! ( __fpu_dp )
1322                ));
1323    assert_eq! (unsafe {
1324                & ( * ( 0 as * const __darwin_i386_float_state ) ) . __fpu_ds
1325                as * const _ as usize } , 28usize , concat ! (
1326                "Alignment of field: " , stringify ! (
1327                __darwin_i386_float_state ) , "::" , stringify ! ( __fpu_ds )
1328                ));
1329    assert_eq! (unsafe {
1330                & ( * ( 0 as * const __darwin_i386_float_state ) ) .
1331                __fpu_rsrv3 as * const _ as usize } , 30usize , concat ! (
1332                "Alignment of field: " , stringify ! (
1333                __darwin_i386_float_state ) , "::" , stringify ! ( __fpu_rsrv3
1334                ) ));
1335    assert_eq! (unsafe {
1336                & ( * ( 0 as * const __darwin_i386_float_state ) ) .
1337                __fpu_mxcsr as * const _ as usize } , 32usize , concat ! (
1338                "Alignment of field: " , stringify ! (
1339                __darwin_i386_float_state ) , "::" , stringify ! ( __fpu_mxcsr
1340                ) ));
1341    assert_eq! (unsafe {
1342                & ( * ( 0 as * const __darwin_i386_float_state ) ) .
1343                __fpu_mxcsrmask as * const _ as usize } , 36usize , concat ! (
1344                "Alignment of field: " , stringify ! (
1345                __darwin_i386_float_state ) , "::" , stringify ! (
1346                __fpu_mxcsrmask ) ));
1347    assert_eq! (unsafe {
1348                & ( * ( 0 as * const __darwin_i386_float_state ) ) .
1349                __fpu_stmm0 as * const _ as usize } , 40usize , concat ! (
1350                "Alignment of field: " , stringify ! (
1351                __darwin_i386_float_state ) , "::" , stringify ! ( __fpu_stmm0
1352                ) ));
1353    assert_eq! (unsafe {
1354                & ( * ( 0 as * const __darwin_i386_float_state ) ) .
1355                __fpu_stmm1 as * const _ as usize } , 56usize , concat ! (
1356                "Alignment of field: " , stringify ! (
1357                __darwin_i386_float_state ) , "::" , stringify ! ( __fpu_stmm1
1358                ) ));
1359    assert_eq! (unsafe {
1360                & ( * ( 0 as * const __darwin_i386_float_state ) ) .
1361                __fpu_stmm2 as * const _ as usize } , 72usize , concat ! (
1362                "Alignment of field: " , stringify ! (
1363                __darwin_i386_float_state ) , "::" , stringify ! ( __fpu_stmm2
1364                ) ));
1365    assert_eq! (unsafe {
1366                & ( * ( 0 as * const __darwin_i386_float_state ) ) .
1367                __fpu_stmm3 as * const _ as usize } , 88usize , concat ! (
1368                "Alignment of field: " , stringify ! (
1369                __darwin_i386_float_state ) , "::" , stringify ! ( __fpu_stmm3
1370                ) ));
1371    assert_eq! (unsafe {
1372                & ( * ( 0 as * const __darwin_i386_float_state ) ) .
1373                __fpu_stmm4 as * const _ as usize } , 104usize , concat ! (
1374                "Alignment of field: " , stringify ! (
1375                __darwin_i386_float_state ) , "::" , stringify ! ( __fpu_stmm4
1376                ) ));
1377    assert_eq! (unsafe {
1378                & ( * ( 0 as * const __darwin_i386_float_state ) ) .
1379                __fpu_stmm5 as * const _ as usize } , 120usize , concat ! (
1380                "Alignment of field: " , stringify ! (
1381                __darwin_i386_float_state ) , "::" , stringify ! ( __fpu_stmm5
1382                ) ));
1383    assert_eq! (unsafe {
1384                & ( * ( 0 as * const __darwin_i386_float_state ) ) .
1385                __fpu_stmm6 as * const _ as usize } , 136usize , concat ! (
1386                "Alignment of field: " , stringify ! (
1387                __darwin_i386_float_state ) , "::" , stringify ! ( __fpu_stmm6
1388                ) ));
1389    assert_eq! (unsafe {
1390                & ( * ( 0 as * const __darwin_i386_float_state ) ) .
1391                __fpu_stmm7 as * const _ as usize } , 152usize , concat ! (
1392                "Alignment of field: " , stringify ! (
1393                __darwin_i386_float_state ) , "::" , stringify ! ( __fpu_stmm7
1394                ) ));
1395    assert_eq! (unsafe {
1396                & ( * ( 0 as * const __darwin_i386_float_state ) ) .
1397                __fpu_xmm0 as * const _ as usize } , 168usize , concat ! (
1398                "Alignment of field: " , stringify ! (
1399                __darwin_i386_float_state ) , "::" , stringify ! ( __fpu_xmm0
1400                ) ));
1401    assert_eq! (unsafe {
1402                & ( * ( 0 as * const __darwin_i386_float_state ) ) .
1403                __fpu_xmm1 as * const _ as usize } , 184usize , concat ! (
1404                "Alignment of field: " , stringify ! (
1405                __darwin_i386_float_state ) , "::" , stringify ! ( __fpu_xmm1
1406                ) ));
1407    assert_eq! (unsafe {
1408                & ( * ( 0 as * const __darwin_i386_float_state ) ) .
1409                __fpu_xmm2 as * const _ as usize } , 200usize , concat ! (
1410                "Alignment of field: " , stringify ! (
1411                __darwin_i386_float_state ) , "::" , stringify ! ( __fpu_xmm2
1412                ) ));
1413    assert_eq! (unsafe {
1414                & ( * ( 0 as * const __darwin_i386_float_state ) ) .
1415                __fpu_xmm3 as * const _ as usize } , 216usize , concat ! (
1416                "Alignment of field: " , stringify ! (
1417                __darwin_i386_float_state ) , "::" , stringify ! ( __fpu_xmm3
1418                ) ));
1419    assert_eq! (unsafe {
1420                & ( * ( 0 as * const __darwin_i386_float_state ) ) .
1421                __fpu_xmm4 as * const _ as usize } , 232usize , concat ! (
1422                "Alignment of field: " , stringify ! (
1423                __darwin_i386_float_state ) , "::" , stringify ! ( __fpu_xmm4
1424                ) ));
1425    assert_eq! (unsafe {
1426                & ( * ( 0 as * const __darwin_i386_float_state ) ) .
1427                __fpu_xmm5 as * const _ as usize } , 248usize , concat ! (
1428                "Alignment of field: " , stringify ! (
1429                __darwin_i386_float_state ) , "::" , stringify ! ( __fpu_xmm5
1430                ) ));
1431    assert_eq! (unsafe {
1432                & ( * ( 0 as * const __darwin_i386_float_state ) ) .
1433                __fpu_xmm6 as * const _ as usize } , 264usize , concat ! (
1434                "Alignment of field: " , stringify ! (
1435                __darwin_i386_float_state ) , "::" , stringify ! ( __fpu_xmm6
1436                ) ));
1437    assert_eq! (unsafe {
1438                & ( * ( 0 as * const __darwin_i386_float_state ) ) .
1439                __fpu_xmm7 as * const _ as usize } , 280usize , concat ! (
1440                "Alignment of field: " , stringify ! (
1441                __darwin_i386_float_state ) , "::" , stringify ! ( __fpu_xmm7
1442                ) ));
1443    assert_eq! (unsafe {
1444                & ( * ( 0 as * const __darwin_i386_float_state ) ) .
1445                __fpu_rsrv4 as * const _ as usize } , 296usize , concat ! (
1446                "Alignment of field: " , stringify ! (
1447                __darwin_i386_float_state ) , "::" , stringify ! ( __fpu_rsrv4
1448                ) ));
1449    assert_eq! (unsafe {
1450                & ( * ( 0 as * const __darwin_i386_float_state ) ) .
1451                __fpu_reserved1 as * const _ as usize } , 520usize , concat !
1452                (
1453                "Alignment of field: " , stringify ! (
1454                __darwin_i386_float_state ) , "::" , stringify ! (
1455                __fpu_reserved1 ) ));
1456}
1457#[repr(C)]
1458pub struct __darwin_i386_avx_state {
1459    pub __fpu_reserved: [::std::os::raw::c_int; 2usize],
1460    pub __fpu_fcw: __darwin_fp_control,
1461    pub __fpu_fsw: __darwin_fp_status,
1462    pub __fpu_ftw: __uint8_t,
1463    pub __fpu_rsrv1: __uint8_t,
1464    pub __fpu_fop: __uint16_t,
1465    pub __fpu_ip: __uint32_t,
1466    pub __fpu_cs: __uint16_t,
1467    pub __fpu_rsrv2: __uint16_t,
1468    pub __fpu_dp: __uint32_t,
1469    pub __fpu_ds: __uint16_t,
1470    pub __fpu_rsrv3: __uint16_t,
1471    pub __fpu_mxcsr: __uint32_t,
1472    pub __fpu_mxcsrmask: __uint32_t,
1473    pub __fpu_stmm0: __darwin_mmst_reg,
1474    pub __fpu_stmm1: __darwin_mmst_reg,
1475    pub __fpu_stmm2: __darwin_mmst_reg,
1476    pub __fpu_stmm3: __darwin_mmst_reg,
1477    pub __fpu_stmm4: __darwin_mmst_reg,
1478    pub __fpu_stmm5: __darwin_mmst_reg,
1479    pub __fpu_stmm6: __darwin_mmst_reg,
1480    pub __fpu_stmm7: __darwin_mmst_reg,
1481    pub __fpu_xmm0: __darwin_xmm_reg,
1482    pub __fpu_xmm1: __darwin_xmm_reg,
1483    pub __fpu_xmm2: __darwin_xmm_reg,
1484    pub __fpu_xmm3: __darwin_xmm_reg,
1485    pub __fpu_xmm4: __darwin_xmm_reg,
1486    pub __fpu_xmm5: __darwin_xmm_reg,
1487    pub __fpu_xmm6: __darwin_xmm_reg,
1488    pub __fpu_xmm7: __darwin_xmm_reg,
1489    pub __fpu_rsrv4: [::std::os::raw::c_char; 224usize],
1490    pub __fpu_reserved1: ::std::os::raw::c_int,
1491    pub __avx_reserved1: [::std::os::raw::c_char; 64usize],
1492    pub __fpu_ymmh0: __darwin_xmm_reg,
1493    pub __fpu_ymmh1: __darwin_xmm_reg,
1494    pub __fpu_ymmh2: __darwin_xmm_reg,
1495    pub __fpu_ymmh3: __darwin_xmm_reg,
1496    pub __fpu_ymmh4: __darwin_xmm_reg,
1497    pub __fpu_ymmh5: __darwin_xmm_reg,
1498    pub __fpu_ymmh6: __darwin_xmm_reg,
1499    pub __fpu_ymmh7: __darwin_xmm_reg,
1500}
1501#[test]
1502fn bindgen_test_layout___darwin_i386_avx_state() {
1503    assert_eq!(::std::mem::size_of::<__darwin_i386_avx_state>() , 716usize ,
1504               concat ! (
1505               "Size of: " , stringify ! ( __darwin_i386_avx_state ) ));
1506    assert_eq! (::std::mem::align_of::<__darwin_i386_avx_state>() , 4usize ,
1507                concat ! (
1508                "Alignment of " , stringify ! ( __darwin_i386_avx_state ) ));
1509    assert_eq! (unsafe {
1510                & ( * ( 0 as * const __darwin_i386_avx_state ) ) .
1511                __fpu_reserved as * const _ as usize } , 0usize , concat ! (
1512                "Alignment of field: " , stringify ! ( __darwin_i386_avx_state
1513                ) , "::" , stringify ! ( __fpu_reserved ) ));
1514    assert_eq! (unsafe {
1515                & ( * ( 0 as * const __darwin_i386_avx_state ) ) . __fpu_fcw
1516                as * const _ as usize } , 8usize , concat ! (
1517                "Alignment of field: " , stringify ! ( __darwin_i386_avx_state
1518                ) , "::" , stringify ! ( __fpu_fcw ) ));
1519    assert_eq! (unsafe {
1520                & ( * ( 0 as * const __darwin_i386_avx_state ) ) . __fpu_fsw
1521                as * const _ as usize } , 10usize , concat ! (
1522                "Alignment of field: " , stringify ! ( __darwin_i386_avx_state
1523                ) , "::" , stringify ! ( __fpu_fsw ) ));
1524    assert_eq! (unsafe {
1525                & ( * ( 0 as * const __darwin_i386_avx_state ) ) . __fpu_ftw
1526                as * const _ as usize } , 12usize , concat ! (
1527                "Alignment of field: " , stringify ! ( __darwin_i386_avx_state
1528                ) , "::" , stringify ! ( __fpu_ftw ) ));
1529    assert_eq! (unsafe {
1530                & ( * ( 0 as * const __darwin_i386_avx_state ) ) . __fpu_rsrv1
1531                as * const _ as usize } , 13usize , concat ! (
1532                "Alignment of field: " , stringify ! ( __darwin_i386_avx_state
1533                ) , "::" , stringify ! ( __fpu_rsrv1 ) ));
1534    assert_eq! (unsafe {
1535                & ( * ( 0 as * const __darwin_i386_avx_state ) ) . __fpu_fop
1536                as * const _ as usize } , 14usize , concat ! (
1537                "Alignment of field: " , stringify ! ( __darwin_i386_avx_state
1538                ) , "::" , stringify ! ( __fpu_fop ) ));
1539    assert_eq! (unsafe {
1540                & ( * ( 0 as * const __darwin_i386_avx_state ) ) . __fpu_ip as
1541                * const _ as usize } , 16usize , concat ! (
1542                "Alignment of field: " , stringify ! ( __darwin_i386_avx_state
1543                ) , "::" , stringify ! ( __fpu_ip ) ));
1544    assert_eq! (unsafe {
1545                & ( * ( 0 as * const __darwin_i386_avx_state ) ) . __fpu_cs as
1546                * const _ as usize } , 20usize , concat ! (
1547                "Alignment of field: " , stringify ! ( __darwin_i386_avx_state
1548                ) , "::" , stringify ! ( __fpu_cs ) ));
1549    assert_eq! (unsafe {
1550                & ( * ( 0 as * const __darwin_i386_avx_state ) ) . __fpu_rsrv2
1551                as * const _ as usize } , 22usize , concat ! (
1552                "Alignment of field: " , stringify ! ( __darwin_i386_avx_state
1553                ) , "::" , stringify ! ( __fpu_rsrv2 ) ));
1554    assert_eq! (unsafe {
1555                & ( * ( 0 as * const __darwin_i386_avx_state ) ) . __fpu_dp as
1556                * const _ as usize } , 24usize , concat ! (
1557                "Alignment of field: " , stringify ! ( __darwin_i386_avx_state
1558                ) , "::" , stringify ! ( __fpu_dp ) ));
1559    assert_eq! (unsafe {
1560                & ( * ( 0 as * const __darwin_i386_avx_state ) ) . __fpu_ds as
1561                * const _ as usize } , 28usize , concat ! (
1562                "Alignment of field: " , stringify ! ( __darwin_i386_avx_state
1563                ) , "::" , stringify ! ( __fpu_ds ) ));
1564    assert_eq! (unsafe {
1565                & ( * ( 0 as * const __darwin_i386_avx_state ) ) . __fpu_rsrv3
1566                as * const _ as usize } , 30usize , concat ! (
1567                "Alignment of field: " , stringify ! ( __darwin_i386_avx_state
1568                ) , "::" , stringify ! ( __fpu_rsrv3 ) ));
1569    assert_eq! (unsafe {
1570                & ( * ( 0 as * const __darwin_i386_avx_state ) ) . __fpu_mxcsr
1571                as * const _ as usize } , 32usize , concat ! (
1572                "Alignment of field: " , stringify ! ( __darwin_i386_avx_state
1573                ) , "::" , stringify ! ( __fpu_mxcsr ) ));
1574    assert_eq! (unsafe {
1575                & ( * ( 0 as * const __darwin_i386_avx_state ) ) .
1576                __fpu_mxcsrmask as * const _ as usize } , 36usize , concat ! (
1577                "Alignment of field: " , stringify ! ( __darwin_i386_avx_state
1578                ) , "::" , stringify ! ( __fpu_mxcsrmask ) ));
1579    assert_eq! (unsafe {
1580                & ( * ( 0 as * const __darwin_i386_avx_state ) ) . __fpu_stmm0
1581                as * const _ as usize } , 40usize , concat ! (
1582                "Alignment of field: " , stringify ! ( __darwin_i386_avx_state
1583                ) , "::" , stringify ! ( __fpu_stmm0 ) ));
1584    assert_eq! (unsafe {
1585                & ( * ( 0 as * const __darwin_i386_avx_state ) ) . __fpu_stmm1
1586                as * const _ as usize } , 56usize , concat ! (
1587                "Alignment of field: " , stringify ! ( __darwin_i386_avx_state
1588                ) , "::" , stringify ! ( __fpu_stmm1 ) ));
1589    assert_eq! (unsafe {
1590                & ( * ( 0 as * const __darwin_i386_avx_state ) ) . __fpu_stmm2
1591                as * const _ as usize } , 72usize , concat ! (
1592                "Alignment of field: " , stringify ! ( __darwin_i386_avx_state
1593                ) , "::" , stringify ! ( __fpu_stmm2 ) ));
1594    assert_eq! (unsafe {
1595                & ( * ( 0 as * const __darwin_i386_avx_state ) ) . __fpu_stmm3
1596                as * const _ as usize } , 88usize , concat ! (
1597                "Alignment of field: " , stringify ! ( __darwin_i386_avx_state
1598                ) , "::" , stringify ! ( __fpu_stmm3 ) ));
1599    assert_eq! (unsafe {
1600                & ( * ( 0 as * const __darwin_i386_avx_state ) ) . __fpu_stmm4
1601                as * const _ as usize } , 104usize , concat ! (
1602                "Alignment of field: " , stringify ! ( __darwin_i386_avx_state
1603                ) , "::" , stringify ! ( __fpu_stmm4 ) ));
1604    assert_eq! (unsafe {
1605                & ( * ( 0 as * const __darwin_i386_avx_state ) ) . __fpu_stmm5
1606                as * const _ as usize } , 120usize , concat ! (
1607                "Alignment of field: " , stringify ! ( __darwin_i386_avx_state
1608                ) , "::" , stringify ! ( __fpu_stmm5 ) ));
1609    assert_eq! (unsafe {
1610                & ( * ( 0 as * const __darwin_i386_avx_state ) ) . __fpu_stmm6
1611                as * const _ as usize } , 136usize , concat ! (
1612                "Alignment of field: " , stringify ! ( __darwin_i386_avx_state
1613                ) , "::" , stringify ! ( __fpu_stmm6 ) ));
1614    assert_eq! (unsafe {
1615                & ( * ( 0 as * const __darwin_i386_avx_state ) ) . __fpu_stmm7
1616                as * const _ as usize } , 152usize , concat ! (
1617                "Alignment of field: " , stringify ! ( __darwin_i386_avx_state
1618                ) , "::" , stringify ! ( __fpu_stmm7 ) ));
1619    assert_eq! (unsafe {
1620                & ( * ( 0 as * const __darwin_i386_avx_state ) ) . __fpu_xmm0
1621                as * const _ as usize } , 168usize , concat ! (
1622                "Alignment of field: " , stringify ! ( __darwin_i386_avx_state
1623                ) , "::" , stringify ! ( __fpu_xmm0 ) ));
1624    assert_eq! (unsafe {
1625                & ( * ( 0 as * const __darwin_i386_avx_state ) ) . __fpu_xmm1
1626                as * const _ as usize } , 184usize , concat ! (
1627                "Alignment of field: " , stringify ! ( __darwin_i386_avx_state
1628                ) , "::" , stringify ! ( __fpu_xmm1 ) ));
1629    assert_eq! (unsafe {
1630                & ( * ( 0 as * const __darwin_i386_avx_state ) ) . __fpu_xmm2
1631                as * const _ as usize } , 200usize , concat ! (
1632                "Alignment of field: " , stringify ! ( __darwin_i386_avx_state
1633                ) , "::" , stringify ! ( __fpu_xmm2 ) ));
1634    assert_eq! (unsafe {
1635                & ( * ( 0 as * const __darwin_i386_avx_state ) ) . __fpu_xmm3
1636                as * const _ as usize } , 216usize , concat ! (
1637                "Alignment of field: " , stringify ! ( __darwin_i386_avx_state
1638                ) , "::" , stringify ! ( __fpu_xmm3 ) ));
1639    assert_eq! (unsafe {
1640                & ( * ( 0 as * const __darwin_i386_avx_state ) ) . __fpu_xmm4
1641                as * const _ as usize } , 232usize , concat ! (
1642                "Alignment of field: " , stringify ! ( __darwin_i386_avx_state
1643                ) , "::" , stringify ! ( __fpu_xmm4 ) ));
1644    assert_eq! (unsafe {
1645                & ( * ( 0 as * const __darwin_i386_avx_state ) ) . __fpu_xmm5
1646                as * const _ as usize } , 248usize , concat ! (
1647                "Alignment of field: " , stringify ! ( __darwin_i386_avx_state
1648                ) , "::" , stringify ! ( __fpu_xmm5 ) ));
1649    assert_eq! (unsafe {
1650                & ( * ( 0 as * const __darwin_i386_avx_state ) ) . __fpu_xmm6
1651                as * const _ as usize } , 264usize , concat ! (
1652                "Alignment of field: " , stringify ! ( __darwin_i386_avx_state
1653                ) , "::" , stringify ! ( __fpu_xmm6 ) ));
1654    assert_eq! (unsafe {
1655                & ( * ( 0 as * const __darwin_i386_avx_state ) ) . __fpu_xmm7
1656                as * const _ as usize } , 280usize , concat ! (
1657                "Alignment of field: " , stringify ! ( __darwin_i386_avx_state
1658                ) , "::" , stringify ! ( __fpu_xmm7 ) ));
1659    assert_eq! (unsafe {
1660                & ( * ( 0 as * const __darwin_i386_avx_state ) ) . __fpu_rsrv4
1661                as * const _ as usize } , 296usize , concat ! (
1662                "Alignment of field: " , stringify ! ( __darwin_i386_avx_state
1663                ) , "::" , stringify ! ( __fpu_rsrv4 ) ));
1664    assert_eq! (unsafe {
1665                & ( * ( 0 as * const __darwin_i386_avx_state ) ) .
1666                __fpu_reserved1 as * const _ as usize } , 520usize , concat !
1667                (
1668                "Alignment of field: " , stringify ! ( __darwin_i386_avx_state
1669                ) , "::" , stringify ! ( __fpu_reserved1 ) ));
1670    assert_eq! (unsafe {
1671                & ( * ( 0 as * const __darwin_i386_avx_state ) ) .
1672                __avx_reserved1 as * const _ as usize } , 524usize , concat !
1673                (
1674                "Alignment of field: " , stringify ! ( __darwin_i386_avx_state
1675                ) , "::" , stringify ! ( __avx_reserved1 ) ));
1676    assert_eq! (unsafe {
1677                & ( * ( 0 as * const __darwin_i386_avx_state ) ) . __fpu_ymmh0
1678                as * const _ as usize } , 588usize , concat ! (
1679                "Alignment of field: " , stringify ! ( __darwin_i386_avx_state
1680                ) , "::" , stringify ! ( __fpu_ymmh0 ) ));
1681    assert_eq! (unsafe {
1682                & ( * ( 0 as * const __darwin_i386_avx_state ) ) . __fpu_ymmh1
1683                as * const _ as usize } , 604usize , concat ! (
1684                "Alignment of field: " , stringify ! ( __darwin_i386_avx_state
1685                ) , "::" , stringify ! ( __fpu_ymmh1 ) ));
1686    assert_eq! (unsafe {
1687                & ( * ( 0 as * const __darwin_i386_avx_state ) ) . __fpu_ymmh2
1688                as * const _ as usize } , 620usize , concat ! (
1689                "Alignment of field: " , stringify ! ( __darwin_i386_avx_state
1690                ) , "::" , stringify ! ( __fpu_ymmh2 ) ));
1691    assert_eq! (unsafe {
1692                & ( * ( 0 as * const __darwin_i386_avx_state ) ) . __fpu_ymmh3
1693                as * const _ as usize } , 636usize , concat ! (
1694                "Alignment of field: " , stringify ! ( __darwin_i386_avx_state
1695                ) , "::" , stringify ! ( __fpu_ymmh3 ) ));
1696    assert_eq! (unsafe {
1697                & ( * ( 0 as * const __darwin_i386_avx_state ) ) . __fpu_ymmh4
1698                as * const _ as usize } , 652usize , concat ! (
1699                "Alignment of field: " , stringify ! ( __darwin_i386_avx_state
1700                ) , "::" , stringify ! ( __fpu_ymmh4 ) ));
1701    assert_eq! (unsafe {
1702                & ( * ( 0 as * const __darwin_i386_avx_state ) ) . __fpu_ymmh5
1703                as * const _ as usize } , 668usize , concat ! (
1704                "Alignment of field: " , stringify ! ( __darwin_i386_avx_state
1705                ) , "::" , stringify ! ( __fpu_ymmh5 ) ));
1706    assert_eq! (unsafe {
1707                & ( * ( 0 as * const __darwin_i386_avx_state ) ) . __fpu_ymmh6
1708                as * const _ as usize } , 684usize , concat ! (
1709                "Alignment of field: " , stringify ! ( __darwin_i386_avx_state
1710                ) , "::" , stringify ! ( __fpu_ymmh6 ) ));
1711    assert_eq! (unsafe {
1712                & ( * ( 0 as * const __darwin_i386_avx_state ) ) . __fpu_ymmh7
1713                as * const _ as usize } , 700usize , concat ! (
1714                "Alignment of field: " , stringify ! ( __darwin_i386_avx_state
1715                ) , "::" , stringify ! ( __fpu_ymmh7 ) ));
1716}
1717#[repr(C)]
1718#[derive(Debug, Copy)]
1719pub struct __darwin_i386_exception_state {
1720    pub __trapno: __uint16_t,
1721    pub __cpu: __uint16_t,
1722    pub __err: __uint32_t,
1723    pub __faultvaddr: __uint32_t,
1724}
1725#[test]
1726fn bindgen_test_layout___darwin_i386_exception_state() {
1727    assert_eq!(::std::mem::size_of::<__darwin_i386_exception_state>() ,
1728               12usize , concat ! (
1729               "Size of: " , stringify ! ( __darwin_i386_exception_state ) ));
1730    assert_eq! (::std::mem::align_of::<__darwin_i386_exception_state>() ,
1731                4usize , concat ! (
1732                "Alignment of " , stringify ! ( __darwin_i386_exception_state
1733                ) ));
1734    assert_eq! (unsafe {
1735                & ( * ( 0 as * const __darwin_i386_exception_state ) ) .
1736                __trapno as * const _ as usize } , 0usize , concat ! (
1737                "Alignment of field: " , stringify ! (
1738                __darwin_i386_exception_state ) , "::" , stringify ! (
1739                __trapno ) ));
1740    assert_eq! (unsafe {
1741                & ( * ( 0 as * const __darwin_i386_exception_state ) ) . __cpu
1742                as * const _ as usize } , 2usize , concat ! (
1743                "Alignment of field: " , stringify ! (
1744                __darwin_i386_exception_state ) , "::" , stringify ! ( __cpu )
1745                ));
1746    assert_eq! (unsafe {
1747                & ( * ( 0 as * const __darwin_i386_exception_state ) ) . __err
1748                as * const _ as usize } , 4usize , concat ! (
1749                "Alignment of field: " , stringify ! (
1750                __darwin_i386_exception_state ) , "::" , stringify ! ( __err )
1751                ));
1752    assert_eq! (unsafe {
1753                & ( * ( 0 as * const __darwin_i386_exception_state ) ) .
1754                __faultvaddr as * const _ as usize } , 8usize , concat ! (
1755                "Alignment of field: " , stringify ! (
1756                __darwin_i386_exception_state ) , "::" , stringify ! (
1757                __faultvaddr ) ));
1758}
1759impl Clone for __darwin_i386_exception_state {
1760    fn clone(&self) -> Self { *self }
1761}
1762#[repr(C)]
1763#[derive(Debug, Copy)]
1764pub struct __darwin_x86_debug_state32 {
1765    pub __dr0: ::std::os::raw::c_uint,
1766    pub __dr1: ::std::os::raw::c_uint,
1767    pub __dr2: ::std::os::raw::c_uint,
1768    pub __dr3: ::std::os::raw::c_uint,
1769    pub __dr4: ::std::os::raw::c_uint,
1770    pub __dr5: ::std::os::raw::c_uint,
1771    pub __dr6: ::std::os::raw::c_uint,
1772    pub __dr7: ::std::os::raw::c_uint,
1773}
1774#[test]
1775fn bindgen_test_layout___darwin_x86_debug_state32() {
1776    assert_eq!(::std::mem::size_of::<__darwin_x86_debug_state32>() , 32usize ,
1777               concat ! (
1778               "Size of: " , stringify ! ( __darwin_x86_debug_state32 ) ));
1779    assert_eq! (::std::mem::align_of::<__darwin_x86_debug_state32>() , 4usize
1780                , concat ! (
1781                "Alignment of " , stringify ! ( __darwin_x86_debug_state32 )
1782                ));
1783    assert_eq! (unsafe {
1784                & ( * ( 0 as * const __darwin_x86_debug_state32 ) ) . __dr0 as
1785                * const _ as usize } , 0usize , concat ! (
1786                "Alignment of field: " , stringify ! (
1787                __darwin_x86_debug_state32 ) , "::" , stringify ! ( __dr0 )
1788                ));
1789    assert_eq! (unsafe {
1790                & ( * ( 0 as * const __darwin_x86_debug_state32 ) ) . __dr1 as
1791                * const _ as usize } , 4usize , concat ! (
1792                "Alignment of field: " , stringify ! (
1793                __darwin_x86_debug_state32 ) , "::" , stringify ! ( __dr1 )
1794                ));
1795    assert_eq! (unsafe {
1796                & ( * ( 0 as * const __darwin_x86_debug_state32 ) ) . __dr2 as
1797                * const _ as usize } , 8usize , concat ! (
1798                "Alignment of field: " , stringify ! (
1799                __darwin_x86_debug_state32 ) , "::" , stringify ! ( __dr2 )
1800                ));
1801    assert_eq! (unsafe {
1802                & ( * ( 0 as * const __darwin_x86_debug_state32 ) ) . __dr3 as
1803                * const _ as usize } , 12usize , concat ! (
1804                "Alignment of field: " , stringify ! (
1805                __darwin_x86_debug_state32 ) , "::" , stringify ! ( __dr3 )
1806                ));
1807    assert_eq! (unsafe {
1808                & ( * ( 0 as * const __darwin_x86_debug_state32 ) ) . __dr4 as
1809                * const _ as usize } , 16usize , concat ! (
1810                "Alignment of field: " , stringify ! (
1811                __darwin_x86_debug_state32 ) , "::" , stringify ! ( __dr4 )
1812                ));
1813    assert_eq! (unsafe {
1814                & ( * ( 0 as * const __darwin_x86_debug_state32 ) ) . __dr5 as
1815                * const _ as usize } , 20usize , concat ! (
1816                "Alignment of field: " , stringify ! (
1817                __darwin_x86_debug_state32 ) , "::" , stringify ! ( __dr5 )
1818                ));
1819    assert_eq! (unsafe {
1820                & ( * ( 0 as * const __darwin_x86_debug_state32 ) ) . __dr6 as
1821                * const _ as usize } , 24usize , concat ! (
1822                "Alignment of field: " , stringify ! (
1823                __darwin_x86_debug_state32 ) , "::" , stringify ! ( __dr6 )
1824                ));
1825    assert_eq! (unsafe {
1826                & ( * ( 0 as * const __darwin_x86_debug_state32 ) ) . __dr7 as
1827                * const _ as usize } , 28usize , concat ! (
1828                "Alignment of field: " , stringify ! (
1829                __darwin_x86_debug_state32 ) , "::" , stringify ! ( __dr7 )
1830                ));
1831}
1832impl Clone for __darwin_x86_debug_state32 {
1833    fn clone(&self) -> Self { *self }
1834}
1835#[repr(C)]
1836#[derive(Debug, Copy)]
1837pub struct __darwin_x86_thread_state64 {
1838    pub __rax: __uint64_t,
1839    pub __rbx: __uint64_t,
1840    pub __rcx: __uint64_t,
1841    pub __rdx: __uint64_t,
1842    pub __rdi: __uint64_t,
1843    pub __rsi: __uint64_t,
1844    pub __rbp: __uint64_t,
1845    pub __rsp: __uint64_t,
1846    pub __r8: __uint64_t,
1847    pub __r9: __uint64_t,
1848    pub __r10: __uint64_t,
1849    pub __r11: __uint64_t,
1850    pub __r12: __uint64_t,
1851    pub __r13: __uint64_t,
1852    pub __r14: __uint64_t,
1853    pub __r15: __uint64_t,
1854    pub __rip: __uint64_t,
1855    pub __rflags: __uint64_t,
1856    pub __cs: __uint64_t,
1857    pub __fs: __uint64_t,
1858    pub __gs: __uint64_t,
1859}
1860#[test]
1861fn bindgen_test_layout___darwin_x86_thread_state64() {
1862    assert_eq!(::std::mem::size_of::<__darwin_x86_thread_state64>() , 168usize
1863               , concat ! (
1864               "Size of: " , stringify ! ( __darwin_x86_thread_state64 ) ));
1865    assert_eq! (::std::mem::align_of::<__darwin_x86_thread_state64>() , 8usize
1866                , concat ! (
1867                "Alignment of " , stringify ! ( __darwin_x86_thread_state64 )
1868                ));
1869    assert_eq! (unsafe {
1870                & ( * ( 0 as * const __darwin_x86_thread_state64 ) ) . __rax
1871                as * const _ as usize } , 0usize , concat ! (
1872                "Alignment of field: " , stringify ! (
1873                __darwin_x86_thread_state64 ) , "::" , stringify ! ( __rax )
1874                ));
1875    assert_eq! (unsafe {
1876                & ( * ( 0 as * const __darwin_x86_thread_state64 ) ) . __rbx
1877                as * const _ as usize } , 8usize , concat ! (
1878                "Alignment of field: " , stringify ! (
1879                __darwin_x86_thread_state64 ) , "::" , stringify ! ( __rbx )
1880                ));
1881    assert_eq! (unsafe {
1882                & ( * ( 0 as * const __darwin_x86_thread_state64 ) ) . __rcx
1883                as * const _ as usize } , 16usize , concat ! (
1884                "Alignment of field: " , stringify ! (
1885                __darwin_x86_thread_state64 ) , "::" , stringify ! ( __rcx )
1886                ));
1887    assert_eq! (unsafe {
1888                & ( * ( 0 as * const __darwin_x86_thread_state64 ) ) . __rdx
1889                as * const _ as usize } , 24usize , concat ! (
1890                "Alignment of field: " , stringify ! (
1891                __darwin_x86_thread_state64 ) , "::" , stringify ! ( __rdx )
1892                ));
1893    assert_eq! (unsafe {
1894                & ( * ( 0 as * const __darwin_x86_thread_state64 ) ) . __rdi
1895                as * const _ as usize } , 32usize , concat ! (
1896                "Alignment of field: " , stringify ! (
1897                __darwin_x86_thread_state64 ) , "::" , stringify ! ( __rdi )
1898                ));
1899    assert_eq! (unsafe {
1900                & ( * ( 0 as * const __darwin_x86_thread_state64 ) ) . __rsi
1901                as * const _ as usize } , 40usize , concat ! (
1902                "Alignment of field: " , stringify ! (
1903                __darwin_x86_thread_state64 ) , "::" , stringify ! ( __rsi )
1904                ));
1905    assert_eq! (unsafe {
1906                & ( * ( 0 as * const __darwin_x86_thread_state64 ) ) . __rbp
1907                as * const _ as usize } , 48usize , concat ! (
1908                "Alignment of field: " , stringify ! (
1909                __darwin_x86_thread_state64 ) , "::" , stringify ! ( __rbp )
1910                ));
1911    assert_eq! (unsafe {
1912                & ( * ( 0 as * const __darwin_x86_thread_state64 ) ) . __rsp
1913                as * const _ as usize } , 56usize , concat ! (
1914                "Alignment of field: " , stringify ! (
1915                __darwin_x86_thread_state64 ) , "::" , stringify ! ( __rsp )
1916                ));
1917    assert_eq! (unsafe {
1918                & ( * ( 0 as * const __darwin_x86_thread_state64 ) ) . __r8 as
1919                * const _ as usize } , 64usize , concat ! (
1920                "Alignment of field: " , stringify ! (
1921                __darwin_x86_thread_state64 ) , "::" , stringify ! ( __r8 )
1922                ));
1923    assert_eq! (unsafe {
1924                & ( * ( 0 as * const __darwin_x86_thread_state64 ) ) . __r9 as
1925                * const _ as usize } , 72usize , concat ! (
1926                "Alignment of field: " , stringify ! (
1927                __darwin_x86_thread_state64 ) , "::" , stringify ! ( __r9 )
1928                ));
1929    assert_eq! (unsafe {
1930                & ( * ( 0 as * const __darwin_x86_thread_state64 ) ) . __r10
1931                as * const _ as usize } , 80usize , concat ! (
1932                "Alignment of field: " , stringify ! (
1933                __darwin_x86_thread_state64 ) , "::" , stringify ! ( __r10 )
1934                ));
1935    assert_eq! (unsafe {
1936                & ( * ( 0 as * const __darwin_x86_thread_state64 ) ) . __r11
1937                as * const _ as usize } , 88usize , concat ! (
1938                "Alignment of field: " , stringify ! (
1939                __darwin_x86_thread_state64 ) , "::" , stringify ! ( __r11 )
1940                ));
1941    assert_eq! (unsafe {
1942                & ( * ( 0 as * const __darwin_x86_thread_state64 ) ) . __r12
1943                as * const _ as usize } , 96usize , concat ! (
1944                "Alignment of field: " , stringify ! (
1945                __darwin_x86_thread_state64 ) , "::" , stringify ! ( __r12 )
1946                ));
1947    assert_eq! (unsafe {
1948                & ( * ( 0 as * const __darwin_x86_thread_state64 ) ) . __r13
1949                as * const _ as usize } , 104usize , concat ! (
1950                "Alignment of field: " , stringify ! (
1951                __darwin_x86_thread_state64 ) , "::" , stringify ! ( __r13 )
1952                ));
1953    assert_eq! (unsafe {
1954                & ( * ( 0 as * const __darwin_x86_thread_state64 ) ) . __r14
1955                as * const _ as usize } , 112usize , concat ! (
1956                "Alignment of field: " , stringify ! (
1957                __darwin_x86_thread_state64 ) , "::" , stringify ! ( __r14 )
1958                ));
1959    assert_eq! (unsafe {
1960                & ( * ( 0 as * const __darwin_x86_thread_state64 ) ) . __r15
1961                as * const _ as usize } , 120usize , concat ! (
1962                "Alignment of field: " , stringify ! (
1963                __darwin_x86_thread_state64 ) , "::" , stringify ! ( __r15 )
1964                ));
1965    assert_eq! (unsafe {
1966                & ( * ( 0 as * const __darwin_x86_thread_state64 ) ) . __rip
1967                as * const _ as usize } , 128usize , concat ! (
1968                "Alignment of field: " , stringify ! (
1969                __darwin_x86_thread_state64 ) , "::" , stringify ! ( __rip )
1970                ));
1971    assert_eq! (unsafe {
1972                & ( * ( 0 as * const __darwin_x86_thread_state64 ) ) .
1973                __rflags as * const _ as usize } , 136usize , concat ! (
1974                "Alignment of field: " , stringify ! (
1975                __darwin_x86_thread_state64 ) , "::" , stringify ! ( __rflags
1976                ) ));
1977    assert_eq! (unsafe {
1978                & ( * ( 0 as * const __darwin_x86_thread_state64 ) ) . __cs as
1979                * const _ as usize } , 144usize , concat ! (
1980                "Alignment of field: " , stringify ! (
1981                __darwin_x86_thread_state64 ) , "::" , stringify ! ( __cs )
1982                ));
1983    assert_eq! (unsafe {
1984                & ( * ( 0 as * const __darwin_x86_thread_state64 ) ) . __fs as
1985                * const _ as usize } , 152usize , concat ! (
1986                "Alignment of field: " , stringify ! (
1987                __darwin_x86_thread_state64 ) , "::" , stringify ! ( __fs )
1988                ));
1989    assert_eq! (unsafe {
1990                & ( * ( 0 as * const __darwin_x86_thread_state64 ) ) . __gs as
1991                * const _ as usize } , 160usize , concat ! (
1992                "Alignment of field: " , stringify ! (
1993                __darwin_x86_thread_state64 ) , "::" , stringify ! ( __gs )
1994                ));
1995}
1996impl Clone for __darwin_x86_thread_state64 {
1997    fn clone(&self) -> Self { *self }
1998}
1999#[repr(C)]
2000pub struct __darwin_x86_float_state64 {
2001    pub __fpu_reserved: [::std::os::raw::c_int; 2usize],
2002    pub __fpu_fcw: __darwin_fp_control,
2003    pub __fpu_fsw: __darwin_fp_status,
2004    pub __fpu_ftw: __uint8_t,
2005    pub __fpu_rsrv1: __uint8_t,
2006    pub __fpu_fop: __uint16_t,
2007    pub __fpu_ip: __uint32_t,
2008    pub __fpu_cs: __uint16_t,
2009    pub __fpu_rsrv2: __uint16_t,
2010    pub __fpu_dp: __uint32_t,
2011    pub __fpu_ds: __uint16_t,
2012    pub __fpu_rsrv3: __uint16_t,
2013    pub __fpu_mxcsr: __uint32_t,
2014    pub __fpu_mxcsrmask: __uint32_t,
2015    pub __fpu_stmm0: __darwin_mmst_reg,
2016    pub __fpu_stmm1: __darwin_mmst_reg,
2017    pub __fpu_stmm2: __darwin_mmst_reg,
2018    pub __fpu_stmm3: __darwin_mmst_reg,
2019    pub __fpu_stmm4: __darwin_mmst_reg,
2020    pub __fpu_stmm5: __darwin_mmst_reg,
2021    pub __fpu_stmm6: __darwin_mmst_reg,
2022    pub __fpu_stmm7: __darwin_mmst_reg,
2023    pub __fpu_xmm0: __darwin_xmm_reg,
2024    pub __fpu_xmm1: __darwin_xmm_reg,
2025    pub __fpu_xmm2: __darwin_xmm_reg,
2026    pub __fpu_xmm3: __darwin_xmm_reg,
2027    pub __fpu_xmm4: __darwin_xmm_reg,
2028    pub __fpu_xmm5: __darwin_xmm_reg,
2029    pub __fpu_xmm6: __darwin_xmm_reg,
2030    pub __fpu_xmm7: __darwin_xmm_reg,
2031    pub __fpu_xmm8: __darwin_xmm_reg,
2032    pub __fpu_xmm9: __darwin_xmm_reg,
2033    pub __fpu_xmm10: __darwin_xmm_reg,
2034    pub __fpu_xmm11: __darwin_xmm_reg,
2035    pub __fpu_xmm12: __darwin_xmm_reg,
2036    pub __fpu_xmm13: __darwin_xmm_reg,
2037    pub __fpu_xmm14: __darwin_xmm_reg,
2038    pub __fpu_xmm15: __darwin_xmm_reg,
2039    pub __fpu_rsrv4: [::std::os::raw::c_char; 96usize],
2040    pub __fpu_reserved1: ::std::os::raw::c_int,
2041}
2042#[test]
2043fn bindgen_test_layout___darwin_x86_float_state64() {
2044    assert_eq!(::std::mem::size_of::<__darwin_x86_float_state64>() , 524usize
2045               , concat ! (
2046               "Size of: " , stringify ! ( __darwin_x86_float_state64 ) ));
2047    assert_eq! (::std::mem::align_of::<__darwin_x86_float_state64>() , 4usize
2048                , concat ! (
2049                "Alignment of " , stringify ! ( __darwin_x86_float_state64 )
2050                ));
2051    assert_eq! (unsafe {
2052                & ( * ( 0 as * const __darwin_x86_float_state64 ) ) .
2053                __fpu_reserved as * const _ as usize } , 0usize , concat ! (
2054                "Alignment of field: " , stringify ! (
2055                __darwin_x86_float_state64 ) , "::" , stringify ! (
2056                __fpu_reserved ) ));
2057    assert_eq! (unsafe {
2058                & ( * ( 0 as * const __darwin_x86_float_state64 ) ) .
2059                __fpu_fcw as * const _ as usize } , 8usize , concat ! (
2060                "Alignment of field: " , stringify ! (
2061                __darwin_x86_float_state64 ) , "::" , stringify ! ( __fpu_fcw
2062                ) ));
2063    assert_eq! (unsafe {
2064                & ( * ( 0 as * const __darwin_x86_float_state64 ) ) .
2065                __fpu_fsw as * const _ as usize } , 10usize , concat ! (
2066                "Alignment of field: " , stringify ! (
2067                __darwin_x86_float_state64 ) , "::" , stringify ! ( __fpu_fsw
2068                ) ));
2069    assert_eq! (unsafe {
2070                & ( * ( 0 as * const __darwin_x86_float_state64 ) ) .
2071                __fpu_ftw as * const _ as usize } , 12usize , concat ! (
2072                "Alignment of field: " , stringify ! (
2073                __darwin_x86_float_state64 ) , "::" , stringify ! ( __fpu_ftw
2074                ) ));
2075    assert_eq! (unsafe {
2076                & ( * ( 0 as * const __darwin_x86_float_state64 ) ) .
2077                __fpu_rsrv1 as * const _ as usize } , 13usize , concat ! (
2078                "Alignment of field: " , stringify ! (
2079                __darwin_x86_float_state64 ) , "::" , stringify ! (
2080                __fpu_rsrv1 ) ));
2081    assert_eq! (unsafe {
2082                & ( * ( 0 as * const __darwin_x86_float_state64 ) ) .
2083                __fpu_fop as * const _ as usize } , 14usize , concat ! (
2084                "Alignment of field: " , stringify ! (
2085                __darwin_x86_float_state64 ) , "::" , stringify ! ( __fpu_fop
2086                ) ));
2087    assert_eq! (unsafe {
2088                & ( * ( 0 as * const __darwin_x86_float_state64 ) ) . __fpu_ip
2089                as * const _ as usize } , 16usize , concat ! (
2090                "Alignment of field: " , stringify ! (
2091                __darwin_x86_float_state64 ) , "::" , stringify ! ( __fpu_ip )
2092                ));
2093    assert_eq! (unsafe {
2094                & ( * ( 0 as * const __darwin_x86_float_state64 ) ) . __fpu_cs
2095                as * const _ as usize } , 20usize , concat ! (
2096                "Alignment of field: " , stringify ! (
2097                __darwin_x86_float_state64 ) , "::" , stringify ! ( __fpu_cs )
2098                ));
2099    assert_eq! (unsafe {
2100                & ( * ( 0 as * const __darwin_x86_float_state64 ) ) .
2101                __fpu_rsrv2 as * const _ as usize } , 22usize , concat ! (
2102                "Alignment of field: " , stringify ! (
2103                __darwin_x86_float_state64 ) , "::" , stringify ! (
2104                __fpu_rsrv2 ) ));
2105    assert_eq! (unsafe {
2106                & ( * ( 0 as * const __darwin_x86_float_state64 ) ) . __fpu_dp
2107                as * const _ as usize } , 24usize , concat ! (
2108                "Alignment of field: " , stringify ! (
2109                __darwin_x86_float_state64 ) , "::" , stringify ! ( __fpu_dp )
2110                ));
2111    assert_eq! (unsafe {
2112                & ( * ( 0 as * const __darwin_x86_float_state64 ) ) . __fpu_ds
2113                as * const _ as usize } , 28usize , concat ! (
2114                "Alignment of field: " , stringify ! (
2115                __darwin_x86_float_state64 ) , "::" , stringify ! ( __fpu_ds )
2116                ));
2117    assert_eq! (unsafe {
2118                & ( * ( 0 as * const __darwin_x86_float_state64 ) ) .
2119                __fpu_rsrv3 as * const _ as usize } , 30usize , concat ! (
2120                "Alignment of field: " , stringify ! (
2121                __darwin_x86_float_state64 ) , "::" , stringify ! (
2122                __fpu_rsrv3 ) ));
2123    assert_eq! (unsafe {
2124                & ( * ( 0 as * const __darwin_x86_float_state64 ) ) .
2125                __fpu_mxcsr as * const _ as usize } , 32usize , concat ! (
2126                "Alignment of field: " , stringify ! (
2127                __darwin_x86_float_state64 ) , "::" , stringify ! (
2128                __fpu_mxcsr ) ));
2129    assert_eq! (unsafe {
2130                & ( * ( 0 as * const __darwin_x86_float_state64 ) ) .
2131                __fpu_mxcsrmask as * const _ as usize } , 36usize , concat ! (
2132                "Alignment of field: " , stringify ! (
2133                __darwin_x86_float_state64 ) , "::" , stringify ! (
2134                __fpu_mxcsrmask ) ));
2135    assert_eq! (unsafe {
2136                & ( * ( 0 as * const __darwin_x86_float_state64 ) ) .
2137                __fpu_stmm0 as * const _ as usize } , 40usize , concat ! (
2138                "Alignment of field: " , stringify ! (
2139                __darwin_x86_float_state64 ) , "::" , stringify ! (
2140                __fpu_stmm0 ) ));
2141    assert_eq! (unsafe {
2142                & ( * ( 0 as * const __darwin_x86_float_state64 ) ) .
2143                __fpu_stmm1 as * const _ as usize } , 56usize , concat ! (
2144                "Alignment of field: " , stringify ! (
2145                __darwin_x86_float_state64 ) , "::" , stringify ! (
2146                __fpu_stmm1 ) ));
2147    assert_eq! (unsafe {
2148                & ( * ( 0 as * const __darwin_x86_float_state64 ) ) .
2149                __fpu_stmm2 as * const _ as usize } , 72usize , concat ! (
2150                "Alignment of field: " , stringify ! (
2151                __darwin_x86_float_state64 ) , "::" , stringify ! (
2152                __fpu_stmm2 ) ));
2153    assert_eq! (unsafe {
2154                & ( * ( 0 as * const __darwin_x86_float_state64 ) ) .
2155                __fpu_stmm3 as * const _ as usize } , 88usize , concat ! (
2156                "Alignment of field: " , stringify ! (
2157                __darwin_x86_float_state64 ) , "::" , stringify ! (
2158                __fpu_stmm3 ) ));
2159    assert_eq! (unsafe {
2160                & ( * ( 0 as * const __darwin_x86_float_state64 ) ) .
2161                __fpu_stmm4 as * const _ as usize } , 104usize , concat ! (
2162                "Alignment of field: " , stringify ! (
2163                __darwin_x86_float_state64 ) , "::" , stringify ! (
2164                __fpu_stmm4 ) ));
2165    assert_eq! (unsafe {
2166                & ( * ( 0 as * const __darwin_x86_float_state64 ) ) .
2167                __fpu_stmm5 as * const _ as usize } , 120usize , concat ! (
2168                "Alignment of field: " , stringify ! (
2169                __darwin_x86_float_state64 ) , "::" , stringify ! (
2170                __fpu_stmm5 ) ));
2171    assert_eq! (unsafe {
2172                & ( * ( 0 as * const __darwin_x86_float_state64 ) ) .
2173                __fpu_stmm6 as * const _ as usize } , 136usize , concat ! (
2174                "Alignment of field: " , stringify ! (
2175                __darwin_x86_float_state64 ) , "::" , stringify ! (
2176                __fpu_stmm6 ) ));
2177    assert_eq! (unsafe {
2178                & ( * ( 0 as * const __darwin_x86_float_state64 ) ) .
2179                __fpu_stmm7 as * const _ as usize } , 152usize , concat ! (
2180                "Alignment of field: " , stringify ! (
2181                __darwin_x86_float_state64 ) , "::" , stringify ! (
2182                __fpu_stmm7 ) ));
2183    assert_eq! (unsafe {
2184                & ( * ( 0 as * const __darwin_x86_float_state64 ) ) .
2185                __fpu_xmm0 as * const _ as usize } , 168usize , concat ! (
2186                "Alignment of field: " , stringify ! (
2187                __darwin_x86_float_state64 ) , "::" , stringify ! ( __fpu_xmm0
2188                ) ));
2189    assert_eq! (unsafe {
2190                & ( * ( 0 as * const __darwin_x86_float_state64 ) ) .
2191                __fpu_xmm1 as * const _ as usize } , 184usize , concat ! (
2192                "Alignment of field: " , stringify ! (
2193                __darwin_x86_float_state64 ) , "::" , stringify ! ( __fpu_xmm1
2194                ) ));
2195    assert_eq! (unsafe {
2196                & ( * ( 0 as * const __darwin_x86_float_state64 ) ) .
2197                __fpu_xmm2 as * const _ as usize } , 200usize , concat ! (
2198                "Alignment of field: " , stringify ! (
2199                __darwin_x86_float_state64 ) , "::" , stringify ! ( __fpu_xmm2
2200                ) ));
2201    assert_eq! (unsafe {
2202                & ( * ( 0 as * const __darwin_x86_float_state64 ) ) .
2203                __fpu_xmm3 as * const _ as usize } , 216usize , concat ! (
2204                "Alignment of field: " , stringify ! (
2205                __darwin_x86_float_state64 ) , "::" , stringify ! ( __fpu_xmm3
2206                ) ));
2207    assert_eq! (unsafe {
2208                & ( * ( 0 as * const __darwin_x86_float_state64 ) ) .
2209                __fpu_xmm4 as * const _ as usize } , 232usize , concat ! (
2210                "Alignment of field: " , stringify ! (
2211                __darwin_x86_float_state64 ) , "::" , stringify ! ( __fpu_xmm4
2212                ) ));
2213    assert_eq! (unsafe {
2214                & ( * ( 0 as * const __darwin_x86_float_state64 ) ) .
2215                __fpu_xmm5 as * const _ as usize } , 248usize , concat ! (
2216                "Alignment of field: " , stringify ! (
2217                __darwin_x86_float_state64 ) , "::" , stringify ! ( __fpu_xmm5
2218                ) ));
2219    assert_eq! (unsafe {
2220                & ( * ( 0 as * const __darwin_x86_float_state64 ) ) .
2221                __fpu_xmm6 as * const _ as usize } , 264usize , concat ! (
2222                "Alignment of field: " , stringify ! (
2223                __darwin_x86_float_state64 ) , "::" , stringify ! ( __fpu_xmm6
2224                ) ));
2225    assert_eq! (unsafe {
2226                & ( * ( 0 as * const __darwin_x86_float_state64 ) ) .
2227                __fpu_xmm7 as * const _ as usize } , 280usize , concat ! (
2228                "Alignment of field: " , stringify ! (
2229                __darwin_x86_float_state64 ) , "::" , stringify ! ( __fpu_xmm7
2230                ) ));
2231    assert_eq! (unsafe {
2232                & ( * ( 0 as * const __darwin_x86_float_state64 ) ) .
2233                __fpu_xmm8 as * const _ as usize } , 296usize , concat ! (
2234                "Alignment of field: " , stringify ! (
2235                __darwin_x86_float_state64 ) , "::" , stringify ! ( __fpu_xmm8
2236                ) ));
2237    assert_eq! (unsafe {
2238                & ( * ( 0 as * const __darwin_x86_float_state64 ) ) .
2239                __fpu_xmm9 as * const _ as usize } , 312usize , concat ! (
2240                "Alignment of field: " , stringify ! (
2241                __darwin_x86_float_state64 ) , "::" , stringify ! ( __fpu_xmm9
2242                ) ));
2243    assert_eq! (unsafe {
2244                & ( * ( 0 as * const __darwin_x86_float_state64 ) ) .
2245                __fpu_xmm10 as * const _ as usize } , 328usize , concat ! (
2246                "Alignment of field: " , stringify ! (
2247                __darwin_x86_float_state64 ) , "::" , stringify ! (
2248                __fpu_xmm10 ) ));
2249    assert_eq! (unsafe {
2250                & ( * ( 0 as * const __darwin_x86_float_state64 ) ) .
2251                __fpu_xmm11 as * const _ as usize } , 344usize , concat ! (
2252                "Alignment of field: " , stringify ! (
2253                __darwin_x86_float_state64 ) , "::" , stringify ! (
2254                __fpu_xmm11 ) ));
2255    assert_eq! (unsafe {
2256                & ( * ( 0 as * const __darwin_x86_float_state64 ) ) .
2257                __fpu_xmm12 as * const _ as usize } , 360usize , concat ! (
2258                "Alignment of field: " , stringify ! (
2259                __darwin_x86_float_state64 ) , "::" , stringify ! (
2260                __fpu_xmm12 ) ));
2261    assert_eq! (unsafe {
2262                & ( * ( 0 as * const __darwin_x86_float_state64 ) ) .
2263                __fpu_xmm13 as * const _ as usize } , 376usize , concat ! (
2264                "Alignment of field: " , stringify ! (
2265                __darwin_x86_float_state64 ) , "::" , stringify ! (
2266                __fpu_xmm13 ) ));
2267    assert_eq! (unsafe {
2268                & ( * ( 0 as * const __darwin_x86_float_state64 ) ) .
2269                __fpu_xmm14 as * const _ as usize } , 392usize , concat ! (
2270                "Alignment of field: " , stringify ! (
2271                __darwin_x86_float_state64 ) , "::" , stringify ! (
2272                __fpu_xmm14 ) ));
2273    assert_eq! (unsafe {
2274                & ( * ( 0 as * const __darwin_x86_float_state64 ) ) .
2275                __fpu_xmm15 as * const _ as usize } , 408usize , concat ! (
2276                "Alignment of field: " , stringify ! (
2277                __darwin_x86_float_state64 ) , "::" , stringify ! (
2278                __fpu_xmm15 ) ));
2279    assert_eq! (unsafe {
2280                & ( * ( 0 as * const __darwin_x86_float_state64 ) ) .
2281                __fpu_rsrv4 as * const _ as usize } , 424usize , concat ! (
2282                "Alignment of field: " , stringify ! (
2283                __darwin_x86_float_state64 ) , "::" , stringify ! (
2284                __fpu_rsrv4 ) ));
2285    assert_eq! (unsafe {
2286                & ( * ( 0 as * const __darwin_x86_float_state64 ) ) .
2287                __fpu_reserved1 as * const _ as usize } , 520usize , concat !
2288                (
2289                "Alignment of field: " , stringify ! (
2290                __darwin_x86_float_state64 ) , "::" , stringify ! (
2291                __fpu_reserved1 ) ));
2292}
2293#[repr(C)]
2294pub struct __darwin_x86_avx_state64 {
2295    pub __fpu_reserved: [::std::os::raw::c_int; 2usize],
2296    pub __fpu_fcw: __darwin_fp_control,
2297    pub __fpu_fsw: __darwin_fp_status,
2298    pub __fpu_ftw: __uint8_t,
2299    pub __fpu_rsrv1: __uint8_t,
2300    pub __fpu_fop: __uint16_t,
2301    pub __fpu_ip: __uint32_t,
2302    pub __fpu_cs: __uint16_t,
2303    pub __fpu_rsrv2: __uint16_t,
2304    pub __fpu_dp: __uint32_t,
2305    pub __fpu_ds: __uint16_t,
2306    pub __fpu_rsrv3: __uint16_t,
2307    pub __fpu_mxcsr: __uint32_t,
2308    pub __fpu_mxcsrmask: __uint32_t,
2309    pub __fpu_stmm0: __darwin_mmst_reg,
2310    pub __fpu_stmm1: __darwin_mmst_reg,
2311    pub __fpu_stmm2: __darwin_mmst_reg,
2312    pub __fpu_stmm3: __darwin_mmst_reg,
2313    pub __fpu_stmm4: __darwin_mmst_reg,
2314    pub __fpu_stmm5: __darwin_mmst_reg,
2315    pub __fpu_stmm6: __darwin_mmst_reg,
2316    pub __fpu_stmm7: __darwin_mmst_reg,
2317    pub __fpu_xmm0: __darwin_xmm_reg,
2318    pub __fpu_xmm1: __darwin_xmm_reg,
2319    pub __fpu_xmm2: __darwin_xmm_reg,
2320    pub __fpu_xmm3: __darwin_xmm_reg,
2321    pub __fpu_xmm4: __darwin_xmm_reg,
2322    pub __fpu_xmm5: __darwin_xmm_reg,
2323    pub __fpu_xmm6: __darwin_xmm_reg,
2324    pub __fpu_xmm7: __darwin_xmm_reg,
2325    pub __fpu_xmm8: __darwin_xmm_reg,
2326    pub __fpu_xmm9: __darwin_xmm_reg,
2327    pub __fpu_xmm10: __darwin_xmm_reg,
2328    pub __fpu_xmm11: __darwin_xmm_reg,
2329    pub __fpu_xmm12: __darwin_xmm_reg,
2330    pub __fpu_xmm13: __darwin_xmm_reg,
2331    pub __fpu_xmm14: __darwin_xmm_reg,
2332    pub __fpu_xmm15: __darwin_xmm_reg,
2333    pub __fpu_rsrv4: [::std::os::raw::c_char; 96usize],
2334    pub __fpu_reserved1: ::std::os::raw::c_int,
2335    pub __avx_reserved1: [::std::os::raw::c_char; 64usize],
2336    pub __fpu_ymmh0: __darwin_xmm_reg,
2337    pub __fpu_ymmh1: __darwin_xmm_reg,
2338    pub __fpu_ymmh2: __darwin_xmm_reg,
2339    pub __fpu_ymmh3: __darwin_xmm_reg,
2340    pub __fpu_ymmh4: __darwin_xmm_reg,
2341    pub __fpu_ymmh5: __darwin_xmm_reg,
2342    pub __fpu_ymmh6: __darwin_xmm_reg,
2343    pub __fpu_ymmh7: __darwin_xmm_reg,
2344    pub __fpu_ymmh8: __darwin_xmm_reg,
2345    pub __fpu_ymmh9: __darwin_xmm_reg,
2346    pub __fpu_ymmh10: __darwin_xmm_reg,
2347    pub __fpu_ymmh11: __darwin_xmm_reg,
2348    pub __fpu_ymmh12: __darwin_xmm_reg,
2349    pub __fpu_ymmh13: __darwin_xmm_reg,
2350    pub __fpu_ymmh14: __darwin_xmm_reg,
2351    pub __fpu_ymmh15: __darwin_xmm_reg,
2352}
2353#[test]
2354fn bindgen_test_layout___darwin_x86_avx_state64() {
2355    assert_eq!(::std::mem::size_of::<__darwin_x86_avx_state64>() , 844usize ,
2356               concat ! (
2357               "Size of: " , stringify ! ( __darwin_x86_avx_state64 ) ));
2358    assert_eq! (::std::mem::align_of::<__darwin_x86_avx_state64>() , 4usize ,
2359                concat ! (
2360                "Alignment of " , stringify ! ( __darwin_x86_avx_state64 ) ));
2361    assert_eq! (unsafe {
2362                & ( * ( 0 as * const __darwin_x86_avx_state64 ) ) .
2363                __fpu_reserved as * const _ as usize } , 0usize , concat ! (
2364                "Alignment of field: " , stringify ! (
2365                __darwin_x86_avx_state64 ) , "::" , stringify ! (
2366                __fpu_reserved ) ));
2367    assert_eq! (unsafe {
2368                & ( * ( 0 as * const __darwin_x86_avx_state64 ) ) . __fpu_fcw
2369                as * const _ as usize } , 8usize , concat ! (
2370                "Alignment of field: " , stringify ! (
2371                __darwin_x86_avx_state64 ) , "::" , stringify ! ( __fpu_fcw )
2372                ));
2373    assert_eq! (unsafe {
2374                & ( * ( 0 as * const __darwin_x86_avx_state64 ) ) . __fpu_fsw
2375                as * const _ as usize } , 10usize , concat ! (
2376                "Alignment of field: " , stringify ! (
2377                __darwin_x86_avx_state64 ) , "::" , stringify ! ( __fpu_fsw )
2378                ));
2379    assert_eq! (unsafe {
2380                & ( * ( 0 as * const __darwin_x86_avx_state64 ) ) . __fpu_ftw
2381                as * const _ as usize } , 12usize , concat ! (
2382                "Alignment of field: " , stringify ! (
2383                __darwin_x86_avx_state64 ) , "::" , stringify ! ( __fpu_ftw )
2384                ));
2385    assert_eq! (unsafe {
2386                & ( * ( 0 as * const __darwin_x86_avx_state64 ) ) .
2387                __fpu_rsrv1 as * const _ as usize } , 13usize , concat ! (
2388                "Alignment of field: " , stringify ! (
2389                __darwin_x86_avx_state64 ) , "::" , stringify ! ( __fpu_rsrv1
2390                ) ));
2391    assert_eq! (unsafe {
2392                & ( * ( 0 as * const __darwin_x86_avx_state64 ) ) . __fpu_fop
2393                as * const _ as usize } , 14usize , concat ! (
2394                "Alignment of field: " , stringify ! (
2395                __darwin_x86_avx_state64 ) , "::" , stringify ! ( __fpu_fop )
2396                ));
2397    assert_eq! (unsafe {
2398                & ( * ( 0 as * const __darwin_x86_avx_state64 ) ) . __fpu_ip
2399                as * const _ as usize } , 16usize , concat ! (
2400                "Alignment of field: " , stringify ! (
2401                __darwin_x86_avx_state64 ) , "::" , stringify ! ( __fpu_ip )
2402                ));
2403    assert_eq! (unsafe {
2404                & ( * ( 0 as * const __darwin_x86_avx_state64 ) ) . __fpu_cs
2405                as * const _ as usize } , 20usize , concat ! (
2406                "Alignment of field: " , stringify ! (
2407                __darwin_x86_avx_state64 ) , "::" , stringify ! ( __fpu_cs )
2408                ));
2409    assert_eq! (unsafe {
2410                & ( * ( 0 as * const __darwin_x86_avx_state64 ) ) .
2411                __fpu_rsrv2 as * const _ as usize } , 22usize , concat ! (
2412                "Alignment of field: " , stringify ! (
2413                __darwin_x86_avx_state64 ) , "::" , stringify ! ( __fpu_rsrv2
2414                ) ));
2415    assert_eq! (unsafe {
2416                & ( * ( 0 as * const __darwin_x86_avx_state64 ) ) . __fpu_dp
2417                as * const _ as usize } , 24usize , concat ! (
2418                "Alignment of field: " , stringify ! (
2419                __darwin_x86_avx_state64 ) , "::" , stringify ! ( __fpu_dp )
2420                ));
2421    assert_eq! (unsafe {
2422                & ( * ( 0 as * const __darwin_x86_avx_state64 ) ) . __fpu_ds
2423                as * const _ as usize } , 28usize , concat ! (
2424                "Alignment of field: " , stringify ! (
2425                __darwin_x86_avx_state64 ) , "::" , stringify ! ( __fpu_ds )
2426                ));
2427    assert_eq! (unsafe {
2428                & ( * ( 0 as * const __darwin_x86_avx_state64 ) ) .
2429                __fpu_rsrv3 as * const _ as usize } , 30usize , concat ! (
2430                "Alignment of field: " , stringify ! (
2431                __darwin_x86_avx_state64 ) , "::" , stringify ! ( __fpu_rsrv3
2432                ) ));
2433    assert_eq! (unsafe {
2434                & ( * ( 0 as * const __darwin_x86_avx_state64 ) ) .
2435                __fpu_mxcsr as * const _ as usize } , 32usize , concat ! (
2436                "Alignment of field: " , stringify ! (
2437                __darwin_x86_avx_state64 ) , "::" , stringify ! ( __fpu_mxcsr
2438                ) ));
2439    assert_eq! (unsafe {
2440                & ( * ( 0 as * const __darwin_x86_avx_state64 ) ) .
2441                __fpu_mxcsrmask as * const _ as usize } , 36usize , concat ! (
2442                "Alignment of field: " , stringify ! (
2443                __darwin_x86_avx_state64 ) , "::" , stringify ! (
2444                __fpu_mxcsrmask ) ));
2445    assert_eq! (unsafe {
2446                & ( * ( 0 as * const __darwin_x86_avx_state64 ) ) .
2447                __fpu_stmm0 as * const _ as usize } , 40usize , concat ! (
2448                "Alignment of field: " , stringify ! (
2449                __darwin_x86_avx_state64 ) , "::" , stringify ! ( __fpu_stmm0
2450                ) ));
2451    assert_eq! (unsafe {
2452                & ( * ( 0 as * const __darwin_x86_avx_state64 ) ) .
2453                __fpu_stmm1 as * const _ as usize } , 56usize , concat ! (
2454                "Alignment of field: " , stringify ! (
2455                __darwin_x86_avx_state64 ) , "::" , stringify ! ( __fpu_stmm1
2456                ) ));
2457    assert_eq! (unsafe {
2458                & ( * ( 0 as * const __darwin_x86_avx_state64 ) ) .
2459                __fpu_stmm2 as * const _ as usize } , 72usize , concat ! (
2460                "Alignment of field: " , stringify ! (
2461                __darwin_x86_avx_state64 ) , "::" , stringify ! ( __fpu_stmm2
2462                ) ));
2463    assert_eq! (unsafe {
2464                & ( * ( 0 as * const __darwin_x86_avx_state64 ) ) .
2465                __fpu_stmm3 as * const _ as usize } , 88usize , concat ! (
2466                "Alignment of field: " , stringify ! (
2467                __darwin_x86_avx_state64 ) , "::" , stringify ! ( __fpu_stmm3
2468                ) ));
2469    assert_eq! (unsafe {
2470                & ( * ( 0 as * const __darwin_x86_avx_state64 ) ) .
2471                __fpu_stmm4 as * const _ as usize } , 104usize , concat ! (
2472                "Alignment of field: " , stringify ! (
2473                __darwin_x86_avx_state64 ) , "::" , stringify ! ( __fpu_stmm4
2474                ) ));
2475    assert_eq! (unsafe {
2476                & ( * ( 0 as * const __darwin_x86_avx_state64 ) ) .
2477                __fpu_stmm5 as * const _ as usize } , 120usize , concat ! (
2478                "Alignment of field: " , stringify ! (
2479                __darwin_x86_avx_state64 ) , "::" , stringify ! ( __fpu_stmm5
2480                ) ));
2481    assert_eq! (unsafe {
2482                & ( * ( 0 as * const __darwin_x86_avx_state64 ) ) .
2483                __fpu_stmm6 as * const _ as usize } , 136usize , concat ! (
2484                "Alignment of field: " , stringify ! (
2485                __darwin_x86_avx_state64 ) , "::" , stringify ! ( __fpu_stmm6
2486                ) ));
2487    assert_eq! (unsafe {
2488                & ( * ( 0 as * const __darwin_x86_avx_state64 ) ) .
2489                __fpu_stmm7 as * const _ as usize } , 152usize , concat ! (
2490                "Alignment of field: " , stringify ! (
2491                __darwin_x86_avx_state64 ) , "::" , stringify ! ( __fpu_stmm7
2492                ) ));
2493    assert_eq! (unsafe {
2494                & ( * ( 0 as * const __darwin_x86_avx_state64 ) ) . __fpu_xmm0
2495                as * const _ as usize } , 168usize , concat ! (
2496                "Alignment of field: " , stringify ! (
2497                __darwin_x86_avx_state64 ) , "::" , stringify ! ( __fpu_xmm0 )
2498                ));
2499    assert_eq! (unsafe {
2500                & ( * ( 0 as * const __darwin_x86_avx_state64 ) ) . __fpu_xmm1
2501                as * const _ as usize } , 184usize , concat ! (
2502                "Alignment of field: " , stringify ! (
2503                __darwin_x86_avx_state64 ) , "::" , stringify ! ( __fpu_xmm1 )
2504                ));
2505    assert_eq! (unsafe {
2506                & ( * ( 0 as * const __darwin_x86_avx_state64 ) ) . __fpu_xmm2
2507                as * const _ as usize } , 200usize , concat ! (
2508                "Alignment of field: " , stringify ! (
2509                __darwin_x86_avx_state64 ) , "::" , stringify ! ( __fpu_xmm2 )
2510                ));
2511    assert_eq! (unsafe {
2512                & ( * ( 0 as * const __darwin_x86_avx_state64 ) ) . __fpu_xmm3
2513                as * const _ as usize } , 216usize , concat ! (
2514                "Alignment of field: " , stringify ! (
2515                __darwin_x86_avx_state64 ) , "::" , stringify ! ( __fpu_xmm3 )
2516                ));
2517    assert_eq! (unsafe {
2518                & ( * ( 0 as * const __darwin_x86_avx_state64 ) ) . __fpu_xmm4
2519                as * const _ as usize } , 232usize , concat ! (
2520                "Alignment of field: " , stringify ! (
2521                __darwin_x86_avx_state64 ) , "::" , stringify ! ( __fpu_xmm4 )
2522                ));
2523    assert_eq! (unsafe {
2524                & ( * ( 0 as * const __darwin_x86_avx_state64 ) ) . __fpu_xmm5
2525                as * const _ as usize } , 248usize , concat ! (
2526                "Alignment of field: " , stringify ! (
2527                __darwin_x86_avx_state64 ) , "::" , stringify ! ( __fpu_xmm5 )
2528                ));
2529    assert_eq! (unsafe {
2530                & ( * ( 0 as * const __darwin_x86_avx_state64 ) ) . __fpu_xmm6
2531                as * const _ as usize } , 264usize , concat ! (
2532                "Alignment of field: " , stringify ! (
2533                __darwin_x86_avx_state64 ) , "::" , stringify ! ( __fpu_xmm6 )
2534                ));
2535    assert_eq! (unsafe {
2536                & ( * ( 0 as * const __darwin_x86_avx_state64 ) ) . __fpu_xmm7
2537                as * const _ as usize } , 280usize , concat ! (
2538                "Alignment of field: " , stringify ! (
2539                __darwin_x86_avx_state64 ) , "::" , stringify ! ( __fpu_xmm7 )
2540                ));
2541    assert_eq! (unsafe {
2542                & ( * ( 0 as * const __darwin_x86_avx_state64 ) ) . __fpu_xmm8
2543                as * const _ as usize } , 296usize , concat ! (
2544                "Alignment of field: " , stringify ! (
2545                __darwin_x86_avx_state64 ) , "::" , stringify ! ( __fpu_xmm8 )
2546                ));
2547    assert_eq! (unsafe {
2548                & ( * ( 0 as * const __darwin_x86_avx_state64 ) ) . __fpu_xmm9
2549                as * const _ as usize } , 312usize , concat ! (
2550                "Alignment of field: " , stringify ! (
2551                __darwin_x86_avx_state64 ) , "::" , stringify ! ( __fpu_xmm9 )
2552                ));
2553    assert_eq! (unsafe {
2554                & ( * ( 0 as * const __darwin_x86_avx_state64 ) ) .
2555                __fpu_xmm10 as * const _ as usize } , 328usize , concat ! (
2556                "Alignment of field: " , stringify ! (
2557                __darwin_x86_avx_state64 ) , "::" , stringify ! ( __fpu_xmm10
2558                ) ));
2559    assert_eq! (unsafe {
2560                & ( * ( 0 as * const __darwin_x86_avx_state64 ) ) .
2561                __fpu_xmm11 as * const _ as usize } , 344usize , concat ! (
2562                "Alignment of field: " , stringify ! (
2563                __darwin_x86_avx_state64 ) , "::" , stringify ! ( __fpu_xmm11
2564                ) ));
2565    assert_eq! (unsafe {
2566                & ( * ( 0 as * const __darwin_x86_avx_state64 ) ) .
2567                __fpu_xmm12 as * const _ as usize } , 360usize , concat ! (
2568                "Alignment of field: " , stringify ! (
2569                __darwin_x86_avx_state64 ) , "::" , stringify ! ( __fpu_xmm12
2570                ) ));
2571    assert_eq! (unsafe {
2572                & ( * ( 0 as * const __darwin_x86_avx_state64 ) ) .
2573                __fpu_xmm13 as * const _ as usize } , 376usize , concat ! (
2574                "Alignment of field: " , stringify ! (
2575                __darwin_x86_avx_state64 ) , "::" , stringify ! ( __fpu_xmm13
2576                ) ));
2577    assert_eq! (unsafe {
2578                & ( * ( 0 as * const __darwin_x86_avx_state64 ) ) .
2579                __fpu_xmm14 as * const _ as usize } , 392usize , concat ! (
2580                "Alignment of field: " , stringify ! (
2581                __darwin_x86_avx_state64 ) , "::" , stringify ! ( __fpu_xmm14
2582                ) ));
2583    assert_eq! (unsafe {
2584                & ( * ( 0 as * const __darwin_x86_avx_state64 ) ) .
2585                __fpu_xmm15 as * const _ as usize } , 408usize , concat ! (
2586                "Alignment of field: " , stringify ! (
2587                __darwin_x86_avx_state64 ) , "::" , stringify ! ( __fpu_xmm15
2588                ) ));
2589    assert_eq! (unsafe {
2590                & ( * ( 0 as * const __darwin_x86_avx_state64 ) ) .
2591                __fpu_rsrv4 as * const _ as usize } , 424usize , concat ! (
2592                "Alignment of field: " , stringify ! (
2593                __darwin_x86_avx_state64 ) , "::" , stringify ! ( __fpu_rsrv4
2594                ) ));
2595    assert_eq! (unsafe {
2596                & ( * ( 0 as * const __darwin_x86_avx_state64 ) ) .
2597                __fpu_reserved1 as * const _ as usize } , 520usize , concat !
2598                (
2599                "Alignment of field: " , stringify ! (
2600                __darwin_x86_avx_state64 ) , "::" , stringify ! (
2601                __fpu_reserved1 ) ));
2602    assert_eq! (unsafe {
2603                & ( * ( 0 as * const __darwin_x86_avx_state64 ) ) .
2604                __avx_reserved1 as * const _ as usize } , 524usize , concat !
2605                (
2606                "Alignment of field: " , stringify ! (
2607                __darwin_x86_avx_state64 ) , "::" , stringify ! (
2608                __avx_reserved1 ) ));
2609    assert_eq! (unsafe {
2610                & ( * ( 0 as * const __darwin_x86_avx_state64 ) ) .
2611                __fpu_ymmh0 as * const _ as usize } , 588usize , concat ! (
2612                "Alignment of field: " , stringify ! (
2613                __darwin_x86_avx_state64 ) , "::" , stringify ! ( __fpu_ymmh0
2614                ) ));
2615    assert_eq! (unsafe {
2616                & ( * ( 0 as * const __darwin_x86_avx_state64 ) ) .
2617                __fpu_ymmh1 as * const _ as usize } , 604usize , concat ! (
2618                "Alignment of field: " , stringify ! (
2619                __darwin_x86_avx_state64 ) , "::" , stringify ! ( __fpu_ymmh1
2620                ) ));
2621    assert_eq! (unsafe {
2622                & ( * ( 0 as * const __darwin_x86_avx_state64 ) ) .
2623                __fpu_ymmh2 as * const _ as usize } , 620usize , concat ! (
2624                "Alignment of field: " , stringify ! (
2625                __darwin_x86_avx_state64 ) , "::" , stringify ! ( __fpu_ymmh2
2626                ) ));
2627    assert_eq! (unsafe {
2628                & ( * ( 0 as * const __darwin_x86_avx_state64 ) ) .
2629                __fpu_ymmh3 as * const _ as usize } , 636usize , concat ! (
2630                "Alignment of field: " , stringify ! (
2631                __darwin_x86_avx_state64 ) , "::" , stringify ! ( __fpu_ymmh3
2632                ) ));
2633    assert_eq! (unsafe {
2634                & ( * ( 0 as * const __darwin_x86_avx_state64 ) ) .
2635                __fpu_ymmh4 as * const _ as usize } , 652usize , concat ! (
2636                "Alignment of field: " , stringify ! (
2637                __darwin_x86_avx_state64 ) , "::" , stringify ! ( __fpu_ymmh4
2638                ) ));
2639    assert_eq! (unsafe {
2640                & ( * ( 0 as * const __darwin_x86_avx_state64 ) ) .
2641                __fpu_ymmh5 as * const _ as usize } , 668usize , concat ! (
2642                "Alignment of field: " , stringify ! (
2643                __darwin_x86_avx_state64 ) , "::" , stringify ! ( __fpu_ymmh5
2644                ) ));
2645    assert_eq! (unsafe {
2646                & ( * ( 0 as * const __darwin_x86_avx_state64 ) ) .
2647                __fpu_ymmh6 as * const _ as usize } , 684usize , concat ! (
2648                "Alignment of field: " , stringify ! (
2649                __darwin_x86_avx_state64 ) , "::" , stringify ! ( __fpu_ymmh6
2650                ) ));
2651    assert_eq! (unsafe {
2652                & ( * ( 0 as * const __darwin_x86_avx_state64 ) ) .
2653                __fpu_ymmh7 as * const _ as usize } , 700usize , concat ! (
2654                "Alignment of field: " , stringify ! (
2655                __darwin_x86_avx_state64 ) , "::" , stringify ! ( __fpu_ymmh7
2656                ) ));
2657    assert_eq! (unsafe {
2658                & ( * ( 0 as * const __darwin_x86_avx_state64 ) ) .
2659                __fpu_ymmh8 as * const _ as usize } , 716usize , concat ! (
2660                "Alignment of field: " , stringify ! (
2661                __darwin_x86_avx_state64 ) , "::" , stringify ! ( __fpu_ymmh8
2662                ) ));
2663    assert_eq! (unsafe {
2664                & ( * ( 0 as * const __darwin_x86_avx_state64 ) ) .
2665                __fpu_ymmh9 as * const _ as usize } , 732usize , concat ! (
2666                "Alignment of field: " , stringify ! (
2667                __darwin_x86_avx_state64 ) , "::" , stringify ! ( __fpu_ymmh9
2668                ) ));
2669    assert_eq! (unsafe {
2670                & ( * ( 0 as * const __darwin_x86_avx_state64 ) ) .
2671                __fpu_ymmh10 as * const _ as usize } , 748usize , concat ! (
2672                "Alignment of field: " , stringify ! (
2673                __darwin_x86_avx_state64 ) , "::" , stringify ! ( __fpu_ymmh10
2674                ) ));
2675    assert_eq! (unsafe {
2676                & ( * ( 0 as * const __darwin_x86_avx_state64 ) ) .
2677                __fpu_ymmh11 as * const _ as usize } , 764usize , concat ! (
2678                "Alignment of field: " , stringify ! (
2679                __darwin_x86_avx_state64 ) , "::" , stringify ! ( __fpu_ymmh11
2680                ) ));
2681    assert_eq! (unsafe {
2682                & ( * ( 0 as * const __darwin_x86_avx_state64 ) ) .
2683                __fpu_ymmh12 as * const _ as usize } , 780usize , concat ! (
2684                "Alignment of field: " , stringify ! (
2685                __darwin_x86_avx_state64 ) , "::" , stringify ! ( __fpu_ymmh12
2686                ) ));
2687    assert_eq! (unsafe {
2688                & ( * ( 0 as * const __darwin_x86_avx_state64 ) ) .
2689                __fpu_ymmh13 as * const _ as usize } , 796usize , concat ! (
2690                "Alignment of field: " , stringify ! (
2691                __darwin_x86_avx_state64 ) , "::" , stringify ! ( __fpu_ymmh13
2692                ) ));
2693    assert_eq! (unsafe {
2694                & ( * ( 0 as * const __darwin_x86_avx_state64 ) ) .
2695                __fpu_ymmh14 as * const _ as usize } , 812usize , concat ! (
2696                "Alignment of field: " , stringify ! (
2697                __darwin_x86_avx_state64 ) , "::" , stringify ! ( __fpu_ymmh14
2698                ) ));
2699    assert_eq! (unsafe {
2700                & ( * ( 0 as * const __darwin_x86_avx_state64 ) ) .
2701                __fpu_ymmh15 as * const _ as usize } , 828usize , concat ! (
2702                "Alignment of field: " , stringify ! (
2703                __darwin_x86_avx_state64 ) , "::" , stringify ! ( __fpu_ymmh15
2704                ) ));
2705}
2706#[repr(C)]
2707#[derive(Debug, Copy)]
2708pub struct __darwin_x86_exception_state64 {
2709    pub __trapno: __uint16_t,
2710    pub __cpu: __uint16_t,
2711    pub __err: __uint32_t,
2712    pub __faultvaddr: __uint64_t,
2713}
2714#[test]
2715fn bindgen_test_layout___darwin_x86_exception_state64() {
2716    assert_eq!(::std::mem::size_of::<__darwin_x86_exception_state64>() ,
2717               16usize , concat ! (
2718               "Size of: " , stringify ! ( __darwin_x86_exception_state64 )
2719               ));
2720    assert_eq! (::std::mem::align_of::<__darwin_x86_exception_state64>() ,
2721                8usize , concat ! (
2722                "Alignment of " , stringify ! ( __darwin_x86_exception_state64
2723                ) ));
2724    assert_eq! (unsafe {
2725                & ( * ( 0 as * const __darwin_x86_exception_state64 ) ) .
2726                __trapno as * const _ as usize } , 0usize , concat ! (
2727                "Alignment of field: " , stringify ! (
2728                __darwin_x86_exception_state64 ) , "::" , stringify ! (
2729                __trapno ) ));
2730    assert_eq! (unsafe {
2731                & ( * ( 0 as * const __darwin_x86_exception_state64 ) ) .
2732                __cpu as * const _ as usize } , 2usize , concat ! (
2733                "Alignment of field: " , stringify ! (
2734                __darwin_x86_exception_state64 ) , "::" , stringify ! ( __cpu
2735                ) ));
2736    assert_eq! (unsafe {
2737                & ( * ( 0 as * const __darwin_x86_exception_state64 ) ) .
2738                __err as * const _ as usize } , 4usize , concat ! (
2739                "Alignment of field: " , stringify ! (
2740                __darwin_x86_exception_state64 ) , "::" , stringify ! ( __err
2741                ) ));
2742    assert_eq! (unsafe {
2743                & ( * ( 0 as * const __darwin_x86_exception_state64 ) ) .
2744                __faultvaddr as * const _ as usize } , 8usize , concat ! (
2745                "Alignment of field: " , stringify ! (
2746                __darwin_x86_exception_state64 ) , "::" , stringify ! (
2747                __faultvaddr ) ));
2748}
2749impl Clone for __darwin_x86_exception_state64 {
2750    fn clone(&self) -> Self { *self }
2751}
2752#[repr(C)]
2753#[derive(Debug, Copy)]
2754pub struct __darwin_x86_debug_state64 {
2755    pub __dr0: __uint64_t,
2756    pub __dr1: __uint64_t,
2757    pub __dr2: __uint64_t,
2758    pub __dr3: __uint64_t,
2759    pub __dr4: __uint64_t,
2760    pub __dr5: __uint64_t,
2761    pub __dr6: __uint64_t,
2762    pub __dr7: __uint64_t,
2763}
2764#[test]
2765fn bindgen_test_layout___darwin_x86_debug_state64() {
2766    assert_eq!(::std::mem::size_of::<__darwin_x86_debug_state64>() , 64usize ,
2767               concat ! (
2768               "Size of: " , stringify ! ( __darwin_x86_debug_state64 ) ));
2769    assert_eq! (::std::mem::align_of::<__darwin_x86_debug_state64>() , 8usize
2770                , concat ! (
2771                "Alignment of " , stringify ! ( __darwin_x86_debug_state64 )
2772                ));
2773    assert_eq! (unsafe {
2774                & ( * ( 0 as * const __darwin_x86_debug_state64 ) ) . __dr0 as
2775                * const _ as usize } , 0usize , concat ! (
2776                "Alignment of field: " , stringify ! (
2777                __darwin_x86_debug_state64 ) , "::" , stringify ! ( __dr0 )
2778                ));
2779    assert_eq! (unsafe {
2780                & ( * ( 0 as * const __darwin_x86_debug_state64 ) ) . __dr1 as
2781                * const _ as usize } , 8usize , concat ! (
2782                "Alignment of field: " , stringify ! (
2783                __darwin_x86_debug_state64 ) , "::" , stringify ! ( __dr1 )
2784                ));
2785    assert_eq! (unsafe {
2786                & ( * ( 0 as * const __darwin_x86_debug_state64 ) ) . __dr2 as
2787                * const _ as usize } , 16usize , concat ! (
2788                "Alignment of field: " , stringify ! (
2789                __darwin_x86_debug_state64 ) , "::" , stringify ! ( __dr2 )
2790                ));
2791    assert_eq! (unsafe {
2792                & ( * ( 0 as * const __darwin_x86_debug_state64 ) ) . __dr3 as
2793                * const _ as usize } , 24usize , concat ! (
2794                "Alignment of field: " , stringify ! (
2795                __darwin_x86_debug_state64 ) , "::" , stringify ! ( __dr3 )
2796                ));
2797    assert_eq! (unsafe {
2798                & ( * ( 0 as * const __darwin_x86_debug_state64 ) ) . __dr4 as
2799                * const _ as usize } , 32usize , concat ! (
2800                "Alignment of field: " , stringify ! (
2801                __darwin_x86_debug_state64 ) , "::" , stringify ! ( __dr4 )
2802                ));
2803    assert_eq! (unsafe {
2804                & ( * ( 0 as * const __darwin_x86_debug_state64 ) ) . __dr5 as
2805                * const _ as usize } , 40usize , concat ! (
2806                "Alignment of field: " , stringify ! (
2807                __darwin_x86_debug_state64 ) , "::" , stringify ! ( __dr5 )
2808                ));
2809    assert_eq! (unsafe {
2810                & ( * ( 0 as * const __darwin_x86_debug_state64 ) ) . __dr6 as
2811                * const _ as usize } , 48usize , concat ! (
2812                "Alignment of field: " , stringify ! (
2813                __darwin_x86_debug_state64 ) , "::" , stringify ! ( __dr6 )
2814                ));
2815    assert_eq! (unsafe {
2816                & ( * ( 0 as * const __darwin_x86_debug_state64 ) ) . __dr7 as
2817                * const _ as usize } , 56usize , concat ! (
2818                "Alignment of field: " , stringify ! (
2819                __darwin_x86_debug_state64 ) , "::" , stringify ! ( __dr7 )
2820                ));
2821}
2822impl Clone for __darwin_x86_debug_state64 {
2823    fn clone(&self) -> Self { *self }
2824}
2825#[repr(C)]
2826pub struct __darwin_mcontext32 {
2827    pub __es: __darwin_i386_exception_state,
2828    pub __ss: __darwin_i386_thread_state,
2829    pub __fs: __darwin_i386_float_state,
2830}
2831#[test]
2832fn bindgen_test_layout___darwin_mcontext32() {
2833    assert_eq!(::std::mem::size_of::<__darwin_mcontext32>() , 600usize ,
2834               concat ! ( "Size of: " , stringify ! ( __darwin_mcontext32 )
2835               ));
2836    assert_eq! (::std::mem::align_of::<__darwin_mcontext32>() , 4usize ,
2837                concat ! (
2838                "Alignment of " , stringify ! ( __darwin_mcontext32 ) ));
2839    assert_eq! (unsafe {
2840                & ( * ( 0 as * const __darwin_mcontext32 ) ) . __es as * const
2841                _ as usize } , 0usize , concat ! (
2842                "Alignment of field: " , stringify ! ( __darwin_mcontext32 ) ,
2843                "::" , stringify ! ( __es ) ));
2844    assert_eq! (unsafe {
2845                & ( * ( 0 as * const __darwin_mcontext32 ) ) . __ss as * const
2846                _ as usize } , 12usize , concat ! (
2847                "Alignment of field: " , stringify ! ( __darwin_mcontext32 ) ,
2848                "::" , stringify ! ( __ss ) ));
2849    assert_eq! (unsafe {
2850                & ( * ( 0 as * const __darwin_mcontext32 ) ) . __fs as * const
2851                _ as usize } , 76usize , concat ! (
2852                "Alignment of field: " , stringify ! ( __darwin_mcontext32 ) ,
2853                "::" , stringify ! ( __fs ) ));
2854}
2855#[repr(C)]
2856pub struct __darwin_mcontext_avx32 {
2857    pub __es: __darwin_i386_exception_state,
2858    pub __ss: __darwin_i386_thread_state,
2859    pub __fs: __darwin_i386_avx_state,
2860}
2861#[test]
2862fn bindgen_test_layout___darwin_mcontext_avx32() {
2863    assert_eq!(::std::mem::size_of::<__darwin_mcontext_avx32>() , 792usize ,
2864               concat ! (
2865               "Size of: " , stringify ! ( __darwin_mcontext_avx32 ) ));
2866    assert_eq! (::std::mem::align_of::<__darwin_mcontext_avx32>() , 4usize ,
2867                concat ! (
2868                "Alignment of " , stringify ! ( __darwin_mcontext_avx32 ) ));
2869    assert_eq! (unsafe {
2870                & ( * ( 0 as * const __darwin_mcontext_avx32 ) ) . __es as *
2871                const _ as usize } , 0usize , concat ! (
2872                "Alignment of field: " , stringify ! ( __darwin_mcontext_avx32
2873                ) , "::" , stringify ! ( __es ) ));
2874    assert_eq! (unsafe {
2875                & ( * ( 0 as * const __darwin_mcontext_avx32 ) ) . __ss as *
2876                const _ as usize } , 12usize , concat ! (
2877                "Alignment of field: " , stringify ! ( __darwin_mcontext_avx32
2878                ) , "::" , stringify ! ( __ss ) ));
2879    assert_eq! (unsafe {
2880                & ( * ( 0 as * const __darwin_mcontext_avx32 ) ) . __fs as *
2881                const _ as usize } , 76usize , concat ! (
2882                "Alignment of field: " , stringify ! ( __darwin_mcontext_avx32
2883                ) , "::" , stringify ! ( __fs ) ));
2884}
2885#[repr(C)]
2886pub struct __darwin_mcontext64 {
2887    pub __es: __darwin_x86_exception_state64,
2888    pub __ss: __darwin_x86_thread_state64,
2889    pub __fs: __darwin_x86_float_state64,
2890}
2891#[test]
2892fn bindgen_test_layout___darwin_mcontext64() {
2893    assert_eq!(::std::mem::size_of::<__darwin_mcontext64>() , 712usize ,
2894               concat ! ( "Size of: " , stringify ! ( __darwin_mcontext64 )
2895               ));
2896    assert_eq! (::std::mem::align_of::<__darwin_mcontext64>() , 8usize ,
2897                concat ! (
2898                "Alignment of " , stringify ! ( __darwin_mcontext64 ) ));
2899    assert_eq! (unsafe {
2900                & ( * ( 0 as * const __darwin_mcontext64 ) ) . __es as * const
2901                _ as usize } , 0usize , concat ! (
2902                "Alignment of field: " , stringify ! ( __darwin_mcontext64 ) ,
2903                "::" , stringify ! ( __es ) ));
2904    assert_eq! (unsafe {
2905                & ( * ( 0 as * const __darwin_mcontext64 ) ) . __ss as * const
2906                _ as usize } , 16usize , concat ! (
2907                "Alignment of field: " , stringify ! ( __darwin_mcontext64 ) ,
2908                "::" , stringify ! ( __ss ) ));
2909    assert_eq! (unsafe {
2910                & ( * ( 0 as * const __darwin_mcontext64 ) ) . __fs as * const
2911                _ as usize } , 184usize , concat ! (
2912                "Alignment of field: " , stringify ! ( __darwin_mcontext64 ) ,
2913                "::" , stringify ! ( __fs ) ));
2914}
2915#[repr(C)]
2916pub struct __darwin_mcontext_avx64 {
2917    pub __es: __darwin_x86_exception_state64,
2918    pub __ss: __darwin_x86_thread_state64,
2919    pub __fs: __darwin_x86_avx_state64,
2920}
2921#[test]
2922fn bindgen_test_layout___darwin_mcontext_avx64() {
2923    assert_eq!(::std::mem::size_of::<__darwin_mcontext_avx64>() , 1032usize ,
2924               concat ! (
2925               "Size of: " , stringify ! ( __darwin_mcontext_avx64 ) ));
2926    assert_eq! (::std::mem::align_of::<__darwin_mcontext_avx64>() , 8usize ,
2927                concat ! (
2928                "Alignment of " , stringify ! ( __darwin_mcontext_avx64 ) ));
2929    assert_eq! (unsafe {
2930                & ( * ( 0 as * const __darwin_mcontext_avx64 ) ) . __es as *
2931                const _ as usize } , 0usize , concat ! (
2932                "Alignment of field: " , stringify ! ( __darwin_mcontext_avx64
2933                ) , "::" , stringify ! ( __es ) ));
2934    assert_eq! (unsafe {
2935                & ( * ( 0 as * const __darwin_mcontext_avx64 ) ) . __ss as *
2936                const _ as usize } , 16usize , concat ! (
2937                "Alignment of field: " , stringify ! ( __darwin_mcontext_avx64
2938                ) , "::" , stringify ! ( __ss ) ));
2939    assert_eq! (unsafe {
2940                & ( * ( 0 as * const __darwin_mcontext_avx64 ) ) . __fs as *
2941                const _ as usize } , 184usize , concat ! (
2942                "Alignment of field: " , stringify ! ( __darwin_mcontext_avx64
2943                ) , "::" , stringify ! ( __fs ) ));
2944}
2945pub type mcontext_t = *mut __darwin_mcontext64;
2946pub type pthread_attr_t = __darwin_pthread_attr_t;
2947#[repr(C)]
2948#[derive(Debug, Copy)]
2949pub struct __darwin_sigaltstack {
2950    pub ss_sp: *mut ::std::os::raw::c_void,
2951    pub ss_size: __darwin_size_t,
2952    pub ss_flags: ::std::os::raw::c_int,
2953}
2954#[test]
2955fn bindgen_test_layout___darwin_sigaltstack() {
2956    assert_eq!(::std::mem::size_of::<__darwin_sigaltstack>() , 24usize ,
2957               concat ! ( "Size of: " , stringify ! ( __darwin_sigaltstack )
2958               ));
2959    assert_eq! (::std::mem::align_of::<__darwin_sigaltstack>() , 8usize ,
2960                concat ! (
2961                "Alignment of " , stringify ! ( __darwin_sigaltstack ) ));
2962    assert_eq! (unsafe {
2963                & ( * ( 0 as * const __darwin_sigaltstack ) ) . ss_sp as *
2964                const _ as usize } , 0usize , concat ! (
2965                "Alignment of field: " , stringify ! ( __darwin_sigaltstack )
2966                , "::" , stringify ! ( ss_sp ) ));
2967    assert_eq! (unsafe {
2968                & ( * ( 0 as * const __darwin_sigaltstack ) ) . ss_size as *
2969                const _ as usize } , 8usize , concat ! (
2970                "Alignment of field: " , stringify ! ( __darwin_sigaltstack )
2971                , "::" , stringify ! ( ss_size ) ));
2972    assert_eq! (unsafe {
2973                & ( * ( 0 as * const __darwin_sigaltstack ) ) . ss_flags as *
2974                const _ as usize } , 16usize , concat ! (
2975                "Alignment of field: " , stringify ! ( __darwin_sigaltstack )
2976                , "::" , stringify ! ( ss_flags ) ));
2977}
2978impl Clone for __darwin_sigaltstack {
2979    fn clone(&self) -> Self { *self }
2980}
2981pub type stack_t = __darwin_sigaltstack;
2982#[repr(C)]
2983#[derive(Debug, Copy)]
2984pub struct __darwin_ucontext {
2985    pub uc_onstack: ::std::os::raw::c_int,
2986    pub uc_sigmask: __darwin_sigset_t,
2987    pub uc_stack: __darwin_sigaltstack,
2988    pub uc_link: *mut __darwin_ucontext,
2989    pub uc_mcsize: __darwin_size_t,
2990    pub uc_mcontext: *mut __darwin_mcontext64,
2991}
2992#[test]
2993fn bindgen_test_layout___darwin_ucontext() {
2994    assert_eq!(::std::mem::size_of::<__darwin_ucontext>() , 56usize , concat !
2995               ( "Size of: " , stringify ! ( __darwin_ucontext ) ));
2996    assert_eq! (::std::mem::align_of::<__darwin_ucontext>() , 8usize , concat
2997                ! ( "Alignment of " , stringify ! ( __darwin_ucontext ) ));
2998    assert_eq! (unsafe {
2999                & ( * ( 0 as * const __darwin_ucontext ) ) . uc_onstack as *
3000                const _ as usize } , 0usize , concat ! (
3001                "Alignment of field: " , stringify ! ( __darwin_ucontext ) ,
3002                "::" , stringify ! ( uc_onstack ) ));
3003    assert_eq! (unsafe {
3004                & ( * ( 0 as * const __darwin_ucontext ) ) . uc_sigmask as *
3005                const _ as usize } , 4usize , concat ! (
3006                "Alignment of field: " , stringify ! ( __darwin_ucontext ) ,
3007                "::" , stringify ! ( uc_sigmask ) ));
3008    assert_eq! (unsafe {
3009                & ( * ( 0 as * const __darwin_ucontext ) ) . uc_stack as *
3010                const _ as usize } , 8usize , concat ! (
3011                "Alignment of field: " , stringify ! ( __darwin_ucontext ) ,
3012                "::" , stringify ! ( uc_stack ) ));
3013    assert_eq! (unsafe {
3014                & ( * ( 0 as * const __darwin_ucontext ) ) . uc_link as *
3015                const _ as usize } , 32usize , concat ! (
3016                "Alignment of field: " , stringify ! ( __darwin_ucontext ) ,
3017                "::" , stringify ! ( uc_link ) ));
3018    assert_eq! (unsafe {
3019                & ( * ( 0 as * const __darwin_ucontext ) ) . uc_mcsize as *
3020                const _ as usize } , 40usize , concat ! (
3021                "Alignment of field: " , stringify ! ( __darwin_ucontext ) ,
3022                "::" , stringify ! ( uc_mcsize ) ));
3023    assert_eq! (unsafe {
3024                & ( * ( 0 as * const __darwin_ucontext ) ) . uc_mcontext as *
3025                const _ as usize } , 48usize , concat ! (
3026                "Alignment of field: " , stringify ! ( __darwin_ucontext ) ,
3027                "::" , stringify ! ( uc_mcontext ) ));
3028}
3029impl Clone for __darwin_ucontext {
3030    fn clone(&self) -> Self { *self }
3031}
3032pub type ucontext_t = __darwin_ucontext;
3033pub type sigset_t = __darwin_sigset_t;
3034pub type uid_t = __darwin_uid_t;
3035#[repr(C)]
3036#[derive(Debug, Copy)]
3037pub struct sigval {
3038    pub sival_int: __BindgenUnionField<::std::os::raw::c_int>,
3039    pub sival_ptr: __BindgenUnionField<*mut ::std::os::raw::c_void>,
3040    pub bindgen_union_field: u64,
3041}
3042#[test]
3043fn bindgen_test_layout_sigval() {
3044    assert_eq!(::std::mem::size_of::<sigval>() , 8usize , concat ! (
3045               "Size of: " , stringify ! ( sigval ) ));
3046    assert_eq! (::std::mem::align_of::<sigval>() , 8usize , concat ! (
3047                "Alignment of " , stringify ! ( sigval ) ));
3048    assert_eq! (unsafe {
3049                & ( * ( 0 as * const sigval ) ) . sival_int as * const _ as
3050                usize } , 0usize , concat ! (
3051                "Alignment of field: " , stringify ! ( sigval ) , "::" ,
3052                stringify ! ( sival_int ) ));
3053    assert_eq! (unsafe {
3054                & ( * ( 0 as * const sigval ) ) . sival_ptr as * const _ as
3055                usize } , 0usize , concat ! (
3056                "Alignment of field: " , stringify ! ( sigval ) , "::" ,
3057                stringify ! ( sival_ptr ) ));
3058}
3059impl Clone for sigval {
3060    fn clone(&self) -> Self { *self }
3061}
3062#[repr(C)]
3063#[derive(Debug, Copy)]
3064pub struct sigevent {
3065    pub sigev_notify: ::std::os::raw::c_int,
3066    pub sigev_signo: ::std::os::raw::c_int,
3067    pub sigev_value: sigval,
3068    pub sigev_notify_function: ::std::option::Option<unsafe extern "C" fn(arg1:
3069                                                                              sigval)>,
3070    pub sigev_notify_attributes: *mut pthread_attr_t,
3071}
3072#[test]
3073fn bindgen_test_layout_sigevent() {
3074    assert_eq!(::std::mem::size_of::<sigevent>() , 32usize , concat ! (
3075               "Size of: " , stringify ! ( sigevent ) ));
3076    assert_eq! (::std::mem::align_of::<sigevent>() , 8usize , concat ! (
3077                "Alignment of " , stringify ! ( sigevent ) ));
3078    assert_eq! (unsafe {
3079                & ( * ( 0 as * const sigevent ) ) . sigev_notify as * const _
3080                as usize } , 0usize , concat ! (
3081                "Alignment of field: " , stringify ! ( sigevent ) , "::" ,
3082                stringify ! ( sigev_notify ) ));
3083    assert_eq! (unsafe {
3084                & ( * ( 0 as * const sigevent ) ) . sigev_signo as * const _
3085                as usize } , 4usize , concat ! (
3086                "Alignment of field: " , stringify ! ( sigevent ) , "::" ,
3087                stringify ! ( sigev_signo ) ));
3088    assert_eq! (unsafe {
3089                & ( * ( 0 as * const sigevent ) ) . sigev_value as * const _
3090                as usize } , 8usize , concat ! (
3091                "Alignment of field: " , stringify ! ( sigevent ) , "::" ,
3092                stringify ! ( sigev_value ) ));
3093    assert_eq! (unsafe {
3094                & ( * ( 0 as * const sigevent ) ) . sigev_notify_function as *
3095                const _ as usize } , 16usize , concat ! (
3096                "Alignment of field: " , stringify ! ( sigevent ) , "::" ,
3097                stringify ! ( sigev_notify_function ) ));
3098    assert_eq! (unsafe {
3099                & ( * ( 0 as * const sigevent ) ) . sigev_notify_attributes as
3100                * const _ as usize } , 24usize , concat ! (
3101                "Alignment of field: " , stringify ! ( sigevent ) , "::" ,
3102                stringify ! ( sigev_notify_attributes ) ));
3103}
3104impl Clone for sigevent {
3105    fn clone(&self) -> Self { *self }
3106}
3107#[repr(C)]
3108#[derive(Debug, Copy)]
3109pub struct __siginfo {
3110    pub si_signo: ::std::os::raw::c_int,
3111    pub si_errno: ::std::os::raw::c_int,
3112    pub si_code: ::std::os::raw::c_int,
3113    pub si_pid: pid_t,
3114    pub si_uid: uid_t,
3115    pub si_status: ::std::os::raw::c_int,
3116    pub si_addr: *mut ::std::os::raw::c_void,
3117    pub si_value: sigval,
3118    pub si_band: ::std::os::raw::c_long,
3119    pub __pad: [::std::os::raw::c_ulong; 7usize],
3120}
3121#[test]
3122fn bindgen_test_layout___siginfo() {
3123    assert_eq!(::std::mem::size_of::<__siginfo>() , 104usize , concat ! (
3124               "Size of: " , stringify ! ( __siginfo ) ));
3125    assert_eq! (::std::mem::align_of::<__siginfo>() , 8usize , concat ! (
3126                "Alignment of " , stringify ! ( __siginfo ) ));
3127    assert_eq! (unsafe {
3128                & ( * ( 0 as * const __siginfo ) ) . si_signo as * const _ as
3129                usize } , 0usize , concat ! (
3130                "Alignment of field: " , stringify ! ( __siginfo ) , "::" ,
3131                stringify ! ( si_signo ) ));
3132    assert_eq! (unsafe {
3133                & ( * ( 0 as * const __siginfo ) ) . si_errno as * const _ as
3134                usize } , 4usize , concat ! (
3135                "Alignment of field: " , stringify ! ( __siginfo ) , "::" ,
3136                stringify ! ( si_errno ) ));
3137    assert_eq! (unsafe {
3138                & ( * ( 0 as * const __siginfo ) ) . si_code as * const _ as
3139                usize } , 8usize , concat ! (
3140                "Alignment of field: " , stringify ! ( __siginfo ) , "::" ,
3141                stringify ! ( si_code ) ));
3142    assert_eq! (unsafe {
3143                & ( * ( 0 as * const __siginfo ) ) . si_pid as * const _ as
3144                usize } , 12usize , concat ! (
3145                "Alignment of field: " , stringify ! ( __siginfo ) , "::" ,
3146                stringify ! ( si_pid ) ));
3147    assert_eq! (unsafe {
3148                & ( * ( 0 as * const __siginfo ) ) . si_uid as * const _ as
3149                usize } , 16usize , concat ! (
3150                "Alignment of field: " , stringify ! ( __siginfo ) , "::" ,
3151                stringify ! ( si_uid ) ));
3152    assert_eq! (unsafe {
3153                & ( * ( 0 as * const __siginfo ) ) . si_status as * const _ as
3154                usize } , 20usize , concat ! (
3155                "Alignment of field: " , stringify ! ( __siginfo ) , "::" ,
3156                stringify ! ( si_status ) ));
3157    assert_eq! (unsafe {
3158                & ( * ( 0 as * const __siginfo ) ) . si_addr as * const _ as
3159                usize } , 24usize , concat ! (
3160                "Alignment of field: " , stringify ! ( __siginfo ) , "::" ,
3161                stringify ! ( si_addr ) ));
3162    assert_eq! (unsafe {
3163                & ( * ( 0 as * const __siginfo ) ) . si_value as * const _ as
3164                usize } , 32usize , concat ! (
3165                "Alignment of field: " , stringify ! ( __siginfo ) , "::" ,
3166                stringify ! ( si_value ) ));
3167    assert_eq! (unsafe {
3168                & ( * ( 0 as * const __siginfo ) ) . si_band as * const _ as
3169                usize } , 40usize , concat ! (
3170                "Alignment of field: " , stringify ! ( __siginfo ) , "::" ,
3171                stringify ! ( si_band ) ));
3172    assert_eq! (unsafe {
3173                & ( * ( 0 as * const __siginfo ) ) . __pad as * const _ as
3174                usize } , 48usize , concat ! (
3175                "Alignment of field: " , stringify ! ( __siginfo ) , "::" ,
3176                stringify ! ( __pad ) ));
3177}
3178impl Clone for __siginfo {
3179    fn clone(&self) -> Self { *self }
3180}
3181pub type siginfo_t = __siginfo;
3182#[repr(C)]
3183#[derive(Debug, Copy)]
3184pub struct __sigaction_u {
3185    pub __sa_handler: __BindgenUnionField<::std::option::Option<unsafe extern "C" fn(arg1:
3186                                                                                         ::std::os::raw::c_int)>>,
3187    pub __sa_sigaction: __BindgenUnionField<::std::option::Option<unsafe extern "C" fn(arg1:
3188                                                                                           ::std::os::raw::c_int,
3189                                                                                       arg2:
3190                                                                                           *mut __siginfo,
3191                                                                                       arg3:
3192                                                                                           *mut ::std::os::raw::c_void)>>,
3193    pub bindgen_union_field: u64,
3194}
3195#[test]
3196fn bindgen_test_layout___sigaction_u() {
3197    assert_eq!(::std::mem::size_of::<__sigaction_u>() , 8usize , concat ! (
3198               "Size of: " , stringify ! ( __sigaction_u ) ));
3199    assert_eq! (::std::mem::align_of::<__sigaction_u>() , 8usize , concat ! (
3200                "Alignment of " , stringify ! ( __sigaction_u ) ));
3201    assert_eq! (unsafe {
3202                & ( * ( 0 as * const __sigaction_u ) ) . __sa_handler as *
3203                const _ as usize } , 0usize , concat ! (
3204                "Alignment of field: " , stringify ! ( __sigaction_u ) , "::"
3205                , stringify ! ( __sa_handler ) ));
3206    assert_eq! (unsafe {
3207                & ( * ( 0 as * const __sigaction_u ) ) . __sa_sigaction as *
3208                const _ as usize } , 0usize , concat ! (
3209                "Alignment of field: " , stringify ! ( __sigaction_u ) , "::"
3210                , stringify ! ( __sa_sigaction ) ));
3211}
3212impl Clone for __sigaction_u {
3213    fn clone(&self) -> Self { *self }
3214}
3215#[repr(C)]
3216#[derive(Debug, Copy)]
3217pub struct __sigaction {
3218    pub __sigaction_u: __sigaction_u,
3219    pub sa_tramp: ::std::option::Option<unsafe extern "C" fn(arg1:
3220                                                                 *mut ::std::os::raw::c_void,
3221                                                             arg2:
3222                                                                 ::std::os::raw::c_int,
3223                                                             arg3:
3224                                                                 ::std::os::raw::c_int,
3225                                                             arg4:
3226                                                                 *mut siginfo_t,
3227                                                             arg5:
3228                                                                 *mut ::std::os::raw::c_void)>,
3229    pub sa_mask: sigset_t,
3230    pub sa_flags: ::std::os::raw::c_int,
3231}
3232#[test]
3233fn bindgen_test_layout___sigaction() {
3234    assert_eq!(::std::mem::size_of::<__sigaction>() , 24usize , concat ! (
3235               "Size of: " , stringify ! ( __sigaction ) ));
3236    assert_eq! (::std::mem::align_of::<__sigaction>() , 8usize , concat ! (
3237                "Alignment of " , stringify ! ( __sigaction ) ));
3238    assert_eq! (unsafe {
3239                & ( * ( 0 as * const __sigaction ) ) . __sigaction_u as *
3240                const _ as usize } , 0usize , concat ! (
3241                "Alignment of field: " , stringify ! ( __sigaction ) , "::" ,
3242                stringify ! ( __sigaction_u ) ));
3243    assert_eq! (unsafe {
3244                & ( * ( 0 as * const __sigaction ) ) . sa_tramp as * const _
3245                as usize } , 8usize , concat ! (
3246                "Alignment of field: " , stringify ! ( __sigaction ) , "::" ,
3247                stringify ! ( sa_tramp ) ));
3248    assert_eq! (unsafe {
3249                & ( * ( 0 as * const __sigaction ) ) . sa_mask as * const _ as
3250                usize } , 16usize , concat ! (
3251                "Alignment of field: " , stringify ! ( __sigaction ) , "::" ,
3252                stringify ! ( sa_mask ) ));
3253    assert_eq! (unsafe {
3254                & ( * ( 0 as * const __sigaction ) ) . sa_flags as * const _
3255                as usize } , 20usize , concat ! (
3256                "Alignment of field: " , stringify ! ( __sigaction ) , "::" ,
3257                stringify ! ( sa_flags ) ));
3258}
3259impl Clone for __sigaction {
3260    fn clone(&self) -> Self { *self }
3261}
3262#[repr(C)]
3263#[derive(Debug, Copy)]
3264pub struct sigaction {
3265    pub __sigaction_u: __sigaction_u,
3266    pub sa_mask: sigset_t,
3267    pub sa_flags: ::std::os::raw::c_int,
3268}
3269#[test]
3270fn bindgen_test_layout_sigaction() {
3271    assert_eq!(::std::mem::size_of::<sigaction>() , 16usize , concat ! (
3272               "Size of: " , stringify ! ( sigaction ) ));
3273    assert_eq! (::std::mem::align_of::<sigaction>() , 8usize , concat ! (
3274                "Alignment of " , stringify ! ( sigaction ) ));
3275    assert_eq! (unsafe {
3276                & ( * ( 0 as * const sigaction ) ) . __sigaction_u as * const
3277                _ as usize } , 0usize , concat ! (
3278                "Alignment of field: " , stringify ! ( sigaction ) , "::" ,
3279                stringify ! ( __sigaction_u ) ));
3280    assert_eq! (unsafe {
3281                & ( * ( 0 as * const sigaction ) ) . sa_mask as * const _ as
3282                usize } , 8usize , concat ! (
3283                "Alignment of field: " , stringify ! ( sigaction ) , "::" ,
3284                stringify ! ( sa_mask ) ));
3285    assert_eq! (unsafe {
3286                & ( * ( 0 as * const sigaction ) ) . sa_flags as * const _ as
3287                usize } , 12usize , concat ! (
3288                "Alignment of field: " , stringify ! ( sigaction ) , "::" ,
3289                stringify ! ( sa_flags ) ));
3290}
3291impl Clone for sigaction {
3292    fn clone(&self) -> Self { *self }
3293}
3294pub type sig_t =
3295    ::std::option::Option<unsafe extern "C" fn(arg1: ::std::os::raw::c_int)>;
3296#[repr(C)]
3297#[derive(Debug, Copy)]
3298pub struct sigvec {
3299    pub sv_handler: ::std::option::Option<unsafe extern "C" fn(arg1:
3300                                                                   ::std::os::raw::c_int)>,
3301    pub sv_mask: ::std::os::raw::c_int,
3302    pub sv_flags: ::std::os::raw::c_int,
3303}
3304#[test]
3305fn bindgen_test_layout_sigvec() {
3306    assert_eq!(::std::mem::size_of::<sigvec>() , 16usize , concat ! (
3307               "Size of: " , stringify ! ( sigvec ) ));
3308    assert_eq! (::std::mem::align_of::<sigvec>() , 8usize , concat ! (
3309                "Alignment of " , stringify ! ( sigvec ) ));
3310    assert_eq! (unsafe {
3311                & ( * ( 0 as * const sigvec ) ) . sv_handler as * const _ as
3312                usize } , 0usize , concat ! (
3313                "Alignment of field: " , stringify ! ( sigvec ) , "::" ,
3314                stringify ! ( sv_handler ) ));
3315    assert_eq! (unsafe {
3316                & ( * ( 0 as * const sigvec ) ) . sv_mask as * const _ as
3317                usize } , 8usize , concat ! (
3318                "Alignment of field: " , stringify ! ( sigvec ) , "::" ,
3319                stringify ! ( sv_mask ) ));
3320    assert_eq! (unsafe {
3321                & ( * ( 0 as * const sigvec ) ) . sv_flags as * const _ as
3322                usize } , 12usize , concat ! (
3323                "Alignment of field: " , stringify ! ( sigvec ) , "::" ,
3324                stringify ! ( sv_flags ) ));
3325}
3326impl Clone for sigvec {
3327    fn clone(&self) -> Self { *self }
3328}
3329#[repr(C)]
3330#[derive(Debug, Copy)]
3331pub struct sigstack {
3332    pub ss_sp: *mut ::std::os::raw::c_char,
3333    pub ss_onstack: ::std::os::raw::c_int,
3334}
3335#[test]
3336fn bindgen_test_layout_sigstack() {
3337    assert_eq!(::std::mem::size_of::<sigstack>() , 16usize , concat ! (
3338               "Size of: " , stringify ! ( sigstack ) ));
3339    assert_eq! (::std::mem::align_of::<sigstack>() , 8usize , concat ! (
3340                "Alignment of " , stringify ! ( sigstack ) ));
3341    assert_eq! (unsafe {
3342                & ( * ( 0 as * const sigstack ) ) . ss_sp as * const _ as
3343                usize } , 0usize , concat ! (
3344                "Alignment of field: " , stringify ! ( sigstack ) , "::" ,
3345                stringify ! ( ss_sp ) ));
3346    assert_eq! (unsafe {
3347                & ( * ( 0 as * const sigstack ) ) . ss_onstack as * const _ as
3348                usize } , 8usize , concat ! (
3349                "Alignment of field: " , stringify ! ( sigstack ) , "::" ,
3350                stringify ! ( ss_onstack ) ));
3351}
3352impl Clone for sigstack {
3353    fn clone(&self) -> Self { *self }
3354}
3355extern "C" {
3356    pub fn signal(arg1: ::std::os::raw::c_int,
3357                  arg2:
3358                      ::std::option::Option<unsafe extern "C" fn(arg1:
3359                                                                     ::std::os::raw::c_int)>)
3360     -> ::std::option::Option<unsafe extern "C" fn()>;
3361}
3362pub type int_least8_t = i8;
3363pub type int_least16_t = i16;
3364pub type int_least32_t = i32;
3365pub type int_least64_t = i64;
3366pub type uint_least8_t = u8;
3367pub type uint_least16_t = u16;
3368pub type uint_least32_t = u32;
3369pub type uint_least64_t = u64;
3370pub type int_fast8_t = i8;
3371pub type int_fast16_t = i16;
3372pub type int_fast32_t = i32;
3373pub type int_fast64_t = i64;
3374pub type uint_fast8_t = u8;
3375pub type uint_fast16_t = u16;
3376pub type uint_fast32_t = u32;
3377pub type uint_fast64_t = u64;
3378pub type intmax_t = ::std::os::raw::c_long;
3379pub type uintmax_t = ::std::os::raw::c_ulong;
3380#[repr(C)]
3381#[derive(Debug, Copy)]
3382pub struct timeval {
3383    pub tv_sec: __darwin_time_t,
3384    pub tv_usec: __darwin_suseconds_t,
3385}
3386#[test]
3387fn bindgen_test_layout_timeval() {
3388    assert_eq!(::std::mem::size_of::<timeval>() , 16usize , concat ! (
3389               "Size of: " , stringify ! ( timeval ) ));
3390    assert_eq! (::std::mem::align_of::<timeval>() , 8usize , concat ! (
3391                "Alignment of " , stringify ! ( timeval ) ));
3392    assert_eq! (unsafe {
3393                & ( * ( 0 as * const timeval ) ) . tv_sec as * const _ as
3394                usize } , 0usize , concat ! (
3395                "Alignment of field: " , stringify ! ( timeval ) , "::" ,
3396                stringify ! ( tv_sec ) ));
3397    assert_eq! (unsafe {
3398                & ( * ( 0 as * const timeval ) ) . tv_usec as * const _ as
3399                usize } , 8usize , concat ! (
3400                "Alignment of field: " , stringify ! ( timeval ) , "::" ,
3401                stringify ! ( tv_usec ) ));
3402}
3403impl Clone for timeval {
3404    fn clone(&self) -> Self { *self }
3405}
3406pub type rlim_t = __uint64_t;
3407#[repr(C)]
3408#[derive(Debug, Copy)]
3409pub struct rusage {
3410    pub ru_utime: timeval,
3411    pub ru_stime: timeval,
3412    pub ru_maxrss: ::std::os::raw::c_long,
3413    pub ru_ixrss: ::std::os::raw::c_long,
3414    pub ru_idrss: ::std::os::raw::c_long,
3415    pub ru_isrss: ::std::os::raw::c_long,
3416    pub ru_minflt: ::std::os::raw::c_long,
3417    pub ru_majflt: ::std::os::raw::c_long,
3418    pub ru_nswap: ::std::os::raw::c_long,
3419    pub ru_inblock: ::std::os::raw::c_long,
3420    pub ru_oublock: ::std::os::raw::c_long,
3421    pub ru_msgsnd: ::std::os::raw::c_long,
3422    pub ru_msgrcv: ::std::os::raw::c_long,
3423    pub ru_nsignals: ::std::os::raw::c_long,
3424    pub ru_nvcsw: ::std::os::raw::c_long,
3425    pub ru_nivcsw: ::std::os::raw::c_long,
3426}
3427#[test]
3428fn bindgen_test_layout_rusage() {
3429    assert_eq!(::std::mem::size_of::<rusage>() , 144usize , concat ! (
3430               "Size of: " , stringify ! ( rusage ) ));
3431    assert_eq! (::std::mem::align_of::<rusage>() , 8usize , concat ! (
3432                "Alignment of " , stringify ! ( rusage ) ));
3433    assert_eq! (unsafe {
3434                & ( * ( 0 as * const rusage ) ) . ru_utime as * const _ as
3435                usize } , 0usize , concat ! (
3436                "Alignment of field: " , stringify ! ( rusage ) , "::" ,
3437                stringify ! ( ru_utime ) ));
3438    assert_eq! (unsafe {
3439                & ( * ( 0 as * const rusage ) ) . ru_stime as * const _ as
3440                usize } , 16usize , concat ! (
3441                "Alignment of field: " , stringify ! ( rusage ) , "::" ,
3442                stringify ! ( ru_stime ) ));
3443    assert_eq! (unsafe {
3444                & ( * ( 0 as * const rusage ) ) . ru_maxrss as * const _ as
3445                usize } , 32usize , concat ! (
3446                "Alignment of field: " , stringify ! ( rusage ) , "::" ,
3447                stringify ! ( ru_maxrss ) ));
3448    assert_eq! (unsafe {
3449                & ( * ( 0 as * const rusage ) ) . ru_ixrss as * const _ as
3450                usize } , 40usize , concat ! (
3451                "Alignment of field: " , stringify ! ( rusage ) , "::" ,
3452                stringify ! ( ru_ixrss ) ));
3453    assert_eq! (unsafe {
3454                & ( * ( 0 as * const rusage ) ) . ru_idrss as * const _ as
3455                usize } , 48usize , concat ! (
3456                "Alignment of field: " , stringify ! ( rusage ) , "::" ,
3457                stringify ! ( ru_idrss ) ));
3458    assert_eq! (unsafe {
3459                & ( * ( 0 as * const rusage ) ) . ru_isrss as * const _ as
3460                usize } , 56usize , concat ! (
3461                "Alignment of field: " , stringify ! ( rusage ) , "::" ,
3462                stringify ! ( ru_isrss ) ));
3463    assert_eq! (unsafe {
3464                & ( * ( 0 as * const rusage ) ) . ru_minflt as * const _ as
3465                usize } , 64usize , concat ! (
3466                "Alignment of field: " , stringify ! ( rusage ) , "::" ,
3467                stringify ! ( ru_minflt ) ));
3468    assert_eq! (unsafe {
3469                & ( * ( 0 as * const rusage ) ) . ru_majflt as * const _ as
3470                usize } , 72usize , concat ! (
3471                "Alignment of field: " , stringify ! ( rusage ) , "::" ,
3472                stringify ! ( ru_majflt ) ));
3473    assert_eq! (unsafe {
3474                & ( * ( 0 as * const rusage ) ) . ru_nswap as * const _ as
3475                usize } , 80usize , concat ! (
3476                "Alignment of field: " , stringify ! ( rusage ) , "::" ,
3477                stringify ! ( ru_nswap ) ));
3478    assert_eq! (unsafe {
3479                & ( * ( 0 as * const rusage ) ) . ru_inblock as * const _ as
3480                usize } , 88usize , concat ! (
3481                "Alignment of field: " , stringify ! ( rusage ) , "::" ,
3482                stringify ! ( ru_inblock ) ));
3483    assert_eq! (unsafe {
3484                & ( * ( 0 as * const rusage ) ) . ru_oublock as * const _ as
3485                usize } , 96usize , concat ! (
3486                "Alignment of field: " , stringify ! ( rusage ) , "::" ,
3487                stringify ! ( ru_oublock ) ));
3488    assert_eq! (unsafe {
3489                & ( * ( 0 as * const rusage ) ) . ru_msgsnd as * const _ as
3490                usize } , 104usize , concat ! (
3491                "Alignment of field: " , stringify ! ( rusage ) , "::" ,
3492                stringify ! ( ru_msgsnd ) ));
3493    assert_eq! (unsafe {
3494                & ( * ( 0 as * const rusage ) ) . ru_msgrcv as * const _ as
3495                usize } , 112usize , concat ! (
3496                "Alignment of field: " , stringify ! ( rusage ) , "::" ,
3497                stringify ! ( ru_msgrcv ) ));
3498    assert_eq! (unsafe {
3499                & ( * ( 0 as * const rusage ) ) . ru_nsignals as * const _ as
3500                usize } , 120usize , concat ! (
3501                "Alignment of field: " , stringify ! ( rusage ) , "::" ,
3502                stringify ! ( ru_nsignals ) ));
3503    assert_eq! (unsafe {
3504                & ( * ( 0 as * const rusage ) ) . ru_nvcsw as * const _ as
3505                usize } , 128usize , concat ! (
3506                "Alignment of field: " , stringify ! ( rusage ) , "::" ,
3507                stringify ! ( ru_nvcsw ) ));
3508    assert_eq! (unsafe {
3509                & ( * ( 0 as * const rusage ) ) . ru_nivcsw as * const _ as
3510                usize } , 136usize , concat ! (
3511                "Alignment of field: " , stringify ! ( rusage ) , "::" ,
3512                stringify ! ( ru_nivcsw ) ));
3513}
3514impl Clone for rusage {
3515    fn clone(&self) -> Self { *self }
3516}
3517pub type rusage_info_t = *mut ::std::os::raw::c_void;
3518#[repr(C)]
3519#[derive(Debug, Copy)]
3520pub struct rusage_info_v0 {
3521    pub ri_uuid: [u8; 16usize],
3522    pub ri_user_time: u64,
3523    pub ri_system_time: u64,
3524    pub ri_pkg_idle_wkups: u64,
3525    pub ri_interrupt_wkups: u64,
3526    pub ri_pageins: u64,
3527    pub ri_wired_size: u64,
3528    pub ri_resident_size: u64,
3529    pub ri_phys_footprint: u64,
3530    pub ri_proc_start_abstime: u64,
3531    pub ri_proc_exit_abstime: u64,
3532}
3533#[test]
3534fn bindgen_test_layout_rusage_info_v0() {
3535    assert_eq!(::std::mem::size_of::<rusage_info_v0>() , 96usize , concat ! (
3536               "Size of: " , stringify ! ( rusage_info_v0 ) ));
3537    assert_eq! (::std::mem::align_of::<rusage_info_v0>() , 8usize , concat ! (
3538                "Alignment of " , stringify ! ( rusage_info_v0 ) ));
3539    assert_eq! (unsafe {
3540                & ( * ( 0 as * const rusage_info_v0 ) ) . ri_uuid as * const _
3541                as usize } , 0usize , concat ! (
3542                "Alignment of field: " , stringify ! ( rusage_info_v0 ) , "::"
3543                , stringify ! ( ri_uuid ) ));
3544    assert_eq! (unsafe {
3545                & ( * ( 0 as * const rusage_info_v0 ) ) . ri_user_time as *
3546                const _ as usize } , 16usize , concat ! (
3547                "Alignment of field: " , stringify ! ( rusage_info_v0 ) , "::"
3548                , stringify ! ( ri_user_time ) ));
3549    assert_eq! (unsafe {
3550                & ( * ( 0 as * const rusage_info_v0 ) ) . ri_system_time as *
3551                const _ as usize } , 24usize , concat ! (
3552                "Alignment of field: " , stringify ! ( rusage_info_v0 ) , "::"
3553                , stringify ! ( ri_system_time ) ));
3554    assert_eq! (unsafe {
3555                & ( * ( 0 as * const rusage_info_v0 ) ) . ri_pkg_idle_wkups as
3556                * const _ as usize } , 32usize , concat ! (
3557                "Alignment of field: " , stringify ! ( rusage_info_v0 ) , "::"
3558                , stringify ! ( ri_pkg_idle_wkups ) ));
3559    assert_eq! (unsafe {
3560                & ( * ( 0 as * const rusage_info_v0 ) ) . ri_interrupt_wkups
3561                as * const _ as usize } , 40usize , concat ! (
3562                "Alignment of field: " , stringify ! ( rusage_info_v0 ) , "::"
3563                , stringify ! ( ri_interrupt_wkups ) ));
3564    assert_eq! (unsafe {
3565                & ( * ( 0 as * const rusage_info_v0 ) ) . ri_pageins as *
3566                const _ as usize } , 48usize , concat ! (
3567                "Alignment of field: " , stringify ! ( rusage_info_v0 ) , "::"
3568                , stringify ! ( ri_pageins ) ));
3569    assert_eq! (unsafe {
3570                & ( * ( 0 as * const rusage_info_v0 ) ) . ri_wired_size as *
3571                const _ as usize } , 56usize , concat ! (
3572                "Alignment of field: " , stringify ! ( rusage_info_v0 ) , "::"
3573                , stringify ! ( ri_wired_size ) ));
3574    assert_eq! (unsafe {
3575                & ( * ( 0 as * const rusage_info_v0 ) ) . ri_resident_size as
3576                * const _ as usize } , 64usize , concat ! (
3577                "Alignment of field: " , stringify ! ( rusage_info_v0 ) , "::"
3578                , stringify ! ( ri_resident_size ) ));
3579    assert_eq! (unsafe {
3580                & ( * ( 0 as * const rusage_info_v0 ) ) . ri_phys_footprint as
3581                * const _ as usize } , 72usize , concat ! (
3582                "Alignment of field: " , stringify ! ( rusage_info_v0 ) , "::"
3583                , stringify ! ( ri_phys_footprint ) ));
3584    assert_eq! (unsafe {
3585                & ( * ( 0 as * const rusage_info_v0 ) ) .
3586                ri_proc_start_abstime as * const _ as usize } , 80usize ,
3587                concat ! (
3588                "Alignment of field: " , stringify ! ( rusage_info_v0 ) , "::"
3589                , stringify ! ( ri_proc_start_abstime ) ));
3590    assert_eq! (unsafe {
3591                & ( * ( 0 as * const rusage_info_v0 ) ) . ri_proc_exit_abstime
3592                as * const _ as usize } , 88usize , concat ! (
3593                "Alignment of field: " , stringify ! ( rusage_info_v0 ) , "::"
3594                , stringify ! ( ri_proc_exit_abstime ) ));
3595}
3596impl Clone for rusage_info_v0 {
3597    fn clone(&self) -> Self { *self }
3598}
3599#[repr(C)]
3600#[derive(Debug, Copy)]
3601pub struct rusage_info_v1 {
3602    pub ri_uuid: [u8; 16usize],
3603    pub ri_user_time: u64,
3604    pub ri_system_time: u64,
3605    pub ri_pkg_idle_wkups: u64,
3606    pub ri_interrupt_wkups: u64,
3607    pub ri_pageins: u64,
3608    pub ri_wired_size: u64,
3609    pub ri_resident_size: u64,
3610    pub ri_phys_footprint: u64,
3611    pub ri_proc_start_abstime: u64,
3612    pub ri_proc_exit_abstime: u64,
3613    pub ri_child_user_time: u64,
3614    pub ri_child_system_time: u64,
3615    pub ri_child_pkg_idle_wkups: u64,
3616    pub ri_child_interrupt_wkups: u64,
3617    pub ri_child_pageins: u64,
3618    pub ri_child_elapsed_abstime: u64,
3619}
3620#[test]
3621fn bindgen_test_layout_rusage_info_v1() {
3622    assert_eq!(::std::mem::size_of::<rusage_info_v1>() , 144usize , concat ! (
3623               "Size of: " , stringify ! ( rusage_info_v1 ) ));
3624    assert_eq! (::std::mem::align_of::<rusage_info_v1>() , 8usize , concat ! (
3625                "Alignment of " , stringify ! ( rusage_info_v1 ) ));
3626    assert_eq! (unsafe {
3627                & ( * ( 0 as * const rusage_info_v1 ) ) . ri_uuid as * const _
3628                as usize } , 0usize , concat ! (
3629                "Alignment of field: " , stringify ! ( rusage_info_v1 ) , "::"
3630                , stringify ! ( ri_uuid ) ));
3631    assert_eq! (unsafe {
3632                & ( * ( 0 as * const rusage_info_v1 ) ) . ri_user_time as *
3633                const _ as usize } , 16usize , concat ! (
3634                "Alignment of field: " , stringify ! ( rusage_info_v1 ) , "::"
3635                , stringify ! ( ri_user_time ) ));
3636    assert_eq! (unsafe {
3637                & ( * ( 0 as * const rusage_info_v1 ) ) . ri_system_time as *
3638                const _ as usize } , 24usize , concat ! (
3639                "Alignment of field: " , stringify ! ( rusage_info_v1 ) , "::"
3640                , stringify ! ( ri_system_time ) ));
3641    assert_eq! (unsafe {
3642                & ( * ( 0 as * const rusage_info_v1 ) ) . ri_pkg_idle_wkups as
3643                * const _ as usize } , 32usize , concat ! (
3644                "Alignment of field: " , stringify ! ( rusage_info_v1 ) , "::"
3645                , stringify ! ( ri_pkg_idle_wkups ) ));
3646    assert_eq! (unsafe {
3647                & ( * ( 0 as * const rusage_info_v1 ) ) . ri_interrupt_wkups
3648                as * const _ as usize } , 40usize , concat ! (
3649                "Alignment of field: " , stringify ! ( rusage_info_v1 ) , "::"
3650                , stringify ! ( ri_interrupt_wkups ) ));
3651    assert_eq! (unsafe {
3652                & ( * ( 0 as * const rusage_info_v1 ) ) . ri_pageins as *
3653                const _ as usize } , 48usize , concat ! (
3654                "Alignment of field: " , stringify ! ( rusage_info_v1 ) , "::"
3655                , stringify ! ( ri_pageins ) ));
3656    assert_eq! (unsafe {
3657                & ( * ( 0 as * const rusage_info_v1 ) ) . ri_wired_size as *
3658                const _ as usize } , 56usize , concat ! (
3659                "Alignment of field: " , stringify ! ( rusage_info_v1 ) , "::"
3660                , stringify ! ( ri_wired_size ) ));
3661    assert_eq! (unsafe {
3662                & ( * ( 0 as * const rusage_info_v1 ) ) . ri_resident_size as
3663                * const _ as usize } , 64usize , concat ! (
3664                "Alignment of field: " , stringify ! ( rusage_info_v1 ) , "::"
3665                , stringify ! ( ri_resident_size ) ));
3666    assert_eq! (unsafe {
3667                & ( * ( 0 as * const rusage_info_v1 ) ) . ri_phys_footprint as
3668                * const _ as usize } , 72usize , concat ! (
3669                "Alignment of field: " , stringify ! ( rusage_info_v1 ) , "::"
3670                , stringify ! ( ri_phys_footprint ) ));
3671    assert_eq! (unsafe {
3672                & ( * ( 0 as * const rusage_info_v1 ) ) .
3673                ri_proc_start_abstime as * const _ as usize } , 80usize ,
3674                concat ! (
3675                "Alignment of field: " , stringify ! ( rusage_info_v1 ) , "::"
3676                , stringify ! ( ri_proc_start_abstime ) ));
3677    assert_eq! (unsafe {
3678                & ( * ( 0 as * const rusage_info_v1 ) ) . ri_proc_exit_abstime
3679                as * const _ as usize } , 88usize , concat ! (
3680                "Alignment of field: " , stringify ! ( rusage_info_v1 ) , "::"
3681                , stringify ! ( ri_proc_exit_abstime ) ));
3682    assert_eq! (unsafe {
3683                & ( * ( 0 as * const rusage_info_v1 ) ) . ri_child_user_time
3684                as * const _ as usize } , 96usize , concat ! (
3685                "Alignment of field: " , stringify ! ( rusage_info_v1 ) , "::"
3686                , stringify ! ( ri_child_user_time ) ));
3687    assert_eq! (unsafe {
3688                & ( * ( 0 as * const rusage_info_v1 ) ) . ri_child_system_time
3689                as * const _ as usize } , 104usize , concat ! (
3690                "Alignment of field: " , stringify ! ( rusage_info_v1 ) , "::"
3691                , stringify ! ( ri_child_system_time ) ));
3692    assert_eq! (unsafe {
3693                & ( * ( 0 as * const rusage_info_v1 ) ) .
3694                ri_child_pkg_idle_wkups as * const _ as usize } , 112usize ,
3695                concat ! (
3696                "Alignment of field: " , stringify ! ( rusage_info_v1 ) , "::"
3697                , stringify ! ( ri_child_pkg_idle_wkups ) ));
3698    assert_eq! (unsafe {
3699                & ( * ( 0 as * const rusage_info_v1 ) ) .
3700                ri_child_interrupt_wkups as * const _ as usize } , 120usize ,
3701                concat ! (
3702                "Alignment of field: " , stringify ! ( rusage_info_v1 ) , "::"
3703                , stringify ! ( ri_child_interrupt_wkups ) ));
3704    assert_eq! (unsafe {
3705                & ( * ( 0 as * const rusage_info_v1 ) ) . ri_child_pageins as
3706                * const _ as usize } , 128usize , concat ! (
3707                "Alignment of field: " , stringify ! ( rusage_info_v1 ) , "::"
3708                , stringify ! ( ri_child_pageins ) ));
3709    assert_eq! (unsafe {
3710                & ( * ( 0 as * const rusage_info_v1 ) ) .
3711                ri_child_elapsed_abstime as * const _ as usize } , 136usize ,
3712                concat ! (
3713                "Alignment of field: " , stringify ! ( rusage_info_v1 ) , "::"
3714                , stringify ! ( ri_child_elapsed_abstime ) ));
3715}
3716impl Clone for rusage_info_v1 {
3717    fn clone(&self) -> Self { *self }
3718}
3719#[repr(C)]
3720#[derive(Debug, Copy)]
3721pub struct rusage_info_v2 {
3722    pub ri_uuid: [u8; 16usize],
3723    pub ri_user_time: u64,
3724    pub ri_system_time: u64,
3725    pub ri_pkg_idle_wkups: u64,
3726    pub ri_interrupt_wkups: u64,
3727    pub ri_pageins: u64,
3728    pub ri_wired_size: u64,
3729    pub ri_resident_size: u64,
3730    pub ri_phys_footprint: u64,
3731    pub ri_proc_start_abstime: u64,
3732    pub ri_proc_exit_abstime: u64,
3733    pub ri_child_user_time: u64,
3734    pub ri_child_system_time: u64,
3735    pub ri_child_pkg_idle_wkups: u64,
3736    pub ri_child_interrupt_wkups: u64,
3737    pub ri_child_pageins: u64,
3738    pub ri_child_elapsed_abstime: u64,
3739    pub ri_diskio_bytesread: u64,
3740    pub ri_diskio_byteswritten: u64,
3741}
3742#[test]
3743fn bindgen_test_layout_rusage_info_v2() {
3744    assert_eq!(::std::mem::size_of::<rusage_info_v2>() , 160usize , concat ! (
3745               "Size of: " , stringify ! ( rusage_info_v2 ) ));
3746    assert_eq! (::std::mem::align_of::<rusage_info_v2>() , 8usize , concat ! (
3747                "Alignment of " , stringify ! ( rusage_info_v2 ) ));
3748    assert_eq! (unsafe {
3749                & ( * ( 0 as * const rusage_info_v2 ) ) . ri_uuid as * const _
3750                as usize } , 0usize , concat ! (
3751                "Alignment of field: " , stringify ! ( rusage_info_v2 ) , "::"
3752                , stringify ! ( ri_uuid ) ));
3753    assert_eq! (unsafe {
3754                & ( * ( 0 as * const rusage_info_v2 ) ) . ri_user_time as *
3755                const _ as usize } , 16usize , concat ! (
3756                "Alignment of field: " , stringify ! ( rusage_info_v2 ) , "::"
3757                , stringify ! ( ri_user_time ) ));
3758    assert_eq! (unsafe {
3759                & ( * ( 0 as * const rusage_info_v2 ) ) . ri_system_time as *
3760                const _ as usize } , 24usize , concat ! (
3761                "Alignment of field: " , stringify ! ( rusage_info_v2 ) , "::"
3762                , stringify ! ( ri_system_time ) ));
3763    assert_eq! (unsafe {
3764                & ( * ( 0 as * const rusage_info_v2 ) ) . ri_pkg_idle_wkups as
3765                * const _ as usize } , 32usize , concat ! (
3766                "Alignment of field: " , stringify ! ( rusage_info_v2 ) , "::"
3767                , stringify ! ( ri_pkg_idle_wkups ) ));
3768    assert_eq! (unsafe {
3769                & ( * ( 0 as * const rusage_info_v2 ) ) . ri_interrupt_wkups
3770                as * const _ as usize } , 40usize , concat ! (
3771                "Alignment of field: " , stringify ! ( rusage_info_v2 ) , "::"
3772                , stringify ! ( ri_interrupt_wkups ) ));
3773    assert_eq! (unsafe {
3774                & ( * ( 0 as * const rusage_info_v2 ) ) . ri_pageins as *
3775                const _ as usize } , 48usize , concat ! (
3776                "Alignment of field: " , stringify ! ( rusage_info_v2 ) , "::"
3777                , stringify ! ( ri_pageins ) ));
3778    assert_eq! (unsafe {
3779                & ( * ( 0 as * const rusage_info_v2 ) ) . ri_wired_size as *
3780                const _ as usize } , 56usize , concat ! (
3781                "Alignment of field: " , stringify ! ( rusage_info_v2 ) , "::"
3782                , stringify ! ( ri_wired_size ) ));
3783    assert_eq! (unsafe {
3784                & ( * ( 0 as * const rusage_info_v2 ) ) . ri_resident_size as
3785                * const _ as usize } , 64usize , concat ! (
3786                "Alignment of field: " , stringify ! ( rusage_info_v2 ) , "::"
3787                , stringify ! ( ri_resident_size ) ));
3788    assert_eq! (unsafe {
3789                & ( * ( 0 as * const rusage_info_v2 ) ) . ri_phys_footprint as
3790                * const _ as usize } , 72usize , concat ! (
3791                "Alignment of field: " , stringify ! ( rusage_info_v2 ) , "::"
3792                , stringify ! ( ri_phys_footprint ) ));
3793    assert_eq! (unsafe {
3794                & ( * ( 0 as * const rusage_info_v2 ) ) .
3795                ri_proc_start_abstime as * const _ as usize } , 80usize ,
3796                concat ! (
3797                "Alignment of field: " , stringify ! ( rusage_info_v2 ) , "::"
3798                , stringify ! ( ri_proc_start_abstime ) ));
3799    assert_eq! (unsafe {
3800                & ( * ( 0 as * const rusage_info_v2 ) ) . ri_proc_exit_abstime
3801                as * const _ as usize } , 88usize , concat ! (
3802                "Alignment of field: " , stringify ! ( rusage_info_v2 ) , "::"
3803                , stringify ! ( ri_proc_exit_abstime ) ));
3804    assert_eq! (unsafe {
3805                & ( * ( 0 as * const rusage_info_v2 ) ) . ri_child_user_time
3806                as * const _ as usize } , 96usize , concat ! (
3807                "Alignment of field: " , stringify ! ( rusage_info_v2 ) , "::"
3808                , stringify ! ( ri_child_user_time ) ));
3809    assert_eq! (unsafe {
3810                & ( * ( 0 as * const rusage_info_v2 ) ) . ri_child_system_time
3811                as * const _ as usize } , 104usize , concat ! (
3812                "Alignment of field: " , stringify ! ( rusage_info_v2 ) , "::"
3813                , stringify ! ( ri_child_system_time ) ));
3814    assert_eq! (unsafe {
3815                & ( * ( 0 as * const rusage_info_v2 ) ) .
3816                ri_child_pkg_idle_wkups as * const _ as usize } , 112usize ,
3817                concat ! (
3818                "Alignment of field: " , stringify ! ( rusage_info_v2 ) , "::"
3819                , stringify ! ( ri_child_pkg_idle_wkups ) ));
3820    assert_eq! (unsafe {
3821                & ( * ( 0 as * const rusage_info_v2 ) ) .
3822                ri_child_interrupt_wkups as * const _ as usize } , 120usize ,
3823                concat ! (
3824                "Alignment of field: " , stringify ! ( rusage_info_v2 ) , "::"
3825                , stringify ! ( ri_child_interrupt_wkups ) ));
3826    assert_eq! (unsafe {
3827                & ( * ( 0 as * const rusage_info_v2 ) ) . ri_child_pageins as
3828                * const _ as usize } , 128usize , concat ! (
3829                "Alignment of field: " , stringify ! ( rusage_info_v2 ) , "::"
3830                , stringify ! ( ri_child_pageins ) ));
3831    assert_eq! (unsafe {
3832                & ( * ( 0 as * const rusage_info_v2 ) ) .
3833                ri_child_elapsed_abstime as * const _ as usize } , 136usize ,
3834                concat ! (
3835                "Alignment of field: " , stringify ! ( rusage_info_v2 ) , "::"
3836                , stringify ! ( ri_child_elapsed_abstime ) ));
3837    assert_eq! (unsafe {
3838                & ( * ( 0 as * const rusage_info_v2 ) ) . ri_diskio_bytesread
3839                as * const _ as usize } , 144usize , concat ! (
3840                "Alignment of field: " , stringify ! ( rusage_info_v2 ) , "::"
3841                , stringify ! ( ri_diskio_bytesread ) ));
3842    assert_eq! (unsafe {
3843                & ( * ( 0 as * const rusage_info_v2 ) ) .
3844                ri_diskio_byteswritten as * const _ as usize } , 152usize ,
3845                concat ! (
3846                "Alignment of field: " , stringify ! ( rusage_info_v2 ) , "::"
3847                , stringify ! ( ri_diskio_byteswritten ) ));
3848}
3849impl Clone for rusage_info_v2 {
3850    fn clone(&self) -> Self { *self }
3851}
3852#[repr(C)]
3853#[derive(Debug, Copy)]
3854pub struct rusage_info_v3 {
3855    pub ri_uuid: [u8; 16usize],
3856    pub ri_user_time: u64,
3857    pub ri_system_time: u64,
3858    pub ri_pkg_idle_wkups: u64,
3859    pub ri_interrupt_wkups: u64,
3860    pub ri_pageins: u64,
3861    pub ri_wired_size: u64,
3862    pub ri_resident_size: u64,
3863    pub ri_phys_footprint: u64,
3864    pub ri_proc_start_abstime: u64,
3865    pub ri_proc_exit_abstime: u64,
3866    pub ri_child_user_time: u64,
3867    pub ri_child_system_time: u64,
3868    pub ri_child_pkg_idle_wkups: u64,
3869    pub ri_child_interrupt_wkups: u64,
3870    pub ri_child_pageins: u64,
3871    pub ri_child_elapsed_abstime: u64,
3872    pub ri_diskio_bytesread: u64,
3873    pub ri_diskio_byteswritten: u64,
3874    pub ri_cpu_time_qos_default: u64,
3875    pub ri_cpu_time_qos_maintenance: u64,
3876    pub ri_cpu_time_qos_background: u64,
3877    pub ri_cpu_time_qos_utility: u64,
3878    pub ri_cpu_time_qos_legacy: u64,
3879    pub ri_cpu_time_qos_user_initiated: u64,
3880    pub ri_cpu_time_qos_user_interactive: u64,
3881    pub ri_billed_system_time: u64,
3882    pub ri_serviced_system_time: u64,
3883}
3884#[test]
3885fn bindgen_test_layout_rusage_info_v3() {
3886    assert_eq!(::std::mem::size_of::<rusage_info_v3>() , 232usize , concat ! (
3887               "Size of: " , stringify ! ( rusage_info_v3 ) ));
3888    assert_eq! (::std::mem::align_of::<rusage_info_v3>() , 8usize , concat ! (
3889                "Alignment of " , stringify ! ( rusage_info_v3 ) ));
3890    assert_eq! (unsafe {
3891                & ( * ( 0 as * const rusage_info_v3 ) ) . ri_uuid as * const _
3892                as usize } , 0usize , concat ! (
3893                "Alignment of field: " , stringify ! ( rusage_info_v3 ) , "::"
3894                , stringify ! ( ri_uuid ) ));
3895    assert_eq! (unsafe {
3896                & ( * ( 0 as * const rusage_info_v3 ) ) . ri_user_time as *
3897                const _ as usize } , 16usize , concat ! (
3898                "Alignment of field: " , stringify ! ( rusage_info_v3 ) , "::"
3899                , stringify ! ( ri_user_time ) ));
3900    assert_eq! (unsafe {
3901                & ( * ( 0 as * const rusage_info_v3 ) ) . ri_system_time as *
3902                const _ as usize } , 24usize , concat ! (
3903                "Alignment of field: " , stringify ! ( rusage_info_v3 ) , "::"
3904                , stringify ! ( ri_system_time ) ));
3905    assert_eq! (unsafe {
3906                & ( * ( 0 as * const rusage_info_v3 ) ) . ri_pkg_idle_wkups as
3907                * const _ as usize } , 32usize , concat ! (
3908                "Alignment of field: " , stringify ! ( rusage_info_v3 ) , "::"
3909                , stringify ! ( ri_pkg_idle_wkups ) ));
3910    assert_eq! (unsafe {
3911                & ( * ( 0 as * const rusage_info_v3 ) ) . ri_interrupt_wkups
3912                as * const _ as usize } , 40usize , concat ! (
3913                "Alignment of field: " , stringify ! ( rusage_info_v3 ) , "::"
3914                , stringify ! ( ri_interrupt_wkups ) ));
3915    assert_eq! (unsafe {
3916                & ( * ( 0 as * const rusage_info_v3 ) ) . ri_pageins as *
3917                const _ as usize } , 48usize , concat ! (
3918                "Alignment of field: " , stringify ! ( rusage_info_v3 ) , "::"
3919                , stringify ! ( ri_pageins ) ));
3920    assert_eq! (unsafe {
3921                & ( * ( 0 as * const rusage_info_v3 ) ) . ri_wired_size as *
3922                const _ as usize } , 56usize , concat ! (
3923                "Alignment of field: " , stringify ! ( rusage_info_v3 ) , "::"
3924                , stringify ! ( ri_wired_size ) ));
3925    assert_eq! (unsafe {
3926                & ( * ( 0 as * const rusage_info_v3 ) ) . ri_resident_size as
3927                * const _ as usize } , 64usize , concat ! (
3928                "Alignment of field: " , stringify ! ( rusage_info_v3 ) , "::"
3929                , stringify ! ( ri_resident_size ) ));
3930    assert_eq! (unsafe {
3931                & ( * ( 0 as * const rusage_info_v3 ) ) . ri_phys_footprint as
3932                * const _ as usize } , 72usize , concat ! (
3933                "Alignment of field: " , stringify ! ( rusage_info_v3 ) , "::"
3934                , stringify ! ( ri_phys_footprint ) ));
3935    assert_eq! (unsafe {
3936                & ( * ( 0 as * const rusage_info_v3 ) ) .
3937                ri_proc_start_abstime as * const _ as usize } , 80usize ,
3938                concat ! (
3939                "Alignment of field: " , stringify ! ( rusage_info_v3 ) , "::"
3940                , stringify ! ( ri_proc_start_abstime ) ));
3941    assert_eq! (unsafe {
3942                & ( * ( 0 as * const rusage_info_v3 ) ) . ri_proc_exit_abstime
3943                as * const _ as usize } , 88usize , concat ! (
3944                "Alignment of field: " , stringify ! ( rusage_info_v3 ) , "::"
3945                , stringify ! ( ri_proc_exit_abstime ) ));
3946    assert_eq! (unsafe {
3947                & ( * ( 0 as * const rusage_info_v3 ) ) . ri_child_user_time
3948                as * const _ as usize } , 96usize , concat ! (
3949                "Alignment of field: " , stringify ! ( rusage_info_v3 ) , "::"
3950                , stringify ! ( ri_child_user_time ) ));
3951    assert_eq! (unsafe {
3952                & ( * ( 0 as * const rusage_info_v3 ) ) . ri_child_system_time
3953                as * const _ as usize } , 104usize , concat ! (
3954                "Alignment of field: " , stringify ! ( rusage_info_v3 ) , "::"
3955                , stringify ! ( ri_child_system_time ) ));
3956    assert_eq! (unsafe {
3957                & ( * ( 0 as * const rusage_info_v3 ) ) .
3958                ri_child_pkg_idle_wkups as * const _ as usize } , 112usize ,
3959                concat ! (
3960                "Alignment of field: " , stringify ! ( rusage_info_v3 ) , "::"
3961                , stringify ! ( ri_child_pkg_idle_wkups ) ));
3962    assert_eq! (unsafe {
3963                & ( * ( 0 as * const rusage_info_v3 ) ) .
3964                ri_child_interrupt_wkups as * const _ as usize } , 120usize ,
3965                concat ! (
3966                "Alignment of field: " , stringify ! ( rusage_info_v3 ) , "::"
3967                , stringify ! ( ri_child_interrupt_wkups ) ));
3968    assert_eq! (unsafe {
3969                & ( * ( 0 as * const rusage_info_v3 ) ) . ri_child_pageins as
3970                * const _ as usize } , 128usize , concat ! (
3971                "Alignment of field: " , stringify ! ( rusage_info_v3 ) , "::"
3972                , stringify ! ( ri_child_pageins ) ));
3973    assert_eq! (unsafe {
3974                & ( * ( 0 as * const rusage_info_v3 ) ) .
3975                ri_child_elapsed_abstime as * const _ as usize } , 136usize ,
3976                concat ! (
3977                "Alignment of field: " , stringify ! ( rusage_info_v3 ) , "::"
3978                , stringify ! ( ri_child_elapsed_abstime ) ));
3979    assert_eq! (unsafe {
3980                & ( * ( 0 as * const rusage_info_v3 ) ) . ri_diskio_bytesread
3981                as * const _ as usize } , 144usize , concat ! (
3982                "Alignment of field: " , stringify ! ( rusage_info_v3 ) , "::"
3983                , stringify ! ( ri_diskio_bytesread ) ));
3984    assert_eq! (unsafe {
3985                & ( * ( 0 as * const rusage_info_v3 ) ) .
3986                ri_diskio_byteswritten as * const _ as usize } , 152usize ,
3987                concat ! (
3988                "Alignment of field: " , stringify ! ( rusage_info_v3 ) , "::"
3989                , stringify ! ( ri_diskio_byteswritten ) ));
3990    assert_eq! (unsafe {
3991                & ( * ( 0 as * const rusage_info_v3 ) ) .
3992                ri_cpu_time_qos_default as * const _ as usize } , 160usize ,
3993                concat ! (
3994                "Alignment of field: " , stringify ! ( rusage_info_v3 ) , "::"
3995                , stringify ! ( ri_cpu_time_qos_default ) ));
3996    assert_eq! (unsafe {
3997                & ( * ( 0 as * const rusage_info_v3 ) ) .
3998                ri_cpu_time_qos_maintenance as * const _ as usize } , 168usize
3999                , concat ! (
4000                "Alignment of field: " , stringify ! ( rusage_info_v3 ) , "::"
4001                , stringify ! ( ri_cpu_time_qos_maintenance ) ));
4002    assert_eq! (unsafe {
4003                & ( * ( 0 as * const rusage_info_v3 ) ) .
4004                ri_cpu_time_qos_background as * const _ as usize } , 176usize
4005                , concat ! (
4006                "Alignment of field: " , stringify ! ( rusage_info_v3 ) , "::"
4007                , stringify ! ( ri_cpu_time_qos_background ) ));
4008    assert_eq! (unsafe {
4009                & ( * ( 0 as * const rusage_info_v3 ) ) .
4010                ri_cpu_time_qos_utility as * const _ as usize } , 184usize ,
4011                concat ! (
4012                "Alignment of field: " , stringify ! ( rusage_info_v3 ) , "::"
4013                , stringify ! ( ri_cpu_time_qos_utility ) ));
4014    assert_eq! (unsafe {
4015                & ( * ( 0 as * const rusage_info_v3 ) ) .
4016                ri_cpu_time_qos_legacy as * const _ as usize } , 192usize ,
4017                concat ! (
4018                "Alignment of field: " , stringify ! ( rusage_info_v3 ) , "::"
4019                , stringify ! ( ri_cpu_time_qos_legacy ) ));
4020    assert_eq! (unsafe {
4021                & ( * ( 0 as * const rusage_info_v3 ) ) .
4022                ri_cpu_time_qos_user_initiated as * const _ as usize } ,
4023                200usize , concat ! (
4024                "Alignment of field: " , stringify ! ( rusage_info_v3 ) , "::"
4025                , stringify ! ( ri_cpu_time_qos_user_initiated ) ));
4026    assert_eq! (unsafe {
4027                & ( * ( 0 as * const rusage_info_v3 ) ) .
4028                ri_cpu_time_qos_user_interactive as * const _ as usize } ,
4029                208usize , concat ! (
4030                "Alignment of field: " , stringify ! ( rusage_info_v3 ) , "::"
4031                , stringify ! ( ri_cpu_time_qos_user_interactive ) ));
4032    assert_eq! (unsafe {
4033                & ( * ( 0 as * const rusage_info_v3 ) ) .
4034                ri_billed_system_time as * const _ as usize } , 216usize ,
4035                concat ! (
4036                "Alignment of field: " , stringify ! ( rusage_info_v3 ) , "::"
4037                , stringify ! ( ri_billed_system_time ) ));
4038    assert_eq! (unsafe {
4039                & ( * ( 0 as * const rusage_info_v3 ) ) .
4040                ri_serviced_system_time as * const _ as usize } , 224usize ,
4041                concat ! (
4042                "Alignment of field: " , stringify ! ( rusage_info_v3 ) , "::"
4043                , stringify ! ( ri_serviced_system_time ) ));
4044}
4045impl Clone for rusage_info_v3 {
4046    fn clone(&self) -> Self { *self }
4047}
4048pub type rusage_info_current = rusage_info_v3;
4049#[repr(C)]
4050#[derive(Debug, Copy)]
4051pub struct rlimit {
4052    pub rlim_cur: rlim_t,
4053    pub rlim_max: rlim_t,
4054}
4055#[test]
4056fn bindgen_test_layout_rlimit() {
4057    assert_eq!(::std::mem::size_of::<rlimit>() , 16usize , concat ! (
4058               "Size of: " , stringify ! ( rlimit ) ));
4059    assert_eq! (::std::mem::align_of::<rlimit>() , 8usize , concat ! (
4060                "Alignment of " , stringify ! ( rlimit ) ));
4061    assert_eq! (unsafe {
4062                & ( * ( 0 as * const rlimit ) ) . rlim_cur as * const _ as
4063                usize } , 0usize , concat ! (
4064                "Alignment of field: " , stringify ! ( rlimit ) , "::" ,
4065                stringify ! ( rlim_cur ) ));
4066    assert_eq! (unsafe {
4067                & ( * ( 0 as * const rlimit ) ) . rlim_max as * const _ as
4068                usize } , 8usize , concat ! (
4069                "Alignment of field: " , stringify ! ( rlimit ) , "::" ,
4070                stringify ! ( rlim_max ) ));
4071}
4072impl Clone for rlimit {
4073    fn clone(&self) -> Self { *self }
4074}
4075#[repr(C)]
4076#[derive(Debug, Copy)]
4077pub struct proc_rlimit_control_wakeupmon {
4078    pub wm_flags: u32,
4079    pub wm_rate: i32,
4080}
4081#[test]
4082fn bindgen_test_layout_proc_rlimit_control_wakeupmon() {
4083    assert_eq!(::std::mem::size_of::<proc_rlimit_control_wakeupmon>() , 8usize
4084               , concat ! (
4085               "Size of: " , stringify ! ( proc_rlimit_control_wakeupmon ) ));
4086    assert_eq! (::std::mem::align_of::<proc_rlimit_control_wakeupmon>() ,
4087                4usize , concat ! (
4088                "Alignment of " , stringify ! ( proc_rlimit_control_wakeupmon
4089                ) ));
4090    assert_eq! (unsafe {
4091                & ( * ( 0 as * const proc_rlimit_control_wakeupmon ) ) .
4092                wm_flags as * const _ as usize } , 0usize , concat ! (
4093                "Alignment of field: " , stringify ! (
4094                proc_rlimit_control_wakeupmon ) , "::" , stringify ! (
4095                wm_flags ) ));
4096    assert_eq! (unsafe {
4097                & ( * ( 0 as * const proc_rlimit_control_wakeupmon ) ) .
4098                wm_rate as * const _ as usize } , 4usize , concat ! (
4099                "Alignment of field: " , stringify ! (
4100                proc_rlimit_control_wakeupmon ) , "::" , stringify ! ( wm_rate
4101                ) ));
4102}
4103impl Clone for proc_rlimit_control_wakeupmon {
4104    fn clone(&self) -> Self { *self }
4105}
4106extern "C" {
4107    pub fn getpriority(arg1: ::std::os::raw::c_int, arg2: id_t)
4108     -> ::std::os::raw::c_int;
4109}
4110extern "C" {
4111    pub fn getiopolicy_np(arg1: ::std::os::raw::c_int,
4112                          arg2: ::std::os::raw::c_int)
4113     -> ::std::os::raw::c_int;
4114}
4115extern "C" {
4116    pub fn getrlimit(arg1: ::std::os::raw::c_int, arg2: *mut rlimit)
4117     -> ::std::os::raw::c_int;
4118}
4119extern "C" {
4120    pub fn getrusage(arg1: ::std::os::raw::c_int, arg2: *mut rusage)
4121     -> ::std::os::raw::c_int;
4122}
4123extern "C" {
4124    pub fn setpriority(arg1: ::std::os::raw::c_int, arg2: id_t,
4125                       arg3: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
4126}
4127extern "C" {
4128    pub fn setiopolicy_np(arg1: ::std::os::raw::c_int,
4129                          arg2: ::std::os::raw::c_int,
4130                          arg3: ::std::os::raw::c_int)
4131     -> ::std::os::raw::c_int;
4132}
4133extern "C" {
4134    pub fn setrlimit(arg1: ::std::os::raw::c_int, arg2: *const rlimit)
4135     -> ::std::os::raw::c_int;
4136}
4137#[repr(C)]
4138#[derive(Debug, Copy)]
4139pub struct wait {
4140    pub w_status: __BindgenUnionField<::std::os::raw::c_int>,
4141    pub w_T: __BindgenUnionField<wait__bindgen_ty_1>,
4142    pub w_S: __BindgenUnionField<wait__bindgen_ty_2>,
4143    pub bindgen_union_field: u32,
4144}
4145#[repr(C)]
4146#[derive(Debug, Copy)]
4147pub struct wait__bindgen_ty_1 {
4148    pub _bitfield_1: [u16; 2usize],
4149    pub __bindgen_align: [u32; 0usize],
4150}
4151#[test]
4152fn bindgen_test_layout_wait__bindgen_ty_1() {
4153    assert_eq!(::std::mem::size_of::<wait__bindgen_ty_1>() , 4usize , concat !
4154               ( "Size of: " , stringify ! ( wait__bindgen_ty_1 ) ));
4155    assert_eq! (::std::mem::align_of::<wait__bindgen_ty_1>() , 4usize , concat
4156                ! ( "Alignment of " , stringify ! ( wait__bindgen_ty_1 ) ));
4157}
4158impl Clone for wait__bindgen_ty_1 {
4159    fn clone(&self) -> Self { *self }
4160}
4161#[repr(C)]
4162#[derive(Debug, Copy)]
4163pub struct wait__bindgen_ty_2 {
4164    pub _bitfield_1: [u16; 2usize],
4165    pub __bindgen_align: [u32; 0usize],
4166}
4167#[test]
4168fn bindgen_test_layout_wait__bindgen_ty_2() {
4169    assert_eq!(::std::mem::size_of::<wait__bindgen_ty_2>() , 4usize , concat !
4170               ( "Size of: " , stringify ! ( wait__bindgen_ty_2 ) ));
4171    assert_eq! (::std::mem::align_of::<wait__bindgen_ty_2>() , 4usize , concat
4172                ! ( "Alignment of " , stringify ! ( wait__bindgen_ty_2 ) ));
4173}
4174impl Clone for wait__bindgen_ty_2 {
4175    fn clone(&self) -> Self { *self }
4176}
4177#[test]
4178fn bindgen_test_layout_wait() {
4179    assert_eq!(::std::mem::size_of::<wait>() , 4usize , concat ! (
4180               "Size of: " , stringify ! ( wait ) ));
4181    assert_eq! (::std::mem::align_of::<wait>() , 4usize , concat ! (
4182                "Alignment of " , stringify ! ( wait ) ));
4183    assert_eq! (unsafe {
4184                & ( * ( 0 as * const wait ) ) . w_status as * const _ as usize
4185                } , 0usize , concat ! (
4186                "Alignment of field: " , stringify ! ( wait ) , "::" ,
4187                stringify ! ( w_status ) ));
4188    assert_eq! (unsafe {
4189                & ( * ( 0 as * const wait ) ) . w_T as * const _ as usize } ,
4190                0usize , concat ! (
4191                "Alignment of field: " , stringify ! ( wait ) , "::" ,
4192                stringify ! ( w_T ) ));
4193    assert_eq! (unsafe {
4194                & ( * ( 0 as * const wait ) ) . w_S as * const _ as usize } ,
4195                0usize , concat ! (
4196                "Alignment of field: " , stringify ! ( wait ) , "::" ,
4197                stringify ! ( w_S ) ));
4198}
4199impl Clone for wait {
4200    fn clone(&self) -> Self { *self }
4201}
4202extern "C" {
4203    pub fn wait(arg1: *mut ::std::os::raw::c_int) -> pid_t;
4204}
4205extern "C" {
4206    pub fn waitpid(arg1: pid_t, arg2: *mut ::std::os::raw::c_int,
4207                   arg3: ::std::os::raw::c_int) -> pid_t;
4208}
4209extern "C" {
4210    pub fn waitid(arg1: idtype_t, arg2: id_t, arg3: *mut siginfo_t,
4211                  arg4: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
4212}
4213extern "C" {
4214    pub fn wait3(arg1: *mut ::std::os::raw::c_int,
4215                 arg2: ::std::os::raw::c_int, arg3: *mut rusage) -> pid_t;
4216}
4217extern "C" {
4218    pub fn wait4(arg1: pid_t, arg2: *mut ::std::os::raw::c_int,
4219                 arg3: ::std::os::raw::c_int, arg4: *mut rusage) -> pid_t;
4220}
4221extern "C" {
4222    pub fn alloca(arg1: usize) -> *mut ::std::os::raw::c_void;
4223}
4224pub type ct_rune_t = __darwin_ct_rune_t;
4225pub type rune_t = __darwin_rune_t;
4226pub type wchar_t = __darwin_wchar_t;
4227#[repr(C)]
4228#[derive(Debug, Copy)]
4229pub struct div_t {
4230    pub quot: ::std::os::raw::c_int,
4231    pub rem: ::std::os::raw::c_int,
4232}
4233#[test]
4234fn bindgen_test_layout_div_t() {
4235    assert_eq!(::std::mem::size_of::<div_t>() , 8usize , concat ! (
4236               "Size of: " , stringify ! ( div_t ) ));
4237    assert_eq! (::std::mem::align_of::<div_t>() , 4usize , concat ! (
4238                "Alignment of " , stringify ! ( div_t ) ));
4239    assert_eq! (unsafe {
4240                & ( * ( 0 as * const div_t ) ) . quot as * const _ as usize }
4241                , 0usize , concat ! (
4242                "Alignment of field: " , stringify ! ( div_t ) , "::" ,
4243                stringify ! ( quot ) ));
4244    assert_eq! (unsafe {
4245                & ( * ( 0 as * const div_t ) ) . rem as * const _ as usize } ,
4246                4usize , concat ! (
4247                "Alignment of field: " , stringify ! ( div_t ) , "::" ,
4248                stringify ! ( rem ) ));
4249}
4250impl Clone for div_t {
4251    fn clone(&self) -> Self { *self }
4252}
4253#[repr(C)]
4254#[derive(Debug, Copy)]
4255pub struct ldiv_t {
4256    pub quot: ::std::os::raw::c_long,
4257    pub rem: ::std::os::raw::c_long,
4258}
4259#[test]
4260fn bindgen_test_layout_ldiv_t() {
4261    assert_eq!(::std::mem::size_of::<ldiv_t>() , 16usize , concat ! (
4262               "Size of: " , stringify ! ( ldiv_t ) ));
4263    assert_eq! (::std::mem::align_of::<ldiv_t>() , 8usize , concat ! (
4264                "Alignment of " , stringify ! ( ldiv_t ) ));
4265    assert_eq! (unsafe {
4266                & ( * ( 0 as * const ldiv_t ) ) . quot as * const _ as usize }
4267                , 0usize , concat ! (
4268                "Alignment of field: " , stringify ! ( ldiv_t ) , "::" ,
4269                stringify ! ( quot ) ));
4270    assert_eq! (unsafe {
4271                & ( * ( 0 as * const ldiv_t ) ) . rem as * const _ as usize }
4272                , 8usize , concat ! (
4273                "Alignment of field: " , stringify ! ( ldiv_t ) , "::" ,
4274                stringify ! ( rem ) ));
4275}
4276impl Clone for ldiv_t {
4277    fn clone(&self) -> Self { *self }
4278}
4279#[repr(C)]
4280#[derive(Debug, Copy)]
4281pub struct lldiv_t {
4282    pub quot: ::std::os::raw::c_longlong,
4283    pub rem: ::std::os::raw::c_longlong,
4284}
4285#[test]
4286fn bindgen_test_layout_lldiv_t() {
4287    assert_eq!(::std::mem::size_of::<lldiv_t>() , 16usize , concat ! (
4288               "Size of: " , stringify ! ( lldiv_t ) ));
4289    assert_eq! (::std::mem::align_of::<lldiv_t>() , 8usize , concat ! (
4290                "Alignment of " , stringify ! ( lldiv_t ) ));
4291    assert_eq! (unsafe {
4292                & ( * ( 0 as * const lldiv_t ) ) . quot as * const _ as usize
4293                } , 0usize , concat ! (
4294                "Alignment of field: " , stringify ! ( lldiv_t ) , "::" ,
4295                stringify ! ( quot ) ));
4296    assert_eq! (unsafe {
4297                & ( * ( 0 as * const lldiv_t ) ) . rem as * const _ as usize }
4298                , 8usize , concat ! (
4299                "Alignment of field: " , stringify ! ( lldiv_t ) , "::" ,
4300                stringify ! ( rem ) ));
4301}
4302impl Clone for lldiv_t {
4303    fn clone(&self) -> Self { *self }
4304}
4305extern "C" {
4306    #[link_name = "__mb_cur_max"]
4307    pub static mut __mb_cur_max: ::std::os::raw::c_int;
4308}
4309extern "C" {
4310    pub fn abort();
4311}
4312extern "C" {
4313    pub fn abs(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
4314}
4315extern "C" {
4316    pub fn atexit(arg1: ::std::option::Option<unsafe extern "C" fn()>)
4317     -> ::std::os::raw::c_int;
4318}
4319extern "C" {
4320    pub fn atof(arg1: *const ::std::os::raw::c_char) -> f64;
4321}
4322extern "C" {
4323    pub fn atoi(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
4324}
4325extern "C" {
4326    pub fn atol(arg1: *const ::std::os::raw::c_char)
4327     -> ::std::os::raw::c_long;
4328}
4329extern "C" {
4330    pub fn atoll(arg1: *const ::std::os::raw::c_char)
4331     -> ::std::os::raw::c_longlong;
4332}
4333extern "C" {
4334    pub fn bsearch(arg1: *const ::std::os::raw::c_void,
4335                   arg2: *const ::std::os::raw::c_void, arg3: usize,
4336                   arg4: usize,
4337                   arg5:
4338                       ::std::option::Option<unsafe extern "C" fn(arg1:
4339                                                                      *const ::std::os::raw::c_void,
4340                                                                  arg2:
4341                                                                      *const ::std::os::raw::c_void)
4342                                                 -> ::std::os::raw::c_int>)
4343     -> *mut ::std::os::raw::c_void;
4344}
4345extern "C" {
4346    pub fn calloc(arg1: usize, arg2: usize) -> *mut ::std::os::raw::c_void;
4347}
4348extern "C" {
4349    pub fn div(arg1: ::std::os::raw::c_int, arg2: ::std::os::raw::c_int)
4350     -> div_t;
4351}
4352extern "C" {
4353    pub fn exit(arg1: ::std::os::raw::c_int);
4354}
4355extern "C" {
4356    pub fn free(arg1: *mut ::std::os::raw::c_void);
4357}
4358extern "C" {
4359    pub fn getenv(arg1: *const ::std::os::raw::c_char)
4360     -> *mut ::std::os::raw::c_char;
4361}
4362extern "C" {
4363    pub fn labs(arg1: ::std::os::raw::c_long) -> ::std::os::raw::c_long;
4364}
4365extern "C" {
4366    pub fn ldiv(arg1: ::std::os::raw::c_long, arg2: ::std::os::raw::c_long)
4367     -> ldiv_t;
4368}
4369extern "C" {
4370    pub fn llabs(arg1: ::std::os::raw::c_longlong)
4371     -> ::std::os::raw::c_longlong;
4372}
4373extern "C" {
4374    pub fn lldiv(arg1: ::std::os::raw::c_longlong,
4375                 arg2: ::std::os::raw::c_longlong) -> lldiv_t;
4376}
4377extern "C" {
4378    pub fn malloc(arg1: usize) -> *mut ::std::os::raw::c_void;
4379}
4380extern "C" {
4381    pub fn mblen(arg1: *const ::std::os::raw::c_char, arg2: usize)
4382     -> ::std::os::raw::c_int;
4383}
4384extern "C" {
4385    pub fn mbstowcs(arg1: *mut wchar_t, arg2: *const ::std::os::raw::c_char,
4386                    arg3: usize) -> usize;
4387}
4388extern "C" {
4389    pub fn mbtowc(arg1: *mut wchar_t, arg2: *const ::std::os::raw::c_char,
4390                  arg3: usize) -> ::std::os::raw::c_int;
4391}
4392extern "C" {
4393    pub fn posix_memalign(arg1: *mut *mut ::std::os::raw::c_void, arg2: usize,
4394                          arg3: usize) -> ::std::os::raw::c_int;
4395}
4396extern "C" {
4397    pub fn qsort(arg1: *mut ::std::os::raw::c_void, arg2: usize, arg3: usize,
4398                 arg4:
4399                     ::std::option::Option<unsafe extern "C" fn(arg1:
4400                                                                    *const ::std::os::raw::c_void,
4401                                                                arg2:
4402                                                                    *const ::std::os::raw::c_void)
4403                                               -> ::std::os::raw::c_int>);
4404}
4405extern "C" {
4406    pub fn rand() -> ::std::os::raw::c_int;
4407}
4408extern "C" {
4409    pub fn realloc(arg1: *mut ::std::os::raw::c_void, arg2: usize)
4410     -> *mut ::std::os::raw::c_void;
4411}
4412extern "C" {
4413    pub fn srand(arg1: ::std::os::raw::c_uint);
4414}
4415extern "C" {
4416    pub fn strtod(arg1: *const ::std::os::raw::c_char,
4417                  arg2: *mut *mut ::std::os::raw::c_char) -> f64;
4418}
4419extern "C" {
4420    pub fn strtof(arg1: *const ::std::os::raw::c_char,
4421                  arg2: *mut *mut ::std::os::raw::c_char) -> f32;
4422}
4423extern "C" {
4424    pub fn strtol(arg1: *const ::std::os::raw::c_char,
4425                  arg2: *mut *mut ::std::os::raw::c_char,
4426                  arg3: ::std::os::raw::c_int) -> ::std::os::raw::c_long;
4427}
4428extern "C" {
4429    pub fn strtold(arg1: *const ::std::os::raw::c_char,
4430                   arg2: *mut *mut ::std::os::raw::c_char) -> f64;
4431}
4432extern "C" {
4433    pub fn strtoll(arg1: *const ::std::os::raw::c_char,
4434                   arg2: *mut *mut ::std::os::raw::c_char,
4435                   arg3: ::std::os::raw::c_int) -> ::std::os::raw::c_longlong;
4436}
4437extern "C" {
4438    pub fn strtoul(arg1: *const ::std::os::raw::c_char,
4439                   arg2: *mut *mut ::std::os::raw::c_char,
4440                   arg3: ::std::os::raw::c_int) -> ::std::os::raw::c_ulong;
4441}
4442extern "C" {
4443    pub fn strtoull(arg1: *const ::std::os::raw::c_char,
4444                    arg2: *mut *mut ::std::os::raw::c_char,
4445                    arg3: ::std::os::raw::c_int)
4446     -> ::std::os::raw::c_ulonglong;
4447}
4448extern "C" {
4449    pub fn system(arg1: *const ::std::os::raw::c_char)
4450     -> ::std::os::raw::c_int;
4451}
4452extern "C" {
4453    pub fn wcstombs(arg1: *mut ::std::os::raw::c_char, arg2: *const wchar_t,
4454                    arg3: usize) -> usize;
4455}
4456extern "C" {
4457    pub fn wctomb(arg1: *mut ::std::os::raw::c_char, arg2: wchar_t)
4458     -> ::std::os::raw::c_int;
4459}
4460extern "C" {
4461    pub fn _Exit(arg1: ::std::os::raw::c_int);
4462}
4463extern "C" {
4464    pub fn a64l(arg1: *const ::std::os::raw::c_char)
4465     -> ::std::os::raw::c_long;
4466}
4467extern "C" {
4468    pub fn drand48() -> f64;
4469}
4470extern "C" {
4471    pub fn ecvt(arg1: f64, arg2: ::std::os::raw::c_int,
4472                arg3: *mut ::std::os::raw::c_int,
4473                arg4: *mut ::std::os::raw::c_int)
4474     -> *mut ::std::os::raw::c_char;
4475}
4476extern "C" {
4477    pub fn erand48(arg1: *mut ::std::os::raw::c_ushort) -> f64;
4478}
4479extern "C" {
4480    pub fn fcvt(arg1: f64, arg2: ::std::os::raw::c_int,
4481                arg3: *mut ::std::os::raw::c_int,
4482                arg4: *mut ::std::os::raw::c_int)
4483     -> *mut ::std::os::raw::c_char;
4484}
4485extern "C" {
4486    pub fn gcvt(arg1: f64, arg2: ::std::os::raw::c_int,
4487                arg3: *mut ::std::os::raw::c_char)
4488     -> *mut ::std::os::raw::c_char;
4489}
4490extern "C" {
4491    pub fn getsubopt(arg1: *mut *mut ::std::os::raw::c_char,
4492                     arg2: *const *const ::std::os::raw::c_char,
4493                     arg3: *mut *mut ::std::os::raw::c_char)
4494     -> ::std::os::raw::c_int;
4495}
4496extern "C" {
4497    pub fn grantpt(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
4498}
4499extern "C" {
4500    pub fn initstate(arg1: ::std::os::raw::c_uint,
4501                     arg2: *mut ::std::os::raw::c_char, arg3: usize)
4502     -> *mut ::std::os::raw::c_char;
4503}
4504extern "C" {
4505    pub fn jrand48(arg1: *mut ::std::os::raw::c_ushort)
4506     -> ::std::os::raw::c_long;
4507}
4508extern "C" {
4509    pub fn l64a(arg1: ::std::os::raw::c_long) -> *mut ::std::os::raw::c_char;
4510}
4511extern "C" {
4512    pub fn lcong48(arg1: *mut ::std::os::raw::c_ushort);
4513}
4514extern "C" {
4515    pub fn lrand48() -> ::std::os::raw::c_long;
4516}
4517extern "C" {
4518    pub fn mktemp(arg1: *mut ::std::os::raw::c_char)
4519     -> *mut ::std::os::raw::c_char;
4520}
4521extern "C" {
4522    pub fn mkstemp(arg1: *mut ::std::os::raw::c_char)
4523     -> ::std::os::raw::c_int;
4524}
4525extern "C" {
4526    pub fn mrand48() -> ::std::os::raw::c_long;
4527}
4528extern "C" {
4529    pub fn nrand48(arg1: *mut ::std::os::raw::c_ushort)
4530     -> ::std::os::raw::c_long;
4531}
4532extern "C" {
4533    pub fn posix_openpt(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
4534}
4535extern "C" {
4536    pub fn ptsname(arg1: ::std::os::raw::c_int)
4537     -> *mut ::std::os::raw::c_char;
4538}
4539extern "C" {
4540    pub fn putenv(arg1: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int;
4541}
4542extern "C" {
4543    pub fn random() -> ::std::os::raw::c_long;
4544}
4545extern "C" {
4546    pub fn rand_r(arg1: *mut ::std::os::raw::c_uint) -> ::std::os::raw::c_int;
4547}
4548extern "C" {
4549    #[link_name = "realpath$DARWIN_EXTSN"]
4550    pub fn realpath(arg1: *const ::std::os::raw::c_char,
4551                    arg2: *mut ::std::os::raw::c_char)
4552     -> *mut ::std::os::raw::c_char;
4553}
4554extern "C" {
4555    pub fn seed48(arg1: *mut ::std::os::raw::c_ushort)
4556     -> *mut ::std::os::raw::c_ushort;
4557}
4558extern "C" {
4559    pub fn setenv(arg1: *const ::std::os::raw::c_char,
4560                  arg2: *const ::std::os::raw::c_char,
4561                  arg3: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
4562}
4563extern "C" {
4564    pub fn setkey(arg1: *const ::std::os::raw::c_char);
4565}
4566extern "C" {
4567    pub fn setstate(arg1: *const ::std::os::raw::c_char)
4568     -> *mut ::std::os::raw::c_char;
4569}
4570extern "C" {
4571    pub fn srand48(arg1: ::std::os::raw::c_long);
4572}
4573extern "C" {
4574    pub fn srandom(arg1: ::std::os::raw::c_uint);
4575}
4576extern "C" {
4577    pub fn unlockpt(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
4578}
4579extern "C" {
4580    pub fn unsetenv(arg1: *const ::std::os::raw::c_char)
4581     -> ::std::os::raw::c_int;
4582}
4583pub type u_int8_t = ::std::os::raw::c_uchar;
4584pub type u_int16_t = ::std::os::raw::c_ushort;
4585pub type u_int32_t = ::std::os::raw::c_uint;
4586pub type u_int64_t = ::std::os::raw::c_ulonglong;
4587pub type register_t = i64;
4588pub type user_addr_t = u_int64_t;
4589pub type user_size_t = u_int64_t;
4590pub type user_ssize_t = i64;
4591pub type user_long_t = i64;
4592pub type user_ulong_t = u_int64_t;
4593pub type user_time_t = i64;
4594pub type user_off_t = i64;
4595pub type syscall_arg_t = u_int64_t;
4596pub type dev_t = __darwin_dev_t;
4597pub type mode_t = __darwin_mode_t;
4598extern "C" {
4599    pub fn arc4random() -> u_int32_t;
4600}
4601extern "C" {
4602    pub fn arc4random_addrandom(arg1: *mut ::std::os::raw::c_uchar,
4603                                arg2: ::std::os::raw::c_int);
4604}
4605extern "C" {
4606    pub fn arc4random_buf(arg1: *mut ::std::os::raw::c_void, arg2: usize);
4607}
4608extern "C" {
4609    pub fn arc4random_stir();
4610}
4611extern "C" {
4612    pub fn arc4random_uniform(arg1: u_int32_t) -> u_int32_t;
4613}
4614extern "C" {
4615    pub fn atexit_b(arg1: *mut ::std::os::raw::c_void)
4616     -> ::std::os::raw::c_int;
4617}
4618extern "C" {
4619    pub fn bsearch_b(arg1: *const ::std::os::raw::c_void,
4620                     arg2: *const ::std::os::raw::c_void, arg3: usize,
4621                     arg4: usize, arg5: *mut ::std::os::raw::c_void)
4622     -> *mut ::std::os::raw::c_void;
4623}
4624extern "C" {
4625    pub fn cgetcap(arg1: *mut ::std::os::raw::c_char,
4626                   arg2: *const ::std::os::raw::c_char,
4627                   arg3: ::std::os::raw::c_int)
4628     -> *mut ::std::os::raw::c_char;
4629}
4630extern "C" {
4631    pub fn cgetclose() -> ::std::os::raw::c_int;
4632}
4633extern "C" {
4634    pub fn cgetent(arg1: *mut *mut ::std::os::raw::c_char,
4635                   arg2: *mut *mut ::std::os::raw::c_char,
4636                   arg3: *const ::std::os::raw::c_char)
4637     -> ::std::os::raw::c_int;
4638}
4639extern "C" {
4640    pub fn cgetfirst(arg1: *mut *mut ::std::os::raw::c_char,
4641                     arg2: *mut *mut ::std::os::raw::c_char)
4642     -> ::std::os::raw::c_int;
4643}
4644extern "C" {
4645    pub fn cgetmatch(arg1: *const ::std::os::raw::c_char,
4646                     arg2: *const ::std::os::raw::c_char)
4647     -> ::std::os::raw::c_int;
4648}
4649extern "C" {
4650    pub fn cgetnext(arg1: *mut *mut ::std::os::raw::c_char,
4651                    arg2: *mut *mut ::std::os::raw::c_char)
4652     -> ::std::os::raw::c_int;
4653}
4654extern "C" {
4655    pub fn cgetnum(arg1: *mut ::std::os::raw::c_char,
4656                   arg2: *const ::std::os::raw::c_char,
4657                   arg3: *mut ::std::os::raw::c_long)
4658     -> ::std::os::raw::c_int;
4659}
4660extern "C" {
4661    pub fn cgetset(arg1: *const ::std::os::raw::c_char)
4662     -> ::std::os::raw::c_int;
4663}
4664extern "C" {
4665    pub fn cgetstr(arg1: *mut ::std::os::raw::c_char,
4666                   arg2: *const ::std::os::raw::c_char,
4667                   arg3: *mut *mut ::std::os::raw::c_char)
4668     -> ::std::os::raw::c_int;
4669}
4670extern "C" {
4671    pub fn cgetustr(arg1: *mut ::std::os::raw::c_char,
4672                    arg2: *const ::std::os::raw::c_char,
4673                    arg3: *mut *mut ::std::os::raw::c_char)
4674     -> ::std::os::raw::c_int;
4675}
4676extern "C" {
4677    #[link_name = "daemon$1050"]
4678    pub fn daemon(arg1: ::std::os::raw::c_int, arg2: ::std::os::raw::c_int)
4679     -> ::std::os::raw::c_int;
4680}
4681extern "C" {
4682    pub fn devname(arg1: dev_t, arg2: mode_t) -> *mut ::std::os::raw::c_char;
4683}
4684extern "C" {
4685    pub fn devname_r(arg1: dev_t, arg2: mode_t,
4686                     buf: *mut ::std::os::raw::c_char,
4687                     len: ::std::os::raw::c_int)
4688     -> *mut ::std::os::raw::c_char;
4689}
4690extern "C" {
4691    pub fn getbsize(arg1: *mut ::std::os::raw::c_int,
4692                    arg2: *mut ::std::os::raw::c_long)
4693     -> *mut ::std::os::raw::c_char;
4694}
4695extern "C" {
4696    pub fn getloadavg(arg1: *mut f64, arg2: ::std::os::raw::c_int)
4697     -> ::std::os::raw::c_int;
4698}
4699extern "C" {
4700    pub fn getprogname() -> *const ::std::os::raw::c_char;
4701}
4702extern "C" {
4703    pub fn heapsort(arg1: *mut ::std::os::raw::c_void, arg2: usize,
4704                    arg3: usize,
4705                    arg4:
4706                        ::std::option::Option<unsafe extern "C" fn(arg1:
4707                                                                       *const ::std::os::raw::c_void,
4708                                                                   arg2:
4709                                                                       *const ::std::os::raw::c_void)
4710                                                  -> ::std::os::raw::c_int>)
4711     -> ::std::os::raw::c_int;
4712}
4713extern "C" {
4714    pub fn heapsort_b(arg1: *mut ::std::os::raw::c_void, arg2: usize,
4715                      arg3: usize, arg4: *mut ::std::os::raw::c_void)
4716     -> ::std::os::raw::c_int;
4717}
4718extern "C" {
4719    pub fn mergesort(arg1: *mut ::std::os::raw::c_void, arg2: usize,
4720                     arg3: usize,
4721                     arg4:
4722                         ::std::option::Option<unsafe extern "C" fn(arg1:
4723                                                                        *const ::std::os::raw::c_void,
4724                                                                    arg2:
4725                                                                        *const ::std::os::raw::c_void)
4726                                                   -> ::std::os::raw::c_int>)
4727     -> ::std::os::raw::c_int;
4728}
4729extern "C" {
4730    pub fn mergesort_b(arg1: *mut ::std::os::raw::c_void, arg2: usize,
4731                       arg3: usize, arg4: *mut ::std::os::raw::c_void)
4732     -> ::std::os::raw::c_int;
4733}
4734extern "C" {
4735    pub fn psort(arg1: *mut ::std::os::raw::c_void, arg2: usize, arg3: usize,
4736                 arg4:
4737                     ::std::option::Option<unsafe extern "C" fn(arg1:
4738                                                                    *const ::std::os::raw::c_void,
4739                                                                arg2:
4740                                                                    *const ::std::os::raw::c_void)
4741                                               -> ::std::os::raw::c_int>);
4742}
4743extern "C" {
4744    pub fn psort_b(arg1: *mut ::std::os::raw::c_void, arg2: usize,
4745                   arg3: usize, arg4: *mut ::std::os::raw::c_void);
4746}
4747extern "C" {
4748    pub fn psort_r(arg1: *mut ::std::os::raw::c_void, arg2: usize,
4749                   arg3: usize, arg4: *mut ::std::os::raw::c_void,
4750                   arg5:
4751                       ::std::option::Option<unsafe extern "C" fn(arg1:
4752                                                                      *mut ::std::os::raw::c_void,
4753                                                                  arg2:
4754                                                                      *const ::std::os::raw::c_void,
4755                                                                  arg3:
4756                                                                      *const ::std::os::raw::c_void)
4757                                                 -> ::std::os::raw::c_int>);
4758}
4759extern "C" {
4760    pub fn qsort_b(arg1: *mut ::std::os::raw::c_void, arg2: usize,
4761                   arg3: usize, arg4: *mut ::std::os::raw::c_void);
4762}
4763extern "C" {
4764    pub fn qsort_r(arg1: *mut ::std::os::raw::c_void, arg2: usize,
4765                   arg3: usize, arg4: *mut ::std::os::raw::c_void,
4766                   arg5:
4767                       ::std::option::Option<unsafe extern "C" fn(arg1:
4768                                                                      *mut ::std::os::raw::c_void,
4769                                                                  arg2:
4770                                                                      *const ::std::os::raw::c_void,
4771                                                                  arg3:
4772                                                                      *const ::std::os::raw::c_void)
4773                                                 -> ::std::os::raw::c_int>);
4774}
4775extern "C" {
4776    pub fn radixsort(arg1: *mut *const ::std::os::raw::c_uchar,
4777                     arg2: ::std::os::raw::c_int,
4778                     arg3: *const ::std::os::raw::c_uchar,
4779                     arg4: ::std::os::raw::c_uint) -> ::std::os::raw::c_int;
4780}
4781extern "C" {
4782    pub fn setprogname(arg1: *const ::std::os::raw::c_char);
4783}
4784extern "C" {
4785    pub fn sradixsort(arg1: *mut *const ::std::os::raw::c_uchar,
4786                      arg2: ::std::os::raw::c_int,
4787                      arg3: *const ::std::os::raw::c_uchar,
4788                      arg4: ::std::os::raw::c_uint) -> ::std::os::raw::c_int;
4789}
4790extern "C" {
4791    pub fn sranddev();
4792}
4793extern "C" {
4794    pub fn srandomdev();
4795}
4796extern "C" {
4797    pub fn reallocf(arg1: *mut ::std::os::raw::c_void, arg2: usize)
4798     -> *mut ::std::os::raw::c_void;
4799}
4800extern "C" {
4801    pub fn strtoq(arg1: *const ::std::os::raw::c_char,
4802                  arg2: *mut *mut ::std::os::raw::c_char,
4803                  arg3: ::std::os::raw::c_int) -> ::std::os::raw::c_longlong;
4804}
4805extern "C" {
4806    pub fn strtouq(arg1: *const ::std::os::raw::c_char,
4807                   arg2: *mut *mut ::std::os::raw::c_char,
4808                   arg3: ::std::os::raw::c_int)
4809     -> ::std::os::raw::c_ulonglong;
4810}
4811extern "C" {
4812    #[link_name = "suboptarg"]
4813    pub static mut suboptarg: *mut ::std::os::raw::c_char;
4814}
4815extern "C" {
4816    pub fn valloc(arg1: usize) -> *mut ::std::os::raw::c_void;
4817}
4818pub type rsize_t = ::std::os::raw::c_ulong;
4819pub type max_align_t = f64;
4820pub type clock_t = __darwin_clock_t;
4821pub type time_t = __darwin_time_t;
4822#[repr(C)]
4823#[derive(Debug, Copy)]
4824pub struct timespec {
4825    pub tv_sec: __darwin_time_t,
4826    pub tv_nsec: ::std::os::raw::c_long,
4827}
4828#[test]
4829fn bindgen_test_layout_timespec() {
4830    assert_eq!(::std::mem::size_of::<timespec>() , 16usize , concat ! (
4831               "Size of: " , stringify ! ( timespec ) ));
4832    assert_eq! (::std::mem::align_of::<timespec>() , 8usize , concat ! (
4833                "Alignment of " , stringify ! ( timespec ) ));
4834    assert_eq! (unsafe {
4835                & ( * ( 0 as * const timespec ) ) . tv_sec as * const _ as
4836                usize } , 0usize , concat ! (
4837                "Alignment of field: " , stringify ! ( timespec ) , "::" ,
4838                stringify ! ( tv_sec ) ));
4839    assert_eq! (unsafe {
4840                & ( * ( 0 as * const timespec ) ) . tv_nsec as * const _ as
4841                usize } , 8usize , concat ! (
4842                "Alignment of field: " , stringify ! ( timespec ) , "::" ,
4843                stringify ! ( tv_nsec ) ));
4844}
4845impl Clone for timespec {
4846    fn clone(&self) -> Self { *self }
4847}
4848#[repr(C)]
4849#[derive(Debug, Copy)]
4850pub struct tm {
4851    pub tm_sec: ::std::os::raw::c_int,
4852    pub tm_min: ::std::os::raw::c_int,
4853    pub tm_hour: ::std::os::raw::c_int,
4854    pub tm_mday: ::std::os::raw::c_int,
4855    pub tm_mon: ::std::os::raw::c_int,
4856    pub tm_year: ::std::os::raw::c_int,
4857    pub tm_wday: ::std::os::raw::c_int,
4858    pub tm_yday: ::std::os::raw::c_int,
4859    pub tm_isdst: ::std::os::raw::c_int,
4860    pub tm_gmtoff: ::std::os::raw::c_long,
4861    pub tm_zone: *mut ::std::os::raw::c_char,
4862}
4863#[test]
4864fn bindgen_test_layout_tm() {
4865    assert_eq!(::std::mem::size_of::<tm>() , 56usize , concat ! (
4866               "Size of: " , stringify ! ( tm ) ));
4867    assert_eq! (::std::mem::align_of::<tm>() , 8usize , concat ! (
4868                "Alignment of " , stringify ! ( tm ) ));
4869    assert_eq! (unsafe {
4870                & ( * ( 0 as * const tm ) ) . tm_sec as * const _ as usize } ,
4871                0usize , concat ! (
4872                "Alignment of field: " , stringify ! ( tm ) , "::" , stringify
4873                ! ( tm_sec ) ));
4874    assert_eq! (unsafe {
4875                & ( * ( 0 as * const tm ) ) . tm_min as * const _ as usize } ,
4876                4usize , concat ! (
4877                "Alignment of field: " , stringify ! ( tm ) , "::" , stringify
4878                ! ( tm_min ) ));
4879    assert_eq! (unsafe {
4880                & ( * ( 0 as * const tm ) ) . tm_hour as * const _ as usize }
4881                , 8usize , concat ! (
4882                "Alignment of field: " , stringify ! ( tm ) , "::" , stringify
4883                ! ( tm_hour ) ));
4884    assert_eq! (unsafe {
4885                & ( * ( 0 as * const tm ) ) . tm_mday as * const _ as usize }
4886                , 12usize , concat ! (
4887                "Alignment of field: " , stringify ! ( tm ) , "::" , stringify
4888                ! ( tm_mday ) ));
4889    assert_eq! (unsafe {
4890                & ( * ( 0 as * const tm ) ) . tm_mon as * const _ as usize } ,
4891                16usize , concat ! (
4892                "Alignment of field: " , stringify ! ( tm ) , "::" , stringify
4893                ! ( tm_mon ) ));
4894    assert_eq! (unsafe {
4895                & ( * ( 0 as * const tm ) ) . tm_year as * const _ as usize }
4896                , 20usize , concat ! (
4897                "Alignment of field: " , stringify ! ( tm ) , "::" , stringify
4898                ! ( tm_year ) ));
4899    assert_eq! (unsafe {
4900                & ( * ( 0 as * const tm ) ) . tm_wday as * const _ as usize }
4901                , 24usize , concat ! (
4902                "Alignment of field: " , stringify ! ( tm ) , "::" , stringify
4903                ! ( tm_wday ) ));
4904    assert_eq! (unsafe {
4905                & ( * ( 0 as * const tm ) ) . tm_yday as * const _ as usize }
4906                , 28usize , concat ! (
4907                "Alignment of field: " , stringify ! ( tm ) , "::" , stringify
4908                ! ( tm_yday ) ));
4909    assert_eq! (unsafe {
4910                & ( * ( 0 as * const tm ) ) . tm_isdst as * const _ as usize }
4911                , 32usize , concat ! (
4912                "Alignment of field: " , stringify ! ( tm ) , "::" , stringify
4913                ! ( tm_isdst ) ));
4914    assert_eq! (unsafe {
4915                & ( * ( 0 as * const tm ) ) . tm_gmtoff as * const _ as usize
4916                } , 40usize , concat ! (
4917                "Alignment of field: " , stringify ! ( tm ) , "::" , stringify
4918                ! ( tm_gmtoff ) ));
4919    assert_eq! (unsafe {
4920                & ( * ( 0 as * const tm ) ) . tm_zone as * const _ as usize }
4921                , 48usize , concat ! (
4922                "Alignment of field: " , stringify ! ( tm ) , "::" , stringify
4923                ! ( tm_zone ) ));
4924}
4925impl Clone for tm {
4926    fn clone(&self) -> Self { *self }
4927}
4928extern "C" {
4929    #[link_name = "tzname"]
4930    pub static mut tzname: [*mut ::std::os::raw::c_char; 0usize];
4931}
4932extern "C" {
4933    #[link_name = "getdate_err"]
4934    pub static mut getdate_err: ::std::os::raw::c_int;
4935}
4936extern "C" {
4937    #[link_name = "timezone"]
4938    pub static mut timezone: ::std::os::raw::c_long;
4939}
4940extern "C" {
4941    #[link_name = "daylight"]
4942    pub static mut daylight: ::std::os::raw::c_int;
4943}
4944extern "C" {
4945    pub fn asctime(arg1: *const tm) -> *mut ::std::os::raw::c_char;
4946}
4947extern "C" {
4948    pub fn clock() -> clock_t;
4949}
4950extern "C" {
4951    pub fn ctime(arg1: *const time_t) -> *mut ::std::os::raw::c_char;
4952}
4953extern "C" {
4954    pub fn difftime(arg1: time_t, arg2: time_t) -> f64;
4955}
4956extern "C" {
4957    pub fn getdate(arg1: *const ::std::os::raw::c_char) -> *mut tm;
4958}
4959extern "C" {
4960    pub fn gmtime(arg1: *const time_t) -> *mut tm;
4961}
4962extern "C" {
4963    pub fn localtime(arg1: *const time_t) -> *mut tm;
4964}
4965extern "C" {
4966    pub fn mktime(arg1: *mut tm) -> time_t;
4967}
4968extern "C" {
4969    pub fn strftime(arg1: *mut ::std::os::raw::c_char, arg2: usize,
4970                    arg3: *const ::std::os::raw::c_char, arg4: *const tm)
4971     -> usize;
4972}
4973extern "C" {
4974    pub fn strptime(arg1: *const ::std::os::raw::c_char,
4975                    arg2: *const ::std::os::raw::c_char, arg3: *mut tm)
4976     -> *mut ::std::os::raw::c_char;
4977}
4978extern "C" {
4979    pub fn time(arg1: *mut time_t) -> time_t;
4980}
4981extern "C" {
4982    pub fn tzset();
4983}
4984extern "C" {
4985    pub fn asctime_r(arg1: *const tm, arg2: *mut ::std::os::raw::c_char)
4986     -> *mut ::std::os::raw::c_char;
4987}
4988extern "C" {
4989    pub fn ctime_r(arg1: *const time_t, arg2: *mut ::std::os::raw::c_char)
4990     -> *mut ::std::os::raw::c_char;
4991}
4992extern "C" {
4993    pub fn gmtime_r(arg1: *const time_t, arg2: *mut tm) -> *mut tm;
4994}
4995extern "C" {
4996    pub fn localtime_r(arg1: *const time_t, arg2: *mut tm) -> *mut tm;
4997}
4998extern "C" {
4999    pub fn posix2time(arg1: time_t) -> time_t;
5000}
5001extern "C" {
5002    pub fn tzsetwall();
5003}
5004extern "C" {
5005    pub fn time2posix(arg1: time_t) -> time_t;
5006}
5007extern "C" {
5008    pub fn timelocal(arg1: *const tm) -> time_t;
5009}
5010extern "C" {
5011    pub fn timegm(arg1: *const tm) -> time_t;
5012}
5013extern "C" {
5014    pub fn nanosleep(arg1: *const timespec, arg2: *mut timespec)
5015     -> ::std::os::raw::c_int;
5016}
5017extern "C" {
5018    pub fn __assert_rtn(arg1: *const ::std::os::raw::c_char,
5019                        arg2: *const ::std::os::raw::c_char,
5020                        arg3: ::std::os::raw::c_int,
5021                        arg4: *const ::std::os::raw::c_char);
5022}
5023pub type vl_type = vl_uint32;
5024extern "C" {
5025    /** @} */
5026    pub fn vl_get_version_string() -> *const ::std::os::raw::c_char;
5027}
5028extern "C" {
5029    pub fn vl_configuration_to_string_copy() -> *mut ::std::os::raw::c_char;
5030}
5031extern "C" {
5032    pub fn vl_set_simd_enabled(x: vl_bool);
5033}
5034extern "C" {
5035    pub fn vl_get_simd_enabled() -> vl_bool;
5036}
5037extern "C" {
5038    pub fn vl_cpu_has_avx() -> vl_bool;
5039}
5040extern "C" {
5041    pub fn vl_cpu_has_sse3() -> vl_bool;
5042}
5043extern "C" {
5044    pub fn vl_cpu_has_sse2() -> vl_bool;
5045}
5046extern "C" {
5047    pub fn vl_get_num_cpus() -> vl_size;
5048}
5049extern "C" {
5050    pub fn vl_get_rand() -> *mut VlRand;
5051}
5052extern "C" {
5053    /** @name Multi-thread computations
5054 ** @{ */
5055    pub fn vl_get_max_threads() -> vl_size;
5056}
5057extern "C" {
5058    pub fn vl_set_num_threads(n: vl_size);
5059}
5060extern "C" {
5061    pub fn vl_get_thread_limit() -> vl_size;
5062}
5063extern "C" {
5064    pub fn vl_get_last_error() -> ::std::os::raw::c_int;
5065}
5066extern "C" {
5067    pub fn vl_get_last_error_message() -> *const ::std::os::raw::c_char;
5068}
5069extern "C" {
5070    pub fn vl_set_last_error(error: ::std::os::raw::c_int,
5071                             errorMessage: *const ::std::os::raw::c_char, ...)
5072     -> ::std::os::raw::c_int;
5073}
5074extern "C" {
5075    /** ------------------------------------------------------------------
5076 ** @name Memory allocation
5077 ** @{ */
5078    pub fn vl_set_alloc_func(malloc_func:
5079                                 ::std::option::Option<unsafe extern "C" fn(arg1:
5080                                                                                usize)
5081                                                           ->
5082                                                               *mut ::std::os::raw::c_void>,
5083                             realloc_func:
5084                                 ::std::option::Option<unsafe extern "C" fn(arg1:
5085                                                                                *mut ::std::os::raw::c_void,
5086                                                                            arg2:
5087                                                                                usize)
5088                                                           ->
5089                                                               *mut ::std::os::raw::c_void>,
5090                             calloc_func:
5091                                 ::std::option::Option<unsafe extern "C" fn(arg1:
5092                                                                                usize,
5093                                                                            arg2:
5094                                                                                usize)
5095                                                           ->
5096                                                               *mut ::std::os::raw::c_void>,
5097                             free_func:
5098                                 ::std::option::Option<unsafe extern "C" fn(arg1:
5099                                                                                *mut ::std::os::raw::c_void)>);
5100}
5101extern "C" {
5102    pub fn vl_malloc(n: usize) -> *mut ::std::os::raw::c_void;
5103}
5104extern "C" {
5105    pub fn vl_realloc(ptr: *mut ::std::os::raw::c_void, n: usize)
5106     -> *mut ::std::os::raw::c_void;
5107}
5108extern "C" {
5109    pub fn vl_calloc(n: usize, size: usize) -> *mut ::std::os::raw::c_void;
5110}
5111extern "C" {
5112    pub fn vl_memalign(n: usize, size: usize) -> *mut ::std::os::raw::c_void;
5113}
5114extern "C" {
5115    pub fn vl_free(ptr: *mut ::std::os::raw::c_void);
5116}
5117/** ------------------------------------------------------------------
5118 ** @name Logging
5119 ** @{ */
5120/** @brief Customizable printf function pointer type */
5121pub type printf_func_t =
5122    ::std::option::Option<unsafe extern "C" fn(format:
5123                                                   *const ::std::os::raw::c_char, ...)
5124                              -> ::std::os::raw::c_int>;
5125extern "C" {
5126    pub fn vl_set_printf_func(printf_func: printf_func_t);
5127}
5128extern "C" {
5129    pub fn vl_get_printf_func() -> printf_func_t;
5130}
5131extern "C" {
5132    /** ------------------------------------------------------------------
5133 ** @name Measuring time
5134 ** @{
5135 **/
5136    pub fn vl_tic();
5137}
5138extern "C" {
5139    pub fn vl_toc() -> f64;
5140}
5141extern "C" {
5142    pub fn vl_get_cpu_time() -> f64;
5143}
5144pub type float_t = f32;
5145pub type double_t = f64;
5146extern "C" {
5147    pub fn __math_errhandling() -> ::std::os::raw::c_int;
5148}
5149extern "C" {
5150    pub fn __fpclassifyf(arg1: f32) -> ::std::os::raw::c_int;
5151}
5152extern "C" {
5153    pub fn __fpclassifyd(arg1: f64) -> ::std::os::raw::c_int;
5154}
5155extern "C" {
5156    pub fn __fpclassifyl(arg1: f64) -> ::std::os::raw::c_int;
5157}
5158extern "C" {
5159    pub fn acosf(arg1: f32) -> f32;
5160}
5161extern "C" {
5162    pub fn acos(arg1: f64) -> f64;
5163}
5164extern "C" {
5165    pub fn acosl(arg1: f64) -> f64;
5166}
5167extern "C" {
5168    pub fn asinf(arg1: f32) -> f32;
5169}
5170extern "C" {
5171    pub fn asin(arg1: f64) -> f64;
5172}
5173extern "C" {
5174    pub fn asinl(arg1: f64) -> f64;
5175}
5176extern "C" {
5177    pub fn atanf(arg1: f32) -> f32;
5178}
5179extern "C" {
5180    pub fn atan(arg1: f64) -> f64;
5181}
5182extern "C" {
5183    pub fn atanl(arg1: f64) -> f64;
5184}
5185extern "C" {
5186    pub fn atan2f(arg1: f32, arg2: f32) -> f32;
5187}
5188extern "C" {
5189    pub fn atan2(arg1: f64, arg2: f64) -> f64;
5190}
5191extern "C" {
5192    pub fn atan2l(arg1: f64, arg2: f64) -> f64;
5193}
5194extern "C" {
5195    pub fn cosf(arg1: f32) -> f32;
5196}
5197extern "C" {
5198    pub fn cos(arg1: f64) -> f64;
5199}
5200extern "C" {
5201    pub fn cosl(arg1: f64) -> f64;
5202}
5203extern "C" {
5204    pub fn sinf(arg1: f32) -> f32;
5205}
5206extern "C" {
5207    pub fn sin(arg1: f64) -> f64;
5208}
5209extern "C" {
5210    pub fn sinl(arg1: f64) -> f64;
5211}
5212extern "C" {
5213    pub fn tanf(arg1: f32) -> f32;
5214}
5215extern "C" {
5216    pub fn tan(arg1: f64) -> f64;
5217}
5218extern "C" {
5219    pub fn tanl(arg1: f64) -> f64;
5220}
5221extern "C" {
5222    pub fn acoshf(arg1: f32) -> f32;
5223}
5224extern "C" {
5225    pub fn acosh(arg1: f64) -> f64;
5226}
5227extern "C" {
5228    pub fn acoshl(arg1: f64) -> f64;
5229}
5230extern "C" {
5231    pub fn asinhf(arg1: f32) -> f32;
5232}
5233extern "C" {
5234    pub fn asinh(arg1: f64) -> f64;
5235}
5236extern "C" {
5237    pub fn asinhl(arg1: f64) -> f64;
5238}
5239extern "C" {
5240    pub fn atanhf(arg1: f32) -> f32;
5241}
5242extern "C" {
5243    pub fn atanh(arg1: f64) -> f64;
5244}
5245extern "C" {
5246    pub fn atanhl(arg1: f64) -> f64;
5247}
5248extern "C" {
5249    pub fn coshf(arg1: f32) -> f32;
5250}
5251extern "C" {
5252    pub fn cosh(arg1: f64) -> f64;
5253}
5254extern "C" {
5255    pub fn coshl(arg1: f64) -> f64;
5256}
5257extern "C" {
5258    pub fn sinhf(arg1: f32) -> f32;
5259}
5260extern "C" {
5261    pub fn sinh(arg1: f64) -> f64;
5262}
5263extern "C" {
5264    pub fn sinhl(arg1: f64) -> f64;
5265}
5266extern "C" {
5267    pub fn tanhf(arg1: f32) -> f32;
5268}
5269extern "C" {
5270    pub fn tanh(arg1: f64) -> f64;
5271}
5272extern "C" {
5273    pub fn tanhl(arg1: f64) -> f64;
5274}
5275extern "C" {
5276    pub fn expf(arg1: f32) -> f32;
5277}
5278extern "C" {
5279    pub fn exp(arg1: f64) -> f64;
5280}
5281extern "C" {
5282    pub fn expl(arg1: f64) -> f64;
5283}
5284extern "C" {
5285    pub fn exp2f(arg1: f32) -> f32;
5286}
5287extern "C" {
5288    pub fn exp2(arg1: f64) -> f64;
5289}
5290extern "C" {
5291    pub fn exp2l(arg1: f64) -> f64;
5292}
5293extern "C" {
5294    pub fn expm1f(arg1: f32) -> f32;
5295}
5296extern "C" {
5297    pub fn expm1(arg1: f64) -> f64;
5298}
5299extern "C" {
5300    pub fn expm1l(arg1: f64) -> f64;
5301}
5302extern "C" {
5303    pub fn logf(arg1: f32) -> f32;
5304}
5305extern "C" {
5306    pub fn log(arg1: f64) -> f64;
5307}
5308extern "C" {
5309    pub fn logl(arg1: f64) -> f64;
5310}
5311extern "C" {
5312    pub fn log10f(arg1: f32) -> f32;
5313}
5314extern "C" {
5315    pub fn log10(arg1: f64) -> f64;
5316}
5317extern "C" {
5318    pub fn log10l(arg1: f64) -> f64;
5319}
5320extern "C" {
5321    pub fn log2f(arg1: f32) -> f32;
5322}
5323extern "C" {
5324    pub fn log2(arg1: f64) -> f64;
5325}
5326extern "C" {
5327    pub fn log2l(arg1: f64) -> f64;
5328}
5329extern "C" {
5330    pub fn log1pf(arg1: f32) -> f32;
5331}
5332extern "C" {
5333    pub fn log1p(arg1: f64) -> f64;
5334}
5335extern "C" {
5336    pub fn log1pl(arg1: f64) -> f64;
5337}
5338extern "C" {
5339    pub fn logbf(arg1: f32) -> f32;
5340}
5341extern "C" {
5342    pub fn logb(arg1: f64) -> f64;
5343}
5344extern "C" {
5345    pub fn logbl(arg1: f64) -> f64;
5346}
5347extern "C" {
5348    pub fn modff(arg1: f32, arg2: *mut f32) -> f32;
5349}
5350extern "C" {
5351    pub fn modf(arg1: f64, arg2: *mut f64) -> f64;
5352}
5353extern "C" {
5354    pub fn modfl(arg1: f64, arg2: *mut f64) -> f64;
5355}
5356extern "C" {
5357    pub fn ldexpf(arg1: f32, arg2: ::std::os::raw::c_int) -> f32;
5358}
5359extern "C" {
5360    pub fn ldexp(arg1: f64, arg2: ::std::os::raw::c_int) -> f64;
5361}
5362extern "C" {
5363    pub fn ldexpl(arg1: f64, arg2: ::std::os::raw::c_int) -> f64;
5364}
5365extern "C" {
5366    pub fn frexpf(arg1: f32, arg2: *mut ::std::os::raw::c_int) -> f32;
5367}
5368extern "C" {
5369    pub fn frexp(arg1: f64, arg2: *mut ::std::os::raw::c_int) -> f64;
5370}
5371extern "C" {
5372    pub fn frexpl(arg1: f64, arg2: *mut ::std::os::raw::c_int) -> f64;
5373}
5374extern "C" {
5375    pub fn ilogbf(arg1: f32) -> ::std::os::raw::c_int;
5376}
5377extern "C" {
5378    pub fn ilogb(arg1: f64) -> ::std::os::raw::c_int;
5379}
5380extern "C" {
5381    pub fn ilogbl(arg1: f64) -> ::std::os::raw::c_int;
5382}
5383extern "C" {
5384    pub fn scalbnf(arg1: f32, arg2: ::std::os::raw::c_int) -> f32;
5385}
5386extern "C" {
5387    pub fn scalbn(arg1: f64, arg2: ::std::os::raw::c_int) -> f64;
5388}
5389extern "C" {
5390    pub fn scalbnl(arg1: f64, arg2: ::std::os::raw::c_int) -> f64;
5391}
5392extern "C" {
5393    pub fn scalblnf(arg1: f32, arg2: ::std::os::raw::c_long) -> f32;
5394}
5395extern "C" {
5396    pub fn scalbln(arg1: f64, arg2: ::std::os::raw::c_long) -> f64;
5397}
5398extern "C" {
5399    pub fn scalblnl(arg1: f64, arg2: ::std::os::raw::c_long) -> f64;
5400}
5401extern "C" {
5402    pub fn fabsf(arg1: f32) -> f32;
5403}
5404extern "C" {
5405    pub fn fabs(arg1: f64) -> f64;
5406}
5407extern "C" {
5408    pub fn fabsl(arg1: f64) -> f64;
5409}
5410extern "C" {
5411    pub fn cbrtf(arg1: f32) -> f32;
5412}
5413extern "C" {
5414    pub fn cbrt(arg1: f64) -> f64;
5415}
5416extern "C" {
5417    pub fn cbrtl(arg1: f64) -> f64;
5418}
5419extern "C" {
5420    pub fn hypotf(arg1: f32, arg2: f32) -> f32;
5421}
5422extern "C" {
5423    pub fn hypot(arg1: f64, arg2: f64) -> f64;
5424}
5425extern "C" {
5426    pub fn hypotl(arg1: f64, arg2: f64) -> f64;
5427}
5428extern "C" {
5429    pub fn powf(arg1: f32, arg2: f32) -> f32;
5430}
5431extern "C" {
5432    pub fn pow(arg1: f64, arg2: f64) -> f64;
5433}
5434extern "C" {
5435    pub fn powl(arg1: f64, arg2: f64) -> f64;
5436}
5437extern "C" {
5438    pub fn sqrtf(arg1: f32) -> f32;
5439}
5440extern "C" {
5441    pub fn sqrt(arg1: f64) -> f64;
5442}
5443extern "C" {
5444    pub fn sqrtl(arg1: f64) -> f64;
5445}
5446extern "C" {
5447    pub fn erff(arg1: f32) -> f32;
5448}
5449extern "C" {
5450    pub fn erf(arg1: f64) -> f64;
5451}
5452extern "C" {
5453    pub fn erfl(arg1: f64) -> f64;
5454}
5455extern "C" {
5456    pub fn erfcf(arg1: f32) -> f32;
5457}
5458extern "C" {
5459    pub fn erfc(arg1: f64) -> f64;
5460}
5461extern "C" {
5462    pub fn erfcl(arg1: f64) -> f64;
5463}
5464extern "C" {
5465    pub fn lgammaf(arg1: f32) -> f32;
5466}
5467extern "C" {
5468    pub fn lgamma(arg1: f64) -> f64;
5469}
5470extern "C" {
5471    pub fn lgammal(arg1: f64) -> f64;
5472}
5473extern "C" {
5474    pub fn tgammaf(arg1: f32) -> f32;
5475}
5476extern "C" {
5477    pub fn tgamma(arg1: f64) -> f64;
5478}
5479extern "C" {
5480    pub fn tgammal(arg1: f64) -> f64;
5481}
5482extern "C" {
5483    pub fn ceilf(arg1: f32) -> f32;
5484}
5485extern "C" {
5486    pub fn ceil(arg1: f64) -> f64;
5487}
5488extern "C" {
5489    pub fn ceill(arg1: f64) -> f64;
5490}
5491extern "C" {
5492    pub fn floorf(arg1: f32) -> f32;
5493}
5494extern "C" {
5495    pub fn floor(arg1: f64) -> f64;
5496}
5497extern "C" {
5498    pub fn floorl(arg1: f64) -> f64;
5499}
5500extern "C" {
5501    pub fn nearbyintf(arg1: f32) -> f32;
5502}
5503extern "C" {
5504    pub fn nearbyint(arg1: f64) -> f64;
5505}
5506extern "C" {
5507    pub fn nearbyintl(arg1: f64) -> f64;
5508}
5509extern "C" {
5510    pub fn rintf(arg1: f32) -> f32;
5511}
5512extern "C" {
5513    pub fn rint(arg1: f64) -> f64;
5514}
5515extern "C" {
5516    pub fn rintl(arg1: f64) -> f64;
5517}
5518extern "C" {
5519    pub fn lrintf(arg1: f32) -> ::std::os::raw::c_long;
5520}
5521extern "C" {
5522    pub fn lrint(arg1: f64) -> ::std::os::raw::c_long;
5523}
5524extern "C" {
5525    pub fn lrintl(arg1: f64) -> ::std::os::raw::c_long;
5526}
5527extern "C" {
5528    pub fn roundf(arg1: f32) -> f32;
5529}
5530extern "C" {
5531    pub fn round(arg1: f64) -> f64;
5532}
5533extern "C" {
5534    pub fn roundl(arg1: f64) -> f64;
5535}
5536extern "C" {
5537    pub fn lroundf(arg1: f32) -> ::std::os::raw::c_long;
5538}
5539extern "C" {
5540    pub fn lround(arg1: f64) -> ::std::os::raw::c_long;
5541}
5542extern "C" {
5543    pub fn lroundl(arg1: f64) -> ::std::os::raw::c_long;
5544}
5545extern "C" {
5546    pub fn llrintf(arg1: f32) -> ::std::os::raw::c_longlong;
5547}
5548extern "C" {
5549    pub fn llrint(arg1: f64) -> ::std::os::raw::c_longlong;
5550}
5551extern "C" {
5552    pub fn llrintl(arg1: f64) -> ::std::os::raw::c_longlong;
5553}
5554extern "C" {
5555    pub fn llroundf(arg1: f32) -> ::std::os::raw::c_longlong;
5556}
5557extern "C" {
5558    pub fn llround(arg1: f64) -> ::std::os::raw::c_longlong;
5559}
5560extern "C" {
5561    pub fn llroundl(arg1: f64) -> ::std::os::raw::c_longlong;
5562}
5563extern "C" {
5564    pub fn truncf(arg1: f32) -> f32;
5565}
5566extern "C" {
5567    pub fn trunc(arg1: f64) -> f64;
5568}
5569extern "C" {
5570    pub fn truncl(arg1: f64) -> f64;
5571}
5572extern "C" {
5573    pub fn fmodf(arg1: f32, arg2: f32) -> f32;
5574}
5575extern "C" {
5576    pub fn fmod(arg1: f64, arg2: f64) -> f64;
5577}
5578extern "C" {
5579    pub fn fmodl(arg1: f64, arg2: f64) -> f64;
5580}
5581extern "C" {
5582    pub fn remainderf(arg1: f32, arg2: f32) -> f32;
5583}
5584extern "C" {
5585    pub fn remainder(arg1: f64, arg2: f64) -> f64;
5586}
5587extern "C" {
5588    pub fn remainderl(arg1: f64, arg2: f64) -> f64;
5589}
5590extern "C" {
5591    pub fn remquof(arg1: f32, arg2: f32, arg3: *mut ::std::os::raw::c_int)
5592     -> f32;
5593}
5594extern "C" {
5595    pub fn remquo(arg1: f64, arg2: f64, arg3: *mut ::std::os::raw::c_int)
5596     -> f64;
5597}
5598extern "C" {
5599    pub fn remquol(arg1: f64, arg2: f64, arg3: *mut ::std::os::raw::c_int)
5600     -> f64;
5601}
5602extern "C" {
5603    pub fn copysignf(arg1: f32, arg2: f32) -> f32;
5604}
5605extern "C" {
5606    pub fn copysign(arg1: f64, arg2: f64) -> f64;
5607}
5608extern "C" {
5609    pub fn copysignl(arg1: f64, arg2: f64) -> f64;
5610}
5611extern "C" {
5612    pub fn nanf(arg1: *const ::std::os::raw::c_char) -> f32;
5613}
5614extern "C" {
5615    pub fn nan(arg1: *const ::std::os::raw::c_char) -> f64;
5616}
5617extern "C" {
5618    pub fn nanl(arg1: *const ::std::os::raw::c_char) -> f64;
5619}
5620extern "C" {
5621    pub fn nextafterf(arg1: f32, arg2: f32) -> f32;
5622}
5623extern "C" {
5624    pub fn nextafter(arg1: f64, arg2: f64) -> f64;
5625}
5626extern "C" {
5627    pub fn nextafterl(arg1: f64, arg2: f64) -> f64;
5628}
5629extern "C" {
5630    pub fn nexttoward(arg1: f64, arg2: f64) -> f64;
5631}
5632extern "C" {
5633    pub fn nexttowardf(arg1: f32, arg2: f64) -> f32;
5634}
5635extern "C" {
5636    pub fn nexttowardl(arg1: f64, arg2: f64) -> f64;
5637}
5638extern "C" {
5639    pub fn fdimf(arg1: f32, arg2: f32) -> f32;
5640}
5641extern "C" {
5642    pub fn fdim(arg1: f64, arg2: f64) -> f64;
5643}
5644extern "C" {
5645    pub fn fdiml(arg1: f64, arg2: f64) -> f64;
5646}
5647extern "C" {
5648    pub fn fmaxf(arg1: f32, arg2: f32) -> f32;
5649}
5650extern "C" {
5651    pub fn fmax(arg1: f64, arg2: f64) -> f64;
5652}
5653extern "C" {
5654    pub fn fmaxl(arg1: f64, arg2: f64) -> f64;
5655}
5656extern "C" {
5657    pub fn fminf(arg1: f32, arg2: f32) -> f32;
5658}
5659extern "C" {
5660    pub fn fmin(arg1: f64, arg2: f64) -> f64;
5661}
5662extern "C" {
5663    pub fn fminl(arg1: f64, arg2: f64) -> f64;
5664}
5665extern "C" {
5666    pub fn fmaf(arg1: f32, arg2: f32, arg3: f32) -> f32;
5667}
5668extern "C" {
5669    pub fn fma(arg1: f64, arg2: f64, arg3: f64) -> f64;
5670}
5671extern "C" {
5672    pub fn fmal(arg1: f64, arg2: f64, arg3: f64) -> f64;
5673}
5674extern "C" {
5675    pub fn __inff() -> f32;
5676}
5677extern "C" {
5678    pub fn __inf() -> f64;
5679}
5680extern "C" {
5681    pub fn __infl() -> f64;
5682}
5683extern "C" {
5684    pub fn __nan() -> f32;
5685}
5686extern "C" {
5687    pub fn __exp10f(arg1: f32) -> f32;
5688}
5689extern "C" {
5690    pub fn __exp10(arg1: f64) -> f64;
5691}
5692extern "C" {
5693    pub fn __cospif(arg1: f32) -> f32;
5694}
5695extern "C" {
5696    pub fn __cospi(arg1: f64) -> f64;
5697}
5698extern "C" {
5699    pub fn __sinpif(arg1: f32) -> f32;
5700}
5701extern "C" {
5702    pub fn __sinpi(arg1: f64) -> f64;
5703}
5704extern "C" {
5705    pub fn __tanpif(arg1: f32) -> f32;
5706}
5707extern "C" {
5708    pub fn __tanpi(arg1: f64) -> f64;
5709}
5710#[repr(C)]
5711#[derive(Debug, Copy)]
5712pub struct __float2 {
5713    pub __sinval: f32,
5714    pub __cosval: f32,
5715}
5716#[test]
5717fn bindgen_test_layout___float2() {
5718    assert_eq!(::std::mem::size_of::<__float2>() , 8usize , concat ! (
5719               "Size of: " , stringify ! ( __float2 ) ));
5720    assert_eq! (::std::mem::align_of::<__float2>() , 4usize , concat ! (
5721                "Alignment of " , stringify ! ( __float2 ) ));
5722    assert_eq! (unsafe {
5723                & ( * ( 0 as * const __float2 ) ) . __sinval as * const _ as
5724                usize } , 0usize , concat ! (
5725                "Alignment of field: " , stringify ! ( __float2 ) , "::" ,
5726                stringify ! ( __sinval ) ));
5727    assert_eq! (unsafe {
5728                & ( * ( 0 as * const __float2 ) ) . __cosval as * const _ as
5729                usize } , 4usize , concat ! (
5730                "Alignment of field: " , stringify ! ( __float2 ) , "::" ,
5731                stringify ! ( __cosval ) ));
5732}
5733impl Clone for __float2 {
5734    fn clone(&self) -> Self { *self }
5735}
5736#[repr(C)]
5737#[derive(Debug, Copy)]
5738pub struct __double2 {
5739    pub __sinval: f64,
5740    pub __cosval: f64,
5741}
5742#[test]
5743fn bindgen_test_layout___double2() {
5744    assert_eq!(::std::mem::size_of::<__double2>() , 16usize , concat ! (
5745               "Size of: " , stringify ! ( __double2 ) ));
5746    assert_eq! (::std::mem::align_of::<__double2>() , 8usize , concat ! (
5747                "Alignment of " , stringify ! ( __double2 ) ));
5748    assert_eq! (unsafe {
5749                & ( * ( 0 as * const __double2 ) ) . __sinval as * const _ as
5750                usize } , 0usize , concat ! (
5751                "Alignment of field: " , stringify ! ( __double2 ) , "::" ,
5752                stringify ! ( __sinval ) ));
5753    assert_eq! (unsafe {
5754                & ( * ( 0 as * const __double2 ) ) . __cosval as * const _ as
5755                usize } , 8usize , concat ! (
5756                "Alignment of field: " , stringify ! ( __double2 ) , "::" ,
5757                stringify ! ( __cosval ) ));
5758}
5759impl Clone for __double2 {
5760    fn clone(&self) -> Self { *self }
5761}
5762extern "C" {
5763    pub fn __sincosf_stret(arg1: f32) -> __float2;
5764}
5765extern "C" {
5766    pub fn __sincos_stret(arg1: f64) -> __double2;
5767}
5768extern "C" {
5769    pub fn __sincospif_stret(arg1: f32) -> __float2;
5770}
5771extern "C" {
5772    pub fn __sincospi_stret(arg1: f64) -> __double2;
5773}
5774extern "C" {
5775    pub fn j0(arg1: f64) -> f64;
5776}
5777extern "C" {
5778    pub fn j1(arg1: f64) -> f64;
5779}
5780extern "C" {
5781    pub fn jn(arg1: ::std::os::raw::c_int, arg2: f64) -> f64;
5782}
5783extern "C" {
5784    pub fn y0(arg1: f64) -> f64;
5785}
5786extern "C" {
5787    pub fn y1(arg1: f64) -> f64;
5788}
5789extern "C" {
5790    pub fn yn(arg1: ::std::os::raw::c_int, arg2: f64) -> f64;
5791}
5792extern "C" {
5793    pub fn scalb(arg1: f64, arg2: f64) -> f64;
5794}
5795extern "C" {
5796    #[link_name = "signgam"]
5797    pub static mut signgam: ::std::os::raw::c_int;
5798}
5799extern "C" {
5800    pub fn rinttol(arg1: f64) -> ::std::os::raw::c_long;
5801}
5802extern "C" {
5803    pub fn roundtol(arg1: f64) -> ::std::os::raw::c_long;
5804}
5805extern "C" {
5806    pub fn drem(arg1: f64, arg2: f64) -> f64;
5807}
5808extern "C" {
5809    pub fn finite(arg1: f64) -> ::std::os::raw::c_int;
5810}
5811extern "C" {
5812    pub fn gamma(arg1: f64) -> f64;
5813}
5814extern "C" {
5815    pub fn significand(arg1: f64) -> f64;
5816}
5817#[repr(C)]
5818#[derive(Debug, Copy)]
5819pub struct exception {
5820    pub type_: ::std::os::raw::c_int,
5821    pub name: *mut ::std::os::raw::c_char,
5822    pub arg1: f64,
5823    pub arg2: f64,
5824    pub retval: f64,
5825}
5826#[test]
5827fn bindgen_test_layout_exception() {
5828    assert_eq!(::std::mem::size_of::<exception>() , 40usize , concat ! (
5829               "Size of: " , stringify ! ( exception ) ));
5830    assert_eq! (::std::mem::align_of::<exception>() , 8usize , concat ! (
5831                "Alignment of " , stringify ! ( exception ) ));
5832    assert_eq! (unsafe {
5833                & ( * ( 0 as * const exception ) ) . type_ as * const _ as
5834                usize } , 0usize , concat ! (
5835                "Alignment of field: " , stringify ! ( exception ) , "::" ,
5836                stringify ! ( type_ ) ));
5837    assert_eq! (unsafe {
5838                & ( * ( 0 as * const exception ) ) . name as * const _ as
5839                usize } , 8usize , concat ! (
5840                "Alignment of field: " , stringify ! ( exception ) , "::" ,
5841                stringify ! ( name ) ));
5842    assert_eq! (unsafe {
5843                & ( * ( 0 as * const exception ) ) . arg1 as * const _ as
5844                usize } , 16usize , concat ! (
5845                "Alignment of field: " , stringify ! ( exception ) , "::" ,
5846                stringify ! ( arg1 ) ));
5847    assert_eq! (unsafe {
5848                & ( * ( 0 as * const exception ) ) . arg2 as * const _ as
5849                usize } , 24usize , concat ! (
5850                "Alignment of field: " , stringify ! ( exception ) , "::" ,
5851                stringify ! ( arg2 ) ));
5852    assert_eq! (unsafe {
5853                & ( * ( 0 as * const exception ) ) . retval as * const _ as
5854                usize } , 32usize , concat ! (
5855                "Alignment of field: " , stringify ! ( exception ) , "::" ,
5856                stringify ! ( retval ) ));
5857}
5858impl Clone for exception {
5859    fn clone(&self) -> Self { *self }
5860}
5861extern "C" {
5862    pub fn matherr(arg1: *mut exception) -> ::std::os::raw::c_int;
5863}
5864/** @internal @brief IEEE single precision quiet NaN constant */
5865#[repr(C)]
5866#[derive(Debug, Copy)]
5867pub struct _bindgen_ty_1 {
5868    pub raw: __BindgenUnionField<vl_uint32>,
5869    pub value: __BindgenUnionField<f32>,
5870    pub bindgen_union_field: u32,
5871}
5872#[test]
5873fn bindgen_test_layout__bindgen_ty_1() {
5874    assert_eq!(::std::mem::size_of::<_bindgen_ty_1>() , 4usize , concat ! (
5875               "Size of: " , stringify ! ( _bindgen_ty_1 ) ));
5876    assert_eq! (::std::mem::align_of::<_bindgen_ty_1>() , 4usize , concat ! (
5877                "Alignment of " , stringify ! ( _bindgen_ty_1 ) ));
5878    assert_eq! (unsafe {
5879                & ( * ( 0 as * const _bindgen_ty_1 ) ) . raw as * const _ as
5880                usize } , 0usize , concat ! (
5881                "Alignment of field: " , stringify ! ( _bindgen_ty_1 ) , "::"
5882                , stringify ! ( raw ) ));
5883    assert_eq! (unsafe {
5884                & ( * ( 0 as * const _bindgen_ty_1 ) ) . value as * const _ as
5885                usize } , 0usize , concat ! (
5886                "Alignment of field: " , stringify ! ( _bindgen_ty_1 ) , "::"
5887                , stringify ! ( value ) ));
5888}
5889impl Clone for _bindgen_ty_1 {
5890    fn clone(&self) -> Self { *self }
5891}
5892extern "C" {
5893    #[link_name = "vl_nan_f"]
5894    pub static vl_nan_f: _bindgen_ty_1;
5895}
5896/** @internal @brief IEEE single precision infinity constant */
5897#[repr(C)]
5898#[derive(Debug, Copy)]
5899pub struct _bindgen_ty_2 {
5900    pub raw: __BindgenUnionField<vl_uint32>,
5901    pub value: __BindgenUnionField<f32>,
5902    pub bindgen_union_field: u32,
5903}
5904#[test]
5905fn bindgen_test_layout__bindgen_ty_2() {
5906    assert_eq!(::std::mem::size_of::<_bindgen_ty_2>() , 4usize , concat ! (
5907               "Size of: " , stringify ! ( _bindgen_ty_2 ) ));
5908    assert_eq! (::std::mem::align_of::<_bindgen_ty_2>() , 4usize , concat ! (
5909                "Alignment of " , stringify ! ( _bindgen_ty_2 ) ));
5910    assert_eq! (unsafe {
5911                & ( * ( 0 as * const _bindgen_ty_2 ) ) . raw as * const _ as
5912                usize } , 0usize , concat ! (
5913                "Alignment of field: " , stringify ! ( _bindgen_ty_2 ) , "::"
5914                , stringify ! ( raw ) ));
5915    assert_eq! (unsafe {
5916                & ( * ( 0 as * const _bindgen_ty_2 ) ) . value as * const _ as
5917                usize } , 0usize , concat ! (
5918                "Alignment of field: " , stringify ! ( _bindgen_ty_2 ) , "::"
5919                , stringify ! ( value ) ));
5920}
5921impl Clone for _bindgen_ty_2 {
5922    fn clone(&self) -> Self { *self }
5923}
5924extern "C" {
5925    #[link_name = "vl_infinity_f"]
5926    pub static vl_infinity_f: _bindgen_ty_2;
5927}
5928/** @internal @brief IEEE double precision quiet NaN constant */
5929#[repr(C)]
5930#[derive(Debug, Copy)]
5931pub struct _bindgen_ty_3 {
5932    pub raw: __BindgenUnionField<vl_uint64>,
5933    pub value: __BindgenUnionField<f64>,
5934    pub bindgen_union_field: u64,
5935}
5936#[test]
5937fn bindgen_test_layout__bindgen_ty_3() {
5938    assert_eq!(::std::mem::size_of::<_bindgen_ty_3>() , 8usize , concat ! (
5939               "Size of: " , stringify ! ( _bindgen_ty_3 ) ));
5940    assert_eq! (::std::mem::align_of::<_bindgen_ty_3>() , 8usize , concat ! (
5941                "Alignment of " , stringify ! ( _bindgen_ty_3 ) ));
5942    assert_eq! (unsafe {
5943                & ( * ( 0 as * const _bindgen_ty_3 ) ) . raw as * const _ as
5944                usize } , 0usize , concat ! (
5945                "Alignment of field: " , stringify ! ( _bindgen_ty_3 ) , "::"
5946                , stringify ! ( raw ) ));
5947    assert_eq! (unsafe {
5948                & ( * ( 0 as * const _bindgen_ty_3 ) ) . value as * const _ as
5949                usize } , 0usize , concat ! (
5950                "Alignment of field: " , stringify ! ( _bindgen_ty_3 ) , "::"
5951                , stringify ! ( value ) ));
5952}
5953impl Clone for _bindgen_ty_3 {
5954    fn clone(&self) -> Self { *self }
5955}
5956extern "C" {
5957    #[link_name = "vl_nan_d"]
5958    pub static vl_nan_d: _bindgen_ty_3;
5959}
5960/** @internal @brief IEEE double precision infinity constant */
5961#[repr(C)]
5962#[derive(Debug, Copy)]
5963pub struct _bindgen_ty_4 {
5964    pub raw: __BindgenUnionField<vl_uint64>,
5965    pub value: __BindgenUnionField<f64>,
5966    pub bindgen_union_field: u64,
5967}
5968#[test]
5969fn bindgen_test_layout__bindgen_ty_4() {
5970    assert_eq!(::std::mem::size_of::<_bindgen_ty_4>() , 8usize , concat ! (
5971               "Size of: " , stringify ! ( _bindgen_ty_4 ) ));
5972    assert_eq! (::std::mem::align_of::<_bindgen_ty_4>() , 8usize , concat ! (
5973                "Alignment of " , stringify ! ( _bindgen_ty_4 ) ));
5974    assert_eq! (unsafe {
5975                & ( * ( 0 as * const _bindgen_ty_4 ) ) . raw as * const _ as
5976                usize } , 0usize , concat ! (
5977                "Alignment of field: " , stringify ! ( _bindgen_ty_4 ) , "::"
5978                , stringify ! ( raw ) ));
5979    assert_eq! (unsafe {
5980                & ( * ( 0 as * const _bindgen_ty_4 ) ) . value as * const _ as
5981                usize } , 0usize , concat ! (
5982                "Alignment of field: " , stringify ! ( _bindgen_ty_4 ) , "::"
5983                , stringify ! ( value ) ));
5984}
5985impl Clone for _bindgen_ty_4 {
5986    fn clone(&self) -> Self { *self }
5987}
5988extern "C" {
5989    #[link_name = "vl_infinity_d"]
5990    pub static vl_infinity_d: _bindgen_ty_4;
5991}
5992/** @typedef VlFloatVectorComparisonFunction
5993 ** @brief Pointer to a function to compare vectors of floats
5994 **/
5995pub type VlFloatVectorComparisonFunction =
5996    ::std::option::Option<unsafe extern "C" fn(dimension: vl_size,
5997                                               X: *const f32, Y: *const f32)
5998                              -> f32>;
5999/** @typedef VlDoubleVectorComparisonFunction
6000 ** @brief Pointer to a function to compare vectors of doubles
6001 **/
6002pub type VlDoubleVectorComparisonFunction =
6003    ::std::option::Option<unsafe extern "C" fn(dimension: vl_size,
6004                                               X: *const f64, Y: *const f64)
6005                              -> f64>;
6006/** @typedef VlFloatVector3ComparisonFunction
6007 ** @brief Pointer to a function to compare 3 vectors of doubles
6008 **/
6009pub type VlFloatVector3ComparisonFunction =
6010    ::std::option::Option<unsafe extern "C" fn(dimension: vl_size,
6011                                               X: *const f32, Y: *const f32,
6012                                               Z: *const f32) -> f32>;
6013/** @typedef VlDoubleVector3ComparisonFunction
6014 ** @brief Pointer to a function to compare 3 vectors of doubles
6015 **/
6016pub type VlDoubleVector3ComparisonFunction =
6017    ::std::option::Option<unsafe extern "C" fn(dimension: vl_size,
6018                                               X: *const f64, Y: *const f64,
6019                                               Z: *const f64) -> f64>;
6020#[repr(u32)]
6021/** @brief Vector comparison types */
6022#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
6023pub enum _VlVectorComparisonType {
6024    VlDistanceL1 = 0,
6025    VlDistanceL2 = 1,
6026    VlDistanceChi2 = 2,
6027    VlDistanceHellinger = 3,
6028    VlDistanceJS = 4,
6029    VlDistanceMahalanobis = 5,
6030    VlKernelL1 = 6,
6031    VlKernelL2 = 7,
6032    VlKernelChi2 = 8,
6033    VlKernelHellinger = 9,
6034    VlKernelJS = 10,
6035}
6036/** @brief Vector comparison types */
6037pub use self::_VlVectorComparisonType as VlVectorComparisonType;
6038extern "C" {
6039    pub fn vl_get_vector_comparison_function_f(type_: VlVectorComparisonType)
6040     -> VlFloatVectorComparisonFunction;
6041}
6042extern "C" {
6043    pub fn vl_get_vector_comparison_function_d(type_: VlVectorComparisonType)
6044     -> VlDoubleVectorComparisonFunction;
6045}
6046extern "C" {
6047    pub fn vl_get_vector_3_comparison_function_f(type_:
6048                                                     VlVectorComparisonType)
6049     -> VlFloatVector3ComparisonFunction;
6050}
6051extern "C" {
6052    pub fn vl_get_vector_3_comparison_function_d(type_:
6053                                                     VlVectorComparisonType)
6054     -> VlDoubleVector3ComparisonFunction;
6055}
6056extern "C" {
6057    pub fn vl_eval_vector_comparison_on_all_pairs_f(result: *mut f32,
6058                                                    dimension: vl_size,
6059                                                    X: *const f32,
6060                                                    numDataX: vl_size,
6061                                                    Y: *const f32,
6062                                                    numDataY: vl_size,
6063                                                    function:
6064                                                        VlFloatVectorComparisonFunction);
6065}
6066extern "C" {
6067    pub fn vl_eval_vector_comparison_on_all_pairs_d(result: *mut f64,
6068                                                    dimension: vl_size,
6069                                                    X: *const f64,
6070                                                    numDataX: vl_size,
6071                                                    Y: *const f64,
6072                                                    numDataY: vl_size,
6073                                                    function:
6074                                                        VlDoubleVectorComparisonFunction);
6075}
6076extern "C" {
6077    pub fn vl_svd2(S: *mut f64, U: *mut f64, V: *mut f64, M: *const f64);
6078}
6079extern "C" {
6080    pub fn vl_lapack_dlasv2(smin: *mut f64, smax: *mut f64, sv: *mut f64,
6081                            cv: *mut f64, su: *mut f64, cu: *mut f64, f: f64,
6082                            g: f64, h: f64);
6083}
6084extern "C" {
6085    pub fn vl_solve_linear_system_3(x: *mut f64, A: *const f64, b: *const f64)
6086     -> ::std::os::raw::c_int;
6087}
6088extern "C" {
6089    pub fn vl_solve_linear_system_2(x: *mut f64, A: *const f64, b: *const f64)
6090     -> ::std::os::raw::c_int;
6091}
6092extern "C" {
6093    pub fn vl_gaussian_elimination(A: *mut f64, numRows: vl_size,
6094                                   numColumns: vl_size)
6095     -> ::std::os::raw::c_int;
6096}
6097/** ------------------------------------------------------------------
6098 ** @internal
6099 ** @brief AIB algorithm data
6100 **
6101 ** The implementation is quite straightforward, but the way feature
6102 ** values are handled in order to support efficient joins,
6103 ** deletions and re-arrangement needs to be explained. This is
6104 ** achieved by adding a layer of indirection:
6105 ** - Call each feature value (either original or obtained by a join
6106 **   operation) a <em>node</em>. Nodes are identified by numbers.
6107 ** - Call each element of the various arrays (such as VlAIB::Px)
6108 **    an <em>entry</em>.
6109 ** - Entries are dynamically associated to nodes as specified by
6110 **   VlAIB::nodes. For example, @c Px[i] refers to the node @c
6111 **   nodes[i].
6112 **/
6113#[repr(C)]
6114#[derive(Debug, Copy)]
6115pub struct _VlAIB {
6116    /**< Entires to nodes */
6117    pub nodes: *mut vl_uint,
6118    /**< Total number of entries (= # active nodes) */
6119    pub nentries: vl_uint,
6120    /**< Minimum distance to an entry  */
6121    pub beta: *mut f64,
6122    /**< Closest entry */
6123    pub bidx: *mut vl_uint,
6124    /**< List of entries to update */
6125    pub which: *mut vl_uint,
6126    /**< Number of entries to update */
6127    pub nwhich: vl_uint,
6128    /**< Joint probability table */
6129    pub Pcx: *mut f64,
6130    /**< Marginal. */
6131    pub Px: *mut f64,
6132    /**< Marginal. */
6133    pub Pc: *mut f64,
6134    /**< Number of feature values */
6135    pub nvalues: vl_uint,
6136    /**< Number of labels */
6137    pub nlabels: vl_uint,
6138    /**< Array of parents */
6139    pub parents: *mut vl_uint,
6140    /**< Cost of each merge */
6141    pub costs: *mut f64,
6142    pub verbosity: vl_uint,
6143}
6144#[test]
6145fn bindgen_test_layout__VlAIB() {
6146    assert_eq!(::std::mem::size_of::<_VlAIB>() , 104usize , concat ! (
6147               "Size of: " , stringify ! ( _VlAIB ) ));
6148    assert_eq! (::std::mem::align_of::<_VlAIB>() , 8usize , concat ! (
6149                "Alignment of " , stringify ! ( _VlAIB ) ));
6150    assert_eq! (unsafe {
6151                & ( * ( 0 as * const _VlAIB ) ) . nodes as * const _ as usize
6152                } , 0usize , concat ! (
6153                "Alignment of field: " , stringify ! ( _VlAIB ) , "::" ,
6154                stringify ! ( nodes ) ));
6155    assert_eq! (unsafe {
6156                & ( * ( 0 as * const _VlAIB ) ) . nentries as * const _ as
6157                usize } , 8usize , concat ! (
6158                "Alignment of field: " , stringify ! ( _VlAIB ) , "::" ,
6159                stringify ! ( nentries ) ));
6160    assert_eq! (unsafe {
6161                & ( * ( 0 as * const _VlAIB ) ) . beta as * const _ as usize }
6162                , 16usize , concat ! (
6163                "Alignment of field: " , stringify ! ( _VlAIB ) , "::" ,
6164                stringify ! ( beta ) ));
6165    assert_eq! (unsafe {
6166                & ( * ( 0 as * const _VlAIB ) ) . bidx as * const _ as usize }
6167                , 24usize , concat ! (
6168                "Alignment of field: " , stringify ! ( _VlAIB ) , "::" ,
6169                stringify ! ( bidx ) ));
6170    assert_eq! (unsafe {
6171                & ( * ( 0 as * const _VlAIB ) ) . which as * const _ as usize
6172                } , 32usize , concat ! (
6173                "Alignment of field: " , stringify ! ( _VlAIB ) , "::" ,
6174                stringify ! ( which ) ));
6175    assert_eq! (unsafe {
6176                & ( * ( 0 as * const _VlAIB ) ) . nwhich as * const _ as usize
6177                } , 40usize , concat ! (
6178                "Alignment of field: " , stringify ! ( _VlAIB ) , "::" ,
6179                stringify ! ( nwhich ) ));
6180    assert_eq! (unsafe {
6181                & ( * ( 0 as * const _VlAIB ) ) . Pcx as * const _ as usize }
6182                , 48usize , concat ! (
6183                "Alignment of field: " , stringify ! ( _VlAIB ) , "::" ,
6184                stringify ! ( Pcx ) ));
6185    assert_eq! (unsafe {
6186                & ( * ( 0 as * const _VlAIB ) ) . Px as * const _ as usize } ,
6187                56usize , concat ! (
6188                "Alignment of field: " , stringify ! ( _VlAIB ) , "::" ,
6189                stringify ! ( Px ) ));
6190    assert_eq! (unsafe {
6191                & ( * ( 0 as * const _VlAIB ) ) . Pc as * const _ as usize } ,
6192                64usize , concat ! (
6193                "Alignment of field: " , stringify ! ( _VlAIB ) , "::" ,
6194                stringify ! ( Pc ) ));
6195    assert_eq! (unsafe {
6196                & ( * ( 0 as * const _VlAIB ) ) . nvalues as * const _ as
6197                usize } , 72usize , concat ! (
6198                "Alignment of field: " , stringify ! ( _VlAIB ) , "::" ,
6199                stringify ! ( nvalues ) ));
6200    assert_eq! (unsafe {
6201                & ( * ( 0 as * const _VlAIB ) ) . nlabels as * const _ as
6202                usize } , 76usize , concat ! (
6203                "Alignment of field: " , stringify ! ( _VlAIB ) , "::" ,
6204                stringify ! ( nlabels ) ));
6205    assert_eq! (unsafe {
6206                & ( * ( 0 as * const _VlAIB ) ) . parents as * const _ as
6207                usize } , 80usize , concat ! (
6208                "Alignment of field: " , stringify ! ( _VlAIB ) , "::" ,
6209                stringify ! ( parents ) ));
6210    assert_eq! (unsafe {
6211                & ( * ( 0 as * const _VlAIB ) ) . costs as * const _ as usize
6212                } , 88usize , concat ! (
6213                "Alignment of field: " , stringify ! ( _VlAIB ) , "::" ,
6214                stringify ! ( costs ) ));
6215    assert_eq! (unsafe {
6216                & ( * ( 0 as * const _VlAIB ) ) . verbosity as * const _ as
6217                usize } , 96usize , concat ! (
6218                "Alignment of field: " , stringify ! ( _VlAIB ) , "::" ,
6219                stringify ! ( verbosity ) ));
6220}
6221impl Clone for _VlAIB {
6222    fn clone(&self) -> Self { *self }
6223}
6224pub type VlAIB = _VlAIB;
6225extern "C" {
6226    /** @name Create and destroy
6227 ** @{
6228 **/
6229    pub fn vl_aib_new(Pcx: *mut f64, nvalues: vl_uint, nlabels: vl_uint)
6230     -> *mut VlAIB;
6231}
6232extern "C" {
6233    pub fn vl_aib_delete(aib: *mut VlAIB);
6234}
6235extern "C" {
6236    /** @name Process data
6237 ** @{
6238 **/
6239    pub fn vl_aib_process(aib: *mut VlAIB);
6240}
6241/** @brief Numeric array */
6242#[repr(C)]
6243#[derive(Debug, Copy)]
6244pub struct _VlArray {
6245    pub type_: vl_type,
6246    pub isEnvelope: vl_bool,
6247    pub isSparse: vl_bool,
6248    pub numDimensions: vl_size,
6249    pub dimensions: [vl_size; 16usize],
6250    pub data: *mut ::std::os::raw::c_void,
6251    pub rowPointers: *mut ::std::os::raw::c_void,
6252    pub columnPointers: *mut ::std::os::raw::c_void,
6253}
6254#[test]
6255fn bindgen_test_layout__VlArray() {
6256    assert_eq!(::std::mem::size_of::<_VlArray>() , 176usize , concat ! (
6257               "Size of: " , stringify ! ( _VlArray ) ));
6258    assert_eq! (::std::mem::align_of::<_VlArray>() , 8usize , concat ! (
6259                "Alignment of " , stringify ! ( _VlArray ) ));
6260    assert_eq! (unsafe {
6261                & ( * ( 0 as * const _VlArray ) ) . type_ as * const _ as
6262                usize } , 0usize , concat ! (
6263                "Alignment of field: " , stringify ! ( _VlArray ) , "::" ,
6264                stringify ! ( type_ ) ));
6265    assert_eq! (unsafe {
6266                & ( * ( 0 as * const _VlArray ) ) . isEnvelope as * const _ as
6267                usize } , 4usize , concat ! (
6268                "Alignment of field: " , stringify ! ( _VlArray ) , "::" ,
6269                stringify ! ( isEnvelope ) ));
6270    assert_eq! (unsafe {
6271                & ( * ( 0 as * const _VlArray ) ) . isSparse as * const _ as
6272                usize } , 8usize , concat ! (
6273                "Alignment of field: " , stringify ! ( _VlArray ) , "::" ,
6274                stringify ! ( isSparse ) ));
6275    assert_eq! (unsafe {
6276                & ( * ( 0 as * const _VlArray ) ) . numDimensions as * const _
6277                as usize } , 16usize , concat ! (
6278                "Alignment of field: " , stringify ! ( _VlArray ) , "::" ,
6279                stringify ! ( numDimensions ) ));
6280    assert_eq! (unsafe {
6281                & ( * ( 0 as * const _VlArray ) ) . dimensions as * const _ as
6282                usize } , 24usize , concat ! (
6283                "Alignment of field: " , stringify ! ( _VlArray ) , "::" ,
6284                stringify ! ( dimensions ) ));
6285    assert_eq! (unsafe {
6286                & ( * ( 0 as * const _VlArray ) ) . data as * const _ as usize
6287                } , 152usize , concat ! (
6288                "Alignment of field: " , stringify ! ( _VlArray ) , "::" ,
6289                stringify ! ( data ) ));
6290    assert_eq! (unsafe {
6291                & ( * ( 0 as * const _VlArray ) ) . rowPointers as * const _
6292                as usize } , 160usize , concat ! (
6293                "Alignment of field: " , stringify ! ( _VlArray ) , "::" ,
6294                stringify ! ( rowPointers ) ));
6295    assert_eq! (unsafe {
6296                & ( * ( 0 as * const _VlArray ) ) . columnPointers as * const
6297                _ as usize } , 168usize , concat ! (
6298                "Alignment of field: " , stringify ! ( _VlArray ) , "::" ,
6299                stringify ! ( columnPointers ) ));
6300}
6301impl Clone for _VlArray {
6302    fn clone(&self) -> Self { *self }
6303}
6304pub type VlArray = _VlArray;
6305extern "C" {
6306    pub fn vl_array_get_num_elements(self_: *const VlArray) -> vl_size;
6307}
6308extern "C" {
6309    /** @name Constructing and destroying
6310 ** @{ */
6311    pub fn vl_array_init(self_: *mut VlArray, type_: vl_type,
6312                         numDimension: vl_size, dimensions: *const vl_size)
6313     -> *mut VlArray;
6314}
6315extern "C" {
6316    pub fn vl_array_init_envelope(self_: *mut VlArray,
6317                                  data: *mut ::std::os::raw::c_void,
6318                                  type_: vl_type, numDimension: vl_size,
6319                                  dimensions: *const vl_size) -> *mut VlArray;
6320}
6321extern "C" {
6322    pub fn vl_array_init_matrix(self_: *mut VlArray, type_: vl_type,
6323                                numRows: vl_size, numColumns: vl_size)
6324     -> *mut VlArray;
6325}
6326extern "C" {
6327    pub fn vl_array_init_matrix_envelope(self_: *mut VlArray,
6328                                         data: *mut ::std::os::raw::c_void,
6329                                         type_: vl_type, numRows: vl_size,
6330                                         numColumns: vl_size) -> *mut VlArray;
6331}
6332extern "C" {
6333    pub fn vl_array_new(type_: vl_type, numDimension: vl_size,
6334                        dimensions: *const vl_size) -> *mut VlArray;
6335}
6336extern "C" {
6337    pub fn vl_array_new_envelope(data: *mut ::std::os::raw::c_void,
6338                                 type_: vl_type, numDimension: vl_size,
6339                                 dimensions: *const vl_size) -> *mut VlArray;
6340}
6341extern "C" {
6342    pub fn vl_array_new_matrix(type_: vl_type, numRows: vl_size,
6343                               numColumns: vl_size) -> *mut VlArray;
6344}
6345extern "C" {
6346    pub fn vl_array_new_matrix_envelope(data: *mut ::std::os::raw::c_void,
6347                                        type_: vl_type, numRows: vl_size,
6348                                        numColumns: vl_size) -> *mut VlArray;
6349}
6350extern "C" {
6351    pub fn vl_array_dealloc(self_: *mut VlArray);
6352}
6353extern "C" {
6354    pub fn vl_array_delete(self_: *mut VlArray);
6355}
6356pub const VL_PROT_UNKNOWN: _bindgen_ty_5 = _bindgen_ty_5::VL_PROT_UNKNOWN;
6357pub const VL_PROT_NONE: _bindgen_ty_5 = _bindgen_ty_5::VL_PROT_NONE;
6358pub const VL_PROT_ASCII: _bindgen_ty_5 = _bindgen_ty_5::VL_PROT_ASCII;
6359pub const VL_PROT_BINARY: _bindgen_ty_5 = _bindgen_ty_5::VL_PROT_BINARY;
6360#[repr(i32)]
6361/** @brief File protocols */
6362#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
6363pub enum _bindgen_ty_5 {
6364    VL_PROT_UNKNOWN = -1,
6365    VL_PROT_NONE = 0,
6366    VL_PROT_ASCII = 1,
6367    VL_PROT_BINARY = 2,
6368}
6369extern "C" {
6370    pub fn vl_string_copy(destination: *mut ::std::os::raw::c_char,
6371                          destinationSize: vl_size,
6372                          source: *const ::std::os::raw::c_char) -> vl_size;
6373}
6374extern "C" {
6375    pub fn vl_string_copy_sub(destination: *mut ::std::os::raw::c_char,
6376                              destinationSize: vl_size,
6377                              beginning: *const ::std::os::raw::c_char,
6378                              end: *const ::std::os::raw::c_char) -> vl_size;
6379}
6380extern "C" {
6381    pub fn vl_string_parse_protocol(string: *const ::std::os::raw::c_char,
6382                                    protocol: *mut ::std::os::raw::c_int)
6383     -> *mut ::std::os::raw::c_char;
6384}
6385extern "C" {
6386    pub fn vl_string_protocol_name(prot: ::std::os::raw::c_int)
6387     -> *const ::std::os::raw::c_char;
6388}
6389extern "C" {
6390    pub fn vl_string_basename(destination: *mut ::std::os::raw::c_char,
6391                              destinationSize: vl_size,
6392                              source: *const ::std::os::raw::c_char,
6393                              maxNumStrippedExtension: vl_size) -> vl_size;
6394}
6395extern "C" {
6396    pub fn vl_string_replace_wildcard(destination:
6397                                          *mut ::std::os::raw::c_char,
6398                                      destinationSize: vl_size,
6399                                      src: *const ::std::os::raw::c_char,
6400                                      wildcardChar: ::std::os::raw::c_char,
6401                                      escapeChar: ::std::os::raw::c_char,
6402                                      replacement:
6403                                          *const ::std::os::raw::c_char)
6404     -> vl_size;
6405}
6406extern "C" {
6407    pub fn vl_string_find_char_rev(beginning: *const ::std::os::raw::c_char,
6408                                   end: *const ::std::os::raw::c_char,
6409                                   c: ::std::os::raw::c_char)
6410     -> *mut ::std::os::raw::c_char;
6411}
6412extern "C" {
6413    pub fn vl_string_length(string: *const ::std::os::raw::c_char) -> vl_size;
6414}
6415extern "C" {
6416    pub fn vl_string_casei_cmp(string1: *const ::std::os::raw::c_char,
6417                               string2: *const ::std::os::raw::c_char)
6418     -> ::std::os::raw::c_int;
6419}
6420/** @brief Member of an enumeration */
6421#[repr(C)]
6422#[derive(Debug, Copy)]
6423pub struct _VlEnumerator {
6424    /**< enumeration member name. */
6425    pub name: *const ::std::os::raw::c_char,
6426    /**< enumeration member value. */
6427    pub value: vl_index,
6428}
6429#[test]
6430fn bindgen_test_layout__VlEnumerator() {
6431    assert_eq!(::std::mem::size_of::<_VlEnumerator>() , 16usize , concat ! (
6432               "Size of: " , stringify ! ( _VlEnumerator ) ));
6433    assert_eq! (::std::mem::align_of::<_VlEnumerator>() , 8usize , concat ! (
6434                "Alignment of " , stringify ! ( _VlEnumerator ) ));
6435    assert_eq! (unsafe {
6436                & ( * ( 0 as * const _VlEnumerator ) ) . name as * const _ as
6437                usize } , 0usize , concat ! (
6438                "Alignment of field: " , stringify ! ( _VlEnumerator ) , "::"
6439                , stringify ! ( name ) ));
6440    assert_eq! (unsafe {
6441                & ( * ( 0 as * const _VlEnumerator ) ) . value as * const _ as
6442                usize } , 8usize , concat ! (
6443                "Alignment of field: " , stringify ! ( _VlEnumerator ) , "::"
6444                , stringify ! ( value ) ));
6445}
6446impl Clone for _VlEnumerator {
6447    fn clone(&self) -> Self { *self }
6448}
6449pub type VlEnumerator = _VlEnumerator;
6450extern "C" {
6451    pub fn vl_enumeration_get(enumeration: *const VlEnumerator,
6452                              name: *const ::std::os::raw::c_char)
6453     -> *mut VlEnumerator;
6454}
6455extern "C" {
6456    pub fn vl_enumeration_get_casei(enumeration: *const VlEnumerator,
6457                                    name: *const ::std::os::raw::c_char)
6458     -> *mut VlEnumerator;
6459}
6460extern "C" {
6461    pub fn vl_enumeration_get_by_value(enumeration: *const VlEnumerator,
6462                                       value: vl_index) -> *mut VlEnumerator;
6463}
6464extern "C" {
6465    /** @name Image convolution
6466 ** @{ */
6467    pub fn vl_imconvcol_vf(dst: *mut f32, dst_stride: vl_size,
6468                           src: *const f32, src_width: vl_size,
6469                           src_height: vl_size, src_stride: vl_size,
6470                           filt: *const f32, filt_begin: vl_index,
6471                           filt_end: vl_index, step: ::std::os::raw::c_int,
6472                           flags: ::std::os::raw::c_uint);
6473}
6474extern "C" {
6475    pub fn vl_imconvcol_vd(dst: *mut f64, dst_stride: vl_size,
6476                           src: *const f64, src_width: vl_size,
6477                           src_height: vl_size, src_stride: vl_size,
6478                           filt: *const f64, filt_begin: vl_index,
6479                           filt_end: vl_index, step: ::std::os::raw::c_int,
6480                           flags: ::std::os::raw::c_uint);
6481}
6482extern "C" {
6483    pub fn vl_imconvcoltri_f(dest: *mut f32, destStride: vl_size,
6484                             image: *const f32, imageWidth: vl_size,
6485                             imageHeight: vl_size, imageStride: vl_size,
6486                             filterSize: vl_size, step: vl_size,
6487                             flags: ::std::os::raw::c_uint);
6488}
6489extern "C" {
6490    pub fn vl_imconvcoltri_d(dest: *mut f64, destStride: vl_size,
6491                             image: *const f64, imageWidth: vl_size,
6492                             imageHeight: vl_size, imageStride: vl_size,
6493                             filterSize: vl_size, step: vl_size,
6494                             flags: ::std::os::raw::c_uint);
6495}
6496extern "C" {
6497    /** @name Integral image
6498 ** @{ */
6499    pub fn vl_imintegral_f(integral: *mut f32, integralStride: vl_size,
6500                           image: *const f32, imageWidth: vl_size,
6501                           imageHeight: vl_size, imageStride: vl_size);
6502}
6503extern "C" {
6504    pub fn vl_imintegral_d(integral: *mut f64, integralStride: vl_size,
6505                           image: *const f64, imageWidth: vl_size,
6506                           imageHeight: vl_size, imageStride: vl_size);
6507}
6508extern "C" {
6509    pub fn vl_imintegral_i32(integral: *mut vl_int32, integralStride: vl_size,
6510                             image: *const vl_int32, imageWidth: vl_size,
6511                             imageHeight: vl_size, imageStride: vl_size);
6512}
6513extern "C" {
6514    pub fn vl_imintegral_ui32(integral: *mut vl_uint32,
6515                              integralStride: vl_size,
6516                              image: *const vl_uint32, imageWidth: vl_size,
6517                              imageHeight: vl_size, imageStride: vl_size);
6518}
6519extern "C" {
6520    /** @name Distance transform */
6521/** @{ */
6522    pub fn vl_image_distance_transform_d(image: *const f64,
6523                                         numColumns: vl_size,
6524                                         numRows: vl_size,
6525                                         columnStride: vl_size,
6526                                         rowStride: vl_size,
6527                                         distanceTransform: *mut f64,
6528                                         indexes: *mut vl_uindex, coeff: f64,
6529                                         offset: f64);
6530}
6531extern "C" {
6532    pub fn vl_image_distance_transform_f(image: *const f32,
6533                                         numColumns: vl_size,
6534                                         numRows: vl_size,
6535                                         columnStride: vl_size,
6536                                         rowStride: vl_size,
6537                                         distanceTransform: *mut f32,
6538                                         indexes: *mut vl_uindex, coeff: f32,
6539                                         offset: f32);
6540}
6541extern "C" {
6542    /** @name Image smoothing */
6543/** @{ */
6544    pub fn vl_imsmooth_f(smoothed: *mut f32, smoothedStride: vl_size,
6545                         image: *const f32, width: vl_size, height: vl_size,
6546                         stride: vl_size, sigmax: f64, sigmay: f64);
6547}
6548extern "C" {
6549    pub fn vl_imsmooth_d(smoothed: *mut f64, smoothedStride: vl_size,
6550                         image: *const f64, width: vl_size, height: vl_size,
6551                         stride: vl_size, sigmax: f64, sigmay: f64);
6552}
6553extern "C" {
6554    /** @name Image gradients */
6555/** @{ */
6556    pub fn vl_imgradient_polar_f(amplitudeGradient: *mut f32,
6557                                 angleGradient: *mut f32,
6558                                 gradWidthStride: vl_size,
6559                                 gradHeightStride: vl_size, image: *const f32,
6560                                 imageWidth: vl_size, imageHeight: vl_size,
6561                                 imageStride: vl_size);
6562}
6563extern "C" {
6564    pub fn vl_imgradient_polar_d(amplitudeGradient: *mut f64,
6565                                 angleGradient: *mut f64,
6566                                 gradWidthStride: vl_size,
6567                                 gradHeightStride: vl_size, image: *const f64,
6568                                 imageWidth: vl_size, imageHeight: vl_size,
6569                                 imageStride: vl_size);
6570}
6571extern "C" {
6572    pub fn vl_imgradient_f(xGradient: *mut f32, yGradient: *mut f32,
6573                           gradWidthStride: vl_size,
6574                           gradHeightStride: vl_size, image: *const f32,
6575                           imageWidth: vl_size, imageHeight: vl_size,
6576                           imageStride: vl_size);
6577}
6578extern "C" {
6579    pub fn vl_imgradient_d(xGradient: *mut f64, yGradient: *mut f64,
6580                           gradWidthStride: vl_size,
6581                           gradHeightStride: vl_size, image: *const f64,
6582                           imageWidth: vl_size, imageHeight: vl_size,
6583                           imageStride: vl_size);
6584}
6585extern "C" {
6586    pub fn vl_imgradient_polar_f_callback(sourceImage: *const f32,
6587                                          sourceImageWidth:
6588                                              ::std::os::raw::c_int,
6589                                          sourceImageHeight:
6590                                              ::std::os::raw::c_int,
6591                                          dstImage: *mut f32,
6592                                          dstWidth: ::std::os::raw::c_int,
6593                                          dstHeight: ::std::os::raw::c_int,
6594                                          octave: ::std::os::raw::c_int,
6595                                          level: ::std::os::raw::c_int,
6596                                          params:
6597                                              *mut ::std::os::raw::c_void);
6598}
6599/** @brief Geometry of a scale space
6600 **
6601 ** There are a few restrictions on the valid geometrties.
6602 */
6603#[repr(C)]
6604#[derive(Debug, Copy)]
6605pub struct _VlScaleSpaceGeometry {
6606    /**< Image width */
6607    pub width: vl_size,
6608    /**< Image height */
6609    pub height: vl_size,
6610    /**< Index of the fisrt octave */
6611    pub firstOctave: vl_index,
6612    /**< Index of the last octave */
6613    pub lastOctave: vl_index,
6614    /**< Number of octave subdivisions */
6615    pub octaveResolution: vl_size,
6616    /**< Index of the first octave subdivision */
6617    pub octaveFirstSubdivision: vl_index,
6618    /**< Index of the last octave subdivision */
6619    pub octaveLastSubdivision: vl_index,
6620    /**< Base smoothing (smoothing of octave 0, level 0) */
6621    pub baseScale: f64,
6622    /**< Nominal smoothing of the original image */
6623    pub nominalScale: f64,
6624}
6625#[test]
6626fn bindgen_test_layout__VlScaleSpaceGeometry() {
6627    assert_eq!(::std::mem::size_of::<_VlScaleSpaceGeometry>() , 72usize ,
6628               concat ! ( "Size of: " , stringify ! ( _VlScaleSpaceGeometry )
6629               ));
6630    assert_eq! (::std::mem::align_of::<_VlScaleSpaceGeometry>() , 8usize ,
6631                concat ! (
6632                "Alignment of " , stringify ! ( _VlScaleSpaceGeometry ) ));
6633    assert_eq! (unsafe {
6634                & ( * ( 0 as * const _VlScaleSpaceGeometry ) ) . width as *
6635                const _ as usize } , 0usize , concat ! (
6636                "Alignment of field: " , stringify ! ( _VlScaleSpaceGeometry )
6637                , "::" , stringify ! ( width ) ));
6638    assert_eq! (unsafe {
6639                & ( * ( 0 as * const _VlScaleSpaceGeometry ) ) . height as *
6640                const _ as usize } , 8usize , concat ! (
6641                "Alignment of field: " , stringify ! ( _VlScaleSpaceGeometry )
6642                , "::" , stringify ! ( height ) ));
6643    assert_eq! (unsafe {
6644                & ( * ( 0 as * const _VlScaleSpaceGeometry ) ) . firstOctave
6645                as * const _ as usize } , 16usize , concat ! (
6646                "Alignment of field: " , stringify ! ( _VlScaleSpaceGeometry )
6647                , "::" , stringify ! ( firstOctave ) ));
6648    assert_eq! (unsafe {
6649                & ( * ( 0 as * const _VlScaleSpaceGeometry ) ) . lastOctave as
6650                * const _ as usize } , 24usize , concat ! (
6651                "Alignment of field: " , stringify ! ( _VlScaleSpaceGeometry )
6652                , "::" , stringify ! ( lastOctave ) ));
6653    assert_eq! (unsafe {
6654                & ( * ( 0 as * const _VlScaleSpaceGeometry ) ) .
6655                octaveResolution as * const _ as usize } , 32usize , concat !
6656                (
6657                "Alignment of field: " , stringify ! ( _VlScaleSpaceGeometry )
6658                , "::" , stringify ! ( octaveResolution ) ));
6659    assert_eq! (unsafe {
6660                & ( * ( 0 as * const _VlScaleSpaceGeometry ) ) .
6661                octaveFirstSubdivision as * const _ as usize } , 40usize ,
6662                concat ! (
6663                "Alignment of field: " , stringify ! ( _VlScaleSpaceGeometry )
6664                , "::" , stringify ! ( octaveFirstSubdivision ) ));
6665    assert_eq! (unsafe {
6666                & ( * ( 0 as * const _VlScaleSpaceGeometry ) ) .
6667                octaveLastSubdivision as * const _ as usize } , 48usize ,
6668                concat ! (
6669                "Alignment of field: " , stringify ! ( _VlScaleSpaceGeometry )
6670                , "::" , stringify ! ( octaveLastSubdivision ) ));
6671    assert_eq! (unsafe {
6672                & ( * ( 0 as * const _VlScaleSpaceGeometry ) ) . baseScale as
6673                * const _ as usize } , 56usize , concat ! (
6674                "Alignment of field: " , stringify ! ( _VlScaleSpaceGeometry )
6675                , "::" , stringify ! ( baseScale ) ));
6676    assert_eq! (unsafe {
6677                & ( * ( 0 as * const _VlScaleSpaceGeometry ) ) . nominalScale
6678                as * const _ as usize } , 64usize , concat ! (
6679                "Alignment of field: " , stringify ! ( _VlScaleSpaceGeometry )
6680                , "::" , stringify ! ( nominalScale ) ));
6681}
6682impl Clone for _VlScaleSpaceGeometry {
6683    fn clone(&self) -> Self { *self }
6684}
6685pub type VlScaleSpaceGeometry = _VlScaleSpaceGeometry;
6686extern "C" {
6687    pub fn vl_scalespacegeometry_is_equal(a: VlScaleSpaceGeometry,
6688                                          b: VlScaleSpaceGeometry) -> vl_bool;
6689}
6690/** @brief Geometry of one octave of a scale space */
6691#[repr(C)]
6692#[derive(Debug, Copy)]
6693pub struct _VlScaleSpaceOctaveGeometry {
6694    /**< Width (number of pixels) */
6695    pub width: vl_size,
6696    /**< Height (number of pixels) */
6697    pub height: vl_size,
6698    /**< Sampling step (size of a pixel) */
6699    pub step: f64,
6700}
6701#[test]
6702fn bindgen_test_layout__VlScaleSpaceOctaveGeometry() {
6703    assert_eq!(::std::mem::size_of::<_VlScaleSpaceOctaveGeometry>() , 24usize
6704               , concat ! (
6705               "Size of: " , stringify ! ( _VlScaleSpaceOctaveGeometry ) ));
6706    assert_eq! (::std::mem::align_of::<_VlScaleSpaceOctaveGeometry>() , 8usize
6707                , concat ! (
6708                "Alignment of " , stringify ! ( _VlScaleSpaceOctaveGeometry )
6709                ));
6710    assert_eq! (unsafe {
6711                & ( * ( 0 as * const _VlScaleSpaceOctaveGeometry ) ) . width
6712                as * const _ as usize } , 0usize , concat ! (
6713                "Alignment of field: " , stringify ! (
6714                _VlScaleSpaceOctaveGeometry ) , "::" , stringify ! ( width )
6715                ));
6716    assert_eq! (unsafe {
6717                & ( * ( 0 as * const _VlScaleSpaceOctaveGeometry ) ) . height
6718                as * const _ as usize } , 8usize , concat ! (
6719                "Alignment of field: " , stringify ! (
6720                _VlScaleSpaceOctaveGeometry ) , "::" , stringify ! ( height )
6721                ));
6722    assert_eq! (unsafe {
6723                & ( * ( 0 as * const _VlScaleSpaceOctaveGeometry ) ) . step as
6724                * const _ as usize } , 16usize , concat ! (
6725                "Alignment of field: " , stringify ! (
6726                _VlScaleSpaceOctaveGeometry ) , "::" , stringify ! ( step )
6727                ));
6728}
6729impl Clone for _VlScaleSpaceOctaveGeometry {
6730    fn clone(&self) -> Self { *self }
6731}
6732pub type VlScaleSpaceOctaveGeometry = _VlScaleSpaceOctaveGeometry;
6733#[repr(C)]
6734#[derive(Debug, Copy, Clone)]
6735pub struct _VlScaleSpace([u8; 0]);
6736pub type VlScaleSpace = _VlScaleSpace;
6737extern "C" {
6738    /** @name Create and destroy
6739 ** @{
6740 **/
6741    pub fn vl_scalespace_get_default_geometry(width: vl_size, height: vl_size)
6742     -> VlScaleSpaceGeometry;
6743}
6744extern "C" {
6745    pub fn vl_scalespace_new(width: vl_size, height: vl_size)
6746     -> *mut VlScaleSpace;
6747}
6748extern "C" {
6749    pub fn vl_scalespace_new_with_geometry(geom: VlScaleSpaceGeometry)
6750     -> *mut VlScaleSpace;
6751}
6752extern "C" {
6753    pub fn vl_scalespace_new_copy(src: *mut VlScaleSpace)
6754     -> *mut VlScaleSpace;
6755}
6756extern "C" {
6757    pub fn vl_scalespace_new_shallow_copy(src: *mut VlScaleSpace)
6758     -> *mut VlScaleSpace;
6759}
6760extern "C" {
6761    pub fn vl_scalespace_delete(self_: *mut VlScaleSpace);
6762}
6763extern "C" {
6764    /** @name Process data
6765 ** @{
6766 **/
6767    pub fn vl_scalespace_put_image(self_: *mut VlScaleSpace,
6768                                   image: *const f32);
6769}
6770extern "C" {
6771    /** @name Retrieve data and parameters
6772 ** @{
6773 **/
6774    pub fn vl_scalespace_get_geometry(self_: *const VlScaleSpace)
6775     -> VlScaleSpaceGeometry;
6776}
6777extern "C" {
6778    pub fn vl_scalespace_get_octave_geometry(self_: *const VlScaleSpace,
6779                                             o: vl_index)
6780     -> VlScaleSpaceOctaveGeometry;
6781}
6782extern "C" {
6783    pub fn vl_scalespace_get_level(self_: *mut VlScaleSpace, o: vl_index,
6784                                   s: vl_index) -> *mut f32;
6785}
6786extern "C" {
6787    pub fn vl_scalespace_get_level_const(self_: *const VlScaleSpace,
6788                                         o: vl_index, s: vl_index)
6789     -> *const f32;
6790}
6791extern "C" {
6792    pub fn vl_scalespace_get_level_sigma(self_: *const VlScaleSpace,
6793                                         o: vl_index, s: vl_index) -> f64;
6794}
6795pub type va_list = __darwin_va_list;
6796extern "C" {
6797    pub fn renameat(arg1: ::std::os::raw::c_int,
6798                    arg2: *const ::std::os::raw::c_char,
6799                    arg3: ::std::os::raw::c_int,
6800                    arg4: *const ::std::os::raw::c_char)
6801     -> ::std::os::raw::c_int;
6802}
6803pub type fpos_t = __darwin_off_t;
6804#[repr(C)]
6805#[derive(Debug, Copy)]
6806pub struct __sbuf {
6807    pub _base: *mut ::std::os::raw::c_uchar,
6808    pub _size: ::std::os::raw::c_int,
6809}
6810#[test]
6811fn bindgen_test_layout___sbuf() {
6812    assert_eq!(::std::mem::size_of::<__sbuf>() , 16usize , concat ! (
6813               "Size of: " , stringify ! ( __sbuf ) ));
6814    assert_eq! (::std::mem::align_of::<__sbuf>() , 8usize , concat ! (
6815                "Alignment of " , stringify ! ( __sbuf ) ));
6816    assert_eq! (unsafe {
6817                & ( * ( 0 as * const __sbuf ) ) . _base as * const _ as usize
6818                } , 0usize , concat ! (
6819                "Alignment of field: " , stringify ! ( __sbuf ) , "::" ,
6820                stringify ! ( _base ) ));
6821    assert_eq! (unsafe {
6822                & ( * ( 0 as * const __sbuf ) ) . _size as * const _ as usize
6823                } , 8usize , concat ! (
6824                "Alignment of field: " , stringify ! ( __sbuf ) , "::" ,
6825                stringify ! ( _size ) ));
6826}
6827impl Clone for __sbuf {
6828    fn clone(&self) -> Self { *self }
6829}
6830#[repr(C)]
6831#[derive(Debug, Copy, Clone)]
6832pub struct __sFILEX([u8; 0]);
6833#[repr(C)]
6834#[derive(Debug, Copy)]
6835pub struct __sFILE {
6836    pub _p: *mut ::std::os::raw::c_uchar,
6837    pub _r: ::std::os::raw::c_int,
6838    pub _w: ::std::os::raw::c_int,
6839    pub _flags: ::std::os::raw::c_short,
6840    pub _file: ::std::os::raw::c_short,
6841    pub _bf: __sbuf,
6842    pub _lbfsize: ::std::os::raw::c_int,
6843    pub _cookie: *mut ::std::os::raw::c_void,
6844    pub _close: ::std::option::Option<unsafe extern "C" fn(arg1:
6845                                                               *mut ::std::os::raw::c_void)
6846                                          -> ::std::os::raw::c_int>,
6847    pub _read: ::std::option::Option<unsafe extern "C" fn(arg1:
6848                                                              *mut ::std::os::raw::c_void,
6849                                                          arg2:
6850                                                              *mut ::std::os::raw::c_char,
6851                                                          arg3:
6852                                                              ::std::os::raw::c_int)
6853                                         -> ::std::os::raw::c_int>,
6854    pub _seek: ::std::option::Option<unsafe extern "C" fn(arg1:
6855                                                              *mut ::std::os::raw::c_void,
6856                                                          arg2: fpos_t,
6857                                                          arg3:
6858                                                              ::std::os::raw::c_int)
6859                                         -> fpos_t>,
6860    pub _write: ::std::option::Option<unsafe extern "C" fn(arg1:
6861                                                               *mut ::std::os::raw::c_void,
6862                                                           arg2:
6863                                                               *const ::std::os::raw::c_char,
6864                                                           arg3:
6865                                                               ::std::os::raw::c_int)
6866                                          -> ::std::os::raw::c_int>,
6867    pub _ub: __sbuf,
6868    pub _extra: *mut __sFILEX,
6869    pub _ur: ::std::os::raw::c_int,
6870    pub _ubuf: [::std::os::raw::c_uchar; 3usize],
6871    pub _nbuf: [::std::os::raw::c_uchar; 1usize],
6872    pub _lb: __sbuf,
6873    pub _blksize: ::std::os::raw::c_int,
6874    pub _offset: fpos_t,
6875}
6876#[test]
6877fn bindgen_test_layout___sFILE() {
6878    assert_eq!(::std::mem::size_of::<__sFILE>() , 152usize , concat ! (
6879               "Size of: " , stringify ! ( __sFILE ) ));
6880    assert_eq! (::std::mem::align_of::<__sFILE>() , 8usize , concat ! (
6881                "Alignment of " , stringify ! ( __sFILE ) ));
6882    assert_eq! (unsafe {
6883                & ( * ( 0 as * const __sFILE ) ) . _p as * const _ as usize }
6884                , 0usize , concat ! (
6885                "Alignment of field: " , stringify ! ( __sFILE ) , "::" ,
6886                stringify ! ( _p ) ));
6887    assert_eq! (unsafe {
6888                & ( * ( 0 as * const __sFILE ) ) . _r as * const _ as usize }
6889                , 8usize , concat ! (
6890                "Alignment of field: " , stringify ! ( __sFILE ) , "::" ,
6891                stringify ! ( _r ) ));
6892    assert_eq! (unsafe {
6893                & ( * ( 0 as * const __sFILE ) ) . _w as * const _ as usize }
6894                , 12usize , concat ! (
6895                "Alignment of field: " , stringify ! ( __sFILE ) , "::" ,
6896                stringify ! ( _w ) ));
6897    assert_eq! (unsafe {
6898                & ( * ( 0 as * const __sFILE ) ) . _flags as * const _ as
6899                usize } , 16usize , concat ! (
6900                "Alignment of field: " , stringify ! ( __sFILE ) , "::" ,
6901                stringify ! ( _flags ) ));
6902    assert_eq! (unsafe {
6903                & ( * ( 0 as * const __sFILE ) ) . _file as * const _ as usize
6904                } , 18usize , concat ! (
6905                "Alignment of field: " , stringify ! ( __sFILE ) , "::" ,
6906                stringify ! ( _file ) ));
6907    assert_eq! (unsafe {
6908                & ( * ( 0 as * const __sFILE ) ) . _bf as * const _ as usize }
6909                , 24usize , concat ! (
6910                "Alignment of field: " , stringify ! ( __sFILE ) , "::" ,
6911                stringify ! ( _bf ) ));
6912    assert_eq! (unsafe {
6913                & ( * ( 0 as * const __sFILE ) ) . _lbfsize as * const _ as
6914                usize } , 40usize , concat ! (
6915                "Alignment of field: " , stringify ! ( __sFILE ) , "::" ,
6916                stringify ! ( _lbfsize ) ));
6917    assert_eq! (unsafe {
6918                & ( * ( 0 as * const __sFILE ) ) . _cookie as * const _ as
6919                usize } , 48usize , concat ! (
6920                "Alignment of field: " , stringify ! ( __sFILE ) , "::" ,
6921                stringify ! ( _cookie ) ));
6922    assert_eq! (unsafe {
6923                & ( * ( 0 as * const __sFILE ) ) . _close as * const _ as
6924                usize } , 56usize , concat ! (
6925                "Alignment of field: " , stringify ! ( __sFILE ) , "::" ,
6926                stringify ! ( _close ) ));
6927    assert_eq! (unsafe {
6928                & ( * ( 0 as * const __sFILE ) ) . _read as * const _ as usize
6929                } , 64usize , concat ! (
6930                "Alignment of field: " , stringify ! ( __sFILE ) , "::" ,
6931                stringify ! ( _read ) ));
6932    assert_eq! (unsafe {
6933                & ( * ( 0 as * const __sFILE ) ) . _seek as * const _ as usize
6934                } , 72usize , concat ! (
6935                "Alignment of field: " , stringify ! ( __sFILE ) , "::" ,
6936                stringify ! ( _seek ) ));
6937    assert_eq! (unsafe {
6938                & ( * ( 0 as * const __sFILE ) ) . _write as * const _ as
6939                usize } , 80usize , concat ! (
6940                "Alignment of field: " , stringify ! ( __sFILE ) , "::" ,
6941                stringify ! ( _write ) ));
6942    assert_eq! (unsafe {
6943                & ( * ( 0 as * const __sFILE ) ) . _ub as * const _ as usize }
6944                , 88usize , concat ! (
6945                "Alignment of field: " , stringify ! ( __sFILE ) , "::" ,
6946                stringify ! ( _ub ) ));
6947    assert_eq! (unsafe {
6948                & ( * ( 0 as * const __sFILE ) ) . _extra as * const _ as
6949                usize } , 104usize , concat ! (
6950                "Alignment of field: " , stringify ! ( __sFILE ) , "::" ,
6951                stringify ! ( _extra ) ));
6952    assert_eq! (unsafe {
6953                & ( * ( 0 as * const __sFILE ) ) . _ur as * const _ as usize }
6954                , 112usize , concat ! (
6955                "Alignment of field: " , stringify ! ( __sFILE ) , "::" ,
6956                stringify ! ( _ur ) ));
6957    assert_eq! (unsafe {
6958                & ( * ( 0 as * const __sFILE ) ) . _ubuf as * const _ as usize
6959                } , 116usize , concat ! (
6960                "Alignment of field: " , stringify ! ( __sFILE ) , "::" ,
6961                stringify ! ( _ubuf ) ));
6962    assert_eq! (unsafe {
6963                & ( * ( 0 as * const __sFILE ) ) . _nbuf as * const _ as usize
6964                } , 119usize , concat ! (
6965                "Alignment of field: " , stringify ! ( __sFILE ) , "::" ,
6966                stringify ! ( _nbuf ) ));
6967    assert_eq! (unsafe {
6968                & ( * ( 0 as * const __sFILE ) ) . _lb as * const _ as usize }
6969                , 120usize , concat ! (
6970                "Alignment of field: " , stringify ! ( __sFILE ) , "::" ,
6971                stringify ! ( _lb ) ));
6972    assert_eq! (unsafe {
6973                & ( * ( 0 as * const __sFILE ) ) . _blksize as * const _ as
6974                usize } , 136usize , concat ! (
6975                "Alignment of field: " , stringify ! ( __sFILE ) , "::" ,
6976                stringify ! ( _blksize ) ));
6977    assert_eq! (unsafe {
6978                & ( * ( 0 as * const __sFILE ) ) . _offset as * const _ as
6979                usize } , 144usize , concat ! (
6980                "Alignment of field: " , stringify ! ( __sFILE ) , "::" ,
6981                stringify ! ( _offset ) ));
6982}
6983impl Clone for __sFILE {
6984    fn clone(&self) -> Self { *self }
6985}
6986pub type FILE = __sFILE;
6987extern "C" {
6988    #[link_name = "__stdinp"]
6989    pub static mut __stdinp: *mut FILE;
6990}
6991extern "C" {
6992    #[link_name = "__stdoutp"]
6993    pub static mut __stdoutp: *mut FILE;
6994}
6995extern "C" {
6996    #[link_name = "__stderrp"]
6997    pub static mut __stderrp: *mut FILE;
6998}
6999extern "C" {
7000    pub fn clearerr(arg1: *mut FILE);
7001}
7002extern "C" {
7003    pub fn fclose(arg1: *mut FILE) -> ::std::os::raw::c_int;
7004}
7005extern "C" {
7006    pub fn feof(arg1: *mut FILE) -> ::std::os::raw::c_int;
7007}
7008extern "C" {
7009    pub fn ferror(arg1: *mut FILE) -> ::std::os::raw::c_int;
7010}
7011extern "C" {
7012    pub fn fflush(arg1: *mut FILE) -> ::std::os::raw::c_int;
7013}
7014extern "C" {
7015    pub fn fgetc(arg1: *mut FILE) -> ::std::os::raw::c_int;
7016}
7017extern "C" {
7018    pub fn fgetpos(arg1: *mut FILE, arg2: *mut fpos_t)
7019     -> ::std::os::raw::c_int;
7020}
7021extern "C" {
7022    pub fn fgets(arg1: *mut ::std::os::raw::c_char,
7023                 arg2: ::std::os::raw::c_int, arg3: *mut FILE)
7024     -> *mut ::std::os::raw::c_char;
7025}
7026extern "C" {
7027    pub fn fopen(arg1: *const ::std::os::raw::c_char,
7028                 arg2: *const ::std::os::raw::c_char) -> *mut FILE;
7029}
7030extern "C" {
7031    pub fn fprintf(arg1: *mut FILE, arg2: *const ::std::os::raw::c_char, ...)
7032     -> ::std::os::raw::c_int;
7033}
7034extern "C" {
7035    pub fn fputc(arg1: ::std::os::raw::c_int, arg2: *mut FILE)
7036     -> ::std::os::raw::c_int;
7037}
7038extern "C" {
7039    pub fn fputs(arg1: *const ::std::os::raw::c_char, arg2: *mut FILE)
7040     -> ::std::os::raw::c_int;
7041}
7042extern "C" {
7043    pub fn fread(arg1: *mut ::std::os::raw::c_void, arg2: usize, arg3: usize,
7044                 arg4: *mut FILE) -> usize;
7045}
7046extern "C" {
7047    pub fn freopen(arg1: *const ::std::os::raw::c_char,
7048                   arg2: *const ::std::os::raw::c_char, arg3: *mut FILE)
7049     -> *mut FILE;
7050}
7051extern "C" {
7052    pub fn fscanf(arg1: *mut FILE, arg2: *const ::std::os::raw::c_char, ...)
7053     -> ::std::os::raw::c_int;
7054}
7055extern "C" {
7056    pub fn fseek(arg1: *mut FILE, arg2: ::std::os::raw::c_long,
7057                 arg3: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
7058}
7059extern "C" {
7060    pub fn fsetpos(arg1: *mut FILE, arg2: *const fpos_t)
7061     -> ::std::os::raw::c_int;
7062}
7063extern "C" {
7064    pub fn ftell(arg1: *mut FILE) -> ::std::os::raw::c_long;
7065}
7066extern "C" {
7067    pub fn fwrite(arg1: *const ::std::os::raw::c_void, arg2: usize,
7068                  arg3: usize, arg4: *mut FILE) -> usize;
7069}
7070extern "C" {
7071    pub fn getc(arg1: *mut FILE) -> ::std::os::raw::c_int;
7072}
7073extern "C" {
7074    pub fn getchar() -> ::std::os::raw::c_int;
7075}
7076extern "C" {
7077    pub fn gets(arg1: *mut ::std::os::raw::c_char)
7078     -> *mut ::std::os::raw::c_char;
7079}
7080extern "C" {
7081    pub fn perror(arg1: *const ::std::os::raw::c_char);
7082}
7083extern "C" {
7084    pub fn printf(arg1: *const ::std::os::raw::c_char, ...)
7085     -> ::std::os::raw::c_int;
7086}
7087extern "C" {
7088    pub fn putc(arg1: ::std::os::raw::c_int, arg2: *mut FILE)
7089     -> ::std::os::raw::c_int;
7090}
7091extern "C" {
7092    pub fn putchar(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
7093}
7094extern "C" {
7095    pub fn puts(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
7096}
7097extern "C" {
7098    pub fn remove(arg1: *const ::std::os::raw::c_char)
7099     -> ::std::os::raw::c_int;
7100}
7101extern "C" {
7102    pub fn rename(arg1: *const ::std::os::raw::c_char,
7103                  arg2: *const ::std::os::raw::c_char)
7104     -> ::std::os::raw::c_int;
7105}
7106extern "C" {
7107    pub fn rewind(arg1: *mut FILE);
7108}
7109extern "C" {
7110    pub fn scanf(arg1: *const ::std::os::raw::c_char, ...)
7111     -> ::std::os::raw::c_int;
7112}
7113extern "C" {
7114    pub fn setbuf(arg1: *mut FILE, arg2: *mut ::std::os::raw::c_char);
7115}
7116extern "C" {
7117    pub fn setvbuf(arg1: *mut FILE, arg2: *mut ::std::os::raw::c_char,
7118                   arg3: ::std::os::raw::c_int, arg4: usize)
7119     -> ::std::os::raw::c_int;
7120}
7121extern "C" {
7122    pub fn sprintf(arg1: *mut ::std::os::raw::c_char,
7123                   arg2: *const ::std::os::raw::c_char, ...)
7124     -> ::std::os::raw::c_int;
7125}
7126extern "C" {
7127    pub fn sscanf(arg1: *const ::std::os::raw::c_char,
7128                  arg2: *const ::std::os::raw::c_char, ...)
7129     -> ::std::os::raw::c_int;
7130}
7131extern "C" {
7132    pub fn tmpfile() -> *mut FILE;
7133}
7134extern "C" {
7135    pub fn tmpnam(arg1: *mut ::std::os::raw::c_char)
7136     -> *mut ::std::os::raw::c_char;
7137}
7138extern "C" {
7139    pub fn ungetc(arg1: ::std::os::raw::c_int, arg2: *mut FILE)
7140     -> ::std::os::raw::c_int;
7141}
7142extern "C" {
7143    pub fn vfprintf(arg1: *mut FILE, arg2: *const ::std::os::raw::c_char,
7144                    arg3: *mut __va_list_tag) -> ::std::os::raw::c_int;
7145}
7146extern "C" {
7147    pub fn vprintf(arg1: *const ::std::os::raw::c_char,
7148                   arg2: *mut __va_list_tag) -> ::std::os::raw::c_int;
7149}
7150extern "C" {
7151    pub fn vsprintf(arg1: *mut ::std::os::raw::c_char,
7152                    arg2: *const ::std::os::raw::c_char,
7153                    arg3: *mut __va_list_tag) -> ::std::os::raw::c_int;
7154}
7155extern "C" {
7156    pub fn ctermid(arg1: *mut ::std::os::raw::c_char)
7157     -> *mut ::std::os::raw::c_char;
7158}
7159extern "C" {
7160    pub fn fdopen(arg1: ::std::os::raw::c_int,
7161                  arg2: *const ::std::os::raw::c_char) -> *mut FILE;
7162}
7163extern "C" {
7164    pub fn fileno(arg1: *mut FILE) -> ::std::os::raw::c_int;
7165}
7166extern "C" {
7167    pub fn pclose(arg1: *mut FILE) -> ::std::os::raw::c_int;
7168}
7169extern "C" {
7170    pub fn popen(arg1: *const ::std::os::raw::c_char,
7171                 arg2: *const ::std::os::raw::c_char) -> *mut FILE;
7172}
7173extern "C" {
7174    pub fn __srget(arg1: *mut FILE) -> ::std::os::raw::c_int;
7175}
7176extern "C" {
7177    pub fn __svfscanf(arg1: *mut FILE, arg2: *const ::std::os::raw::c_char,
7178                      arg3: *mut __va_list_tag) -> ::std::os::raw::c_int;
7179}
7180extern "C" {
7181    pub fn __swbuf(arg1: ::std::os::raw::c_int, arg2: *mut FILE)
7182     -> ::std::os::raw::c_int;
7183}
7184extern "C" {
7185    pub fn flockfile(arg1: *mut FILE);
7186}
7187extern "C" {
7188    pub fn ftrylockfile(arg1: *mut FILE) -> ::std::os::raw::c_int;
7189}
7190extern "C" {
7191    pub fn funlockfile(arg1: *mut FILE);
7192}
7193extern "C" {
7194    pub fn getc_unlocked(arg1: *mut FILE) -> ::std::os::raw::c_int;
7195}
7196extern "C" {
7197    pub fn getchar_unlocked() -> ::std::os::raw::c_int;
7198}
7199extern "C" {
7200    pub fn putc_unlocked(arg1: ::std::os::raw::c_int, arg2: *mut FILE)
7201     -> ::std::os::raw::c_int;
7202}
7203extern "C" {
7204    pub fn putchar_unlocked(arg1: ::std::os::raw::c_int)
7205     -> ::std::os::raw::c_int;
7206}
7207extern "C" {
7208    pub fn getw(arg1: *mut FILE) -> ::std::os::raw::c_int;
7209}
7210extern "C" {
7211    pub fn putw(arg1: ::std::os::raw::c_int, arg2: *mut FILE)
7212     -> ::std::os::raw::c_int;
7213}
7214extern "C" {
7215    pub fn tempnam(arg1: *const ::std::os::raw::c_char,
7216                   arg2: *const ::std::os::raw::c_char)
7217     -> *mut ::std::os::raw::c_char;
7218}
7219pub type off_t = __darwin_off_t;
7220extern "C" {
7221    pub fn fseeko(arg1: *mut FILE, arg2: off_t, arg3: ::std::os::raw::c_int)
7222     -> ::std::os::raw::c_int;
7223}
7224extern "C" {
7225    pub fn ftello(arg1: *mut FILE) -> off_t;
7226}
7227extern "C" {
7228    pub fn snprintf(arg1: *mut ::std::os::raw::c_char, arg2: usize,
7229                    arg3: *const ::std::os::raw::c_char, ...)
7230     -> ::std::os::raw::c_int;
7231}
7232extern "C" {
7233    pub fn vfscanf(arg1: *mut FILE, arg2: *const ::std::os::raw::c_char,
7234                   arg3: *mut __va_list_tag) -> ::std::os::raw::c_int;
7235}
7236extern "C" {
7237    pub fn vscanf(arg1: *const ::std::os::raw::c_char,
7238                  arg2: *mut __va_list_tag) -> ::std::os::raw::c_int;
7239}
7240extern "C" {
7241    pub fn vsnprintf(arg1: *mut ::std::os::raw::c_char, arg2: usize,
7242                     arg3: *const ::std::os::raw::c_char,
7243                     arg4: *mut __va_list_tag) -> ::std::os::raw::c_int;
7244}
7245extern "C" {
7246    pub fn vsscanf(arg1: *const ::std::os::raw::c_char,
7247                   arg2: *const ::std::os::raw::c_char,
7248                   arg3: *mut __va_list_tag) -> ::std::os::raw::c_int;
7249}
7250extern "C" {
7251    pub fn dprintf(arg1: ::std::os::raw::c_int,
7252                   arg2: *const ::std::os::raw::c_char, ...)
7253     -> ::std::os::raw::c_int;
7254}
7255extern "C" {
7256    pub fn vdprintf(arg1: ::std::os::raw::c_int,
7257                    arg2: *const ::std::os::raw::c_char,
7258                    arg3: *mut __va_list_tag) -> ::std::os::raw::c_int;
7259}
7260extern "C" {
7261    pub fn getdelim(arg1: *mut *mut ::std::os::raw::c_char, arg2: *mut usize,
7262                    arg3: ::std::os::raw::c_int, arg4: *mut FILE) -> isize;
7263}
7264extern "C" {
7265    pub fn getline(arg1: *mut *mut ::std::os::raw::c_char, arg2: *mut usize,
7266                   arg3: *mut FILE) -> isize;
7267}
7268extern "C" {
7269    #[link_name = "sys_nerr"]
7270    pub static sys_nerr: ::std::os::raw::c_int;
7271}
7272extern "C" {
7273    #[link_name = "sys_errlist"]
7274    pub static mut sys_errlist: [*const ::std::os::raw::c_char; 0usize];
7275}
7276extern "C" {
7277    pub fn asprintf(arg1: *mut *mut ::std::os::raw::c_char,
7278                    arg2: *const ::std::os::raw::c_char, ...)
7279     -> ::std::os::raw::c_int;
7280}
7281extern "C" {
7282    pub fn ctermid_r(arg1: *mut ::std::os::raw::c_char)
7283     -> *mut ::std::os::raw::c_char;
7284}
7285extern "C" {
7286    pub fn fgetln(arg1: *mut FILE, arg2: *mut usize)
7287     -> *mut ::std::os::raw::c_char;
7288}
7289extern "C" {
7290    pub fn fmtcheck(arg1: *const ::std::os::raw::c_char,
7291                    arg2: *const ::std::os::raw::c_char)
7292     -> *const ::std::os::raw::c_char;
7293}
7294extern "C" {
7295    pub fn fpurge(arg1: *mut FILE) -> ::std::os::raw::c_int;
7296}
7297extern "C" {
7298    pub fn setbuffer(arg1: *mut FILE, arg2: *mut ::std::os::raw::c_char,
7299                     arg3: ::std::os::raw::c_int);
7300}
7301extern "C" {
7302    pub fn setlinebuf(arg1: *mut FILE) -> ::std::os::raw::c_int;
7303}
7304extern "C" {
7305    pub fn vasprintf(arg1: *mut *mut ::std::os::raw::c_char,
7306                     arg2: *const ::std::os::raw::c_char,
7307                     arg3: *mut __va_list_tag) -> ::std::os::raw::c_int;
7308}
7309extern "C" {
7310    pub fn zopen(arg1: *const ::std::os::raw::c_char,
7311                 arg2: *const ::std::os::raw::c_char,
7312                 arg3: ::std::os::raw::c_int) -> *mut FILE;
7313}
7314extern "C" {
7315    pub fn funopen(arg1: *const ::std::os::raw::c_void,
7316                   arg2:
7317                       ::std::option::Option<unsafe extern "C" fn(arg1:
7318                                                                      *mut ::std::os::raw::c_void,
7319                                                                  arg2:
7320                                                                      *mut ::std::os::raw::c_char,
7321                                                                  arg3:
7322                                                                      ::std::os::raw::c_int)
7323                                                 -> ::std::os::raw::c_int>,
7324                   arg3:
7325                       ::std::option::Option<unsafe extern "C" fn(arg1:
7326                                                                      *mut ::std::os::raw::c_void,
7327                                                                  arg2:
7328                                                                      *const ::std::os::raw::c_char,
7329                                                                  arg3:
7330                                                                      ::std::os::raw::c_int)
7331                                                 -> ::std::os::raw::c_int>,
7332                   arg4:
7333                       ::std::option::Option<unsafe extern "C" fn(arg1:
7334                                                                      *mut ::std::os::raw::c_void,
7335                                                                  arg2:
7336                                                                      fpos_t,
7337                                                                  arg3:
7338                                                                      ::std::os::raw::c_int)
7339                                                 -> fpos_t>,
7340                   arg5:
7341                       ::std::option::Option<unsafe extern "C" fn(arg1:
7342                                                                      *mut ::std::os::raw::c_void)
7343                                                 -> ::std::os::raw::c_int>)
7344     -> *mut FILE;
7345}
7346extern "C" {
7347    pub fn __sprintf_chk(arg1: *mut ::std::os::raw::c_char,
7348                         arg2: ::std::os::raw::c_int, arg3: usize,
7349                         arg4: *const ::std::os::raw::c_char, ...)
7350     -> ::std::os::raw::c_int;
7351}
7352extern "C" {
7353    pub fn __snprintf_chk(arg1: *mut ::std::os::raw::c_char, arg2: usize,
7354                          arg3: ::std::os::raw::c_int, arg4: usize,
7355                          arg5: *const ::std::os::raw::c_char, ...)
7356     -> ::std::os::raw::c_int;
7357}
7358extern "C" {
7359    pub fn __vsprintf_chk(arg1: *mut ::std::os::raw::c_char,
7360                          arg2: ::std::os::raw::c_int, arg3: usize,
7361                          arg4: *const ::std::os::raw::c_char,
7362                          arg5: *mut __va_list_tag) -> ::std::os::raw::c_int;
7363}
7364extern "C" {
7365    pub fn __vsnprintf_chk(arg1: *mut ::std::os::raw::c_char, arg2: usize,
7366                           arg3: ::std::os::raw::c_int, arg4: usize,
7367                           arg5: *const ::std::os::raw::c_char,
7368                           arg6: *mut __va_list_tag) -> ::std::os::raw::c_int;
7369}
7370#[repr(u32)]
7371/** @brief Types of feature frames */
7372#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
7373pub enum _VlFrameType {
7374    VL_FRAMETYPE_DISC = 1,
7375    VL_FRAMETYPE_ORIENTED_DISC = 2,
7376    VL_FRAMETYPE_ELLIPSE = 3,
7377    VL_FRAMETYPE_ORIENTED_ELLIPSE = 4,
7378    VL_FRAMETYPE_NUM = 5,
7379}
7380pub use self::_VlFrameType as VlFrameType;
7381extern "C" {
7382    #[link_name = "vlFrameNames"]
7383    pub static mut vlFrameNames: [*const ::std::os::raw::c_char; 5usize];
7384}
7385extern "C" {
7386    #[link_name = "vlFrameTypes"]
7387    pub static mut vlFrameTypes: [VlEnumerator; 5usize];
7388}
7389/** @brief Disc feature frame */
7390#[repr(C)]
7391#[derive(Debug, Copy)]
7392pub struct _VlFrameDisc {
7393    /**< center x-coordinate */
7394    pub x: f32,
7395    /**< center y-coordinate */
7396    pub y: f32,
7397    /**< radius or scale */
7398    pub sigma: f32,
7399}
7400#[test]
7401fn bindgen_test_layout__VlFrameDisc() {
7402    assert_eq!(::std::mem::size_of::<_VlFrameDisc>() , 12usize , concat ! (
7403               "Size of: " , stringify ! ( _VlFrameDisc ) ));
7404    assert_eq! (::std::mem::align_of::<_VlFrameDisc>() , 4usize , concat ! (
7405                "Alignment of " , stringify ! ( _VlFrameDisc ) ));
7406    assert_eq! (unsafe {
7407                & ( * ( 0 as * const _VlFrameDisc ) ) . x as * const _ as
7408                usize } , 0usize , concat ! (
7409                "Alignment of field: " , stringify ! ( _VlFrameDisc ) , "::" ,
7410                stringify ! ( x ) ));
7411    assert_eq! (unsafe {
7412                & ( * ( 0 as * const _VlFrameDisc ) ) . y as * const _ as
7413                usize } , 4usize , concat ! (
7414                "Alignment of field: " , stringify ! ( _VlFrameDisc ) , "::" ,
7415                stringify ! ( y ) ));
7416    assert_eq! (unsafe {
7417                & ( * ( 0 as * const _VlFrameDisc ) ) . sigma as * const _ as
7418                usize } , 8usize , concat ! (
7419                "Alignment of field: " , stringify ! ( _VlFrameDisc ) , "::" ,
7420                stringify ! ( sigma ) ));
7421}
7422impl Clone for _VlFrameDisc {
7423    fn clone(&self) -> Self { *self }
7424}
7425pub type VlFrameDisc = _VlFrameDisc;
7426/** @brief Oriented disc feature frame
7427 ** An upright frame has @c angle equal to zero.
7428 **/
7429#[repr(C)]
7430#[derive(Debug, Copy)]
7431pub struct _VlFrameOrientedDisc {
7432    /**< center x-coordinate */
7433    pub x: f32,
7434    /**< center y-coordinate */
7435    pub y: f32,
7436    /**< radius or scale */
7437    pub sigma: f32,
7438    /**< rotation angle (rad) */
7439    pub angle: f32,
7440}
7441#[test]
7442fn bindgen_test_layout__VlFrameOrientedDisc() {
7443    assert_eq!(::std::mem::size_of::<_VlFrameOrientedDisc>() , 16usize ,
7444               concat ! ( "Size of: " , stringify ! ( _VlFrameOrientedDisc )
7445               ));
7446    assert_eq! (::std::mem::align_of::<_VlFrameOrientedDisc>() , 4usize ,
7447                concat ! (
7448                "Alignment of " , stringify ! ( _VlFrameOrientedDisc ) ));
7449    assert_eq! (unsafe {
7450                & ( * ( 0 as * const _VlFrameOrientedDisc ) ) . x as * const _
7451                as usize } , 0usize , concat ! (
7452                "Alignment of field: " , stringify ! ( _VlFrameOrientedDisc )
7453                , "::" , stringify ! ( x ) ));
7454    assert_eq! (unsafe {
7455                & ( * ( 0 as * const _VlFrameOrientedDisc ) ) . y as * const _
7456                as usize } , 4usize , concat ! (
7457                "Alignment of field: " , stringify ! ( _VlFrameOrientedDisc )
7458                , "::" , stringify ! ( y ) ));
7459    assert_eq! (unsafe {
7460                & ( * ( 0 as * const _VlFrameOrientedDisc ) ) . sigma as *
7461                const _ as usize } , 8usize , concat ! (
7462                "Alignment of field: " , stringify ! ( _VlFrameOrientedDisc )
7463                , "::" , stringify ! ( sigma ) ));
7464    assert_eq! (unsafe {
7465                & ( * ( 0 as * const _VlFrameOrientedDisc ) ) . angle as *
7466                const _ as usize } , 12usize , concat ! (
7467                "Alignment of field: " , stringify ! ( _VlFrameOrientedDisc )
7468                , "::" , stringify ! ( angle ) ));
7469}
7470impl Clone for _VlFrameOrientedDisc {
7471    fn clone(&self) -> Self { *self }
7472}
7473pub type VlFrameOrientedDisc = _VlFrameOrientedDisc;
7474/** @brief Ellipse feature frame */
7475#[repr(C)]
7476#[derive(Debug, Copy)]
7477pub struct _VlFrameEllipse {
7478    /**< center x-coordinate */
7479    pub x: f32,
7480    /**< center y-coordinate */
7481    pub y: f32,
7482    /**< */
7483    pub e11: f32,
7484    pub e12: f32,
7485    pub e22: f32,
7486}
7487#[test]
7488fn bindgen_test_layout__VlFrameEllipse() {
7489    assert_eq!(::std::mem::size_of::<_VlFrameEllipse>() , 20usize , concat ! (
7490               "Size of: " , stringify ! ( _VlFrameEllipse ) ));
7491    assert_eq! (::std::mem::align_of::<_VlFrameEllipse>() , 4usize , concat !
7492                ( "Alignment of " , stringify ! ( _VlFrameEllipse ) ));
7493    assert_eq! (unsafe {
7494                & ( * ( 0 as * const _VlFrameEllipse ) ) . x as * const _ as
7495                usize } , 0usize , concat ! (
7496                "Alignment of field: " , stringify ! ( _VlFrameEllipse ) ,
7497                "::" , stringify ! ( x ) ));
7498    assert_eq! (unsafe {
7499                & ( * ( 0 as * const _VlFrameEllipse ) ) . y as * const _ as
7500                usize } , 4usize , concat ! (
7501                "Alignment of field: " , stringify ! ( _VlFrameEllipse ) ,
7502                "::" , stringify ! ( y ) ));
7503    assert_eq! (unsafe {
7504                & ( * ( 0 as * const _VlFrameEllipse ) ) . e11 as * const _ as
7505                usize } , 8usize , concat ! (
7506                "Alignment of field: " , stringify ! ( _VlFrameEllipse ) ,
7507                "::" , stringify ! ( e11 ) ));
7508    assert_eq! (unsafe {
7509                & ( * ( 0 as * const _VlFrameEllipse ) ) . e12 as * const _ as
7510                usize } , 12usize , concat ! (
7511                "Alignment of field: " , stringify ! ( _VlFrameEllipse ) ,
7512                "::" , stringify ! ( e12 ) ));
7513    assert_eq! (unsafe {
7514                & ( * ( 0 as * const _VlFrameEllipse ) ) . e22 as * const _ as
7515                usize } , 16usize , concat ! (
7516                "Alignment of field: " , stringify ! ( _VlFrameEllipse ) ,
7517                "::" , stringify ! ( e22 ) ));
7518}
7519impl Clone for _VlFrameEllipse {
7520    fn clone(&self) -> Self { *self }
7521}
7522pub type VlFrameEllipse = _VlFrameEllipse;
7523/** @brief Oriented ellipse feature frame
7524 ** The affine transformation transforms the ellipse shape into
7525 ** a circular region. */
7526#[repr(C)]
7527#[derive(Debug, Copy)]
7528pub struct _VlFrameOrientedEllipse {
7529    /**< center x-coordinate */
7530    pub x: f32,
7531    /**< center y-coordinate */
7532    pub y: f32,
7533    /**< */
7534    pub a11: f32,
7535    pub a12: f32,
7536    pub a21: f32,
7537    pub a22: f32,
7538}
7539#[test]
7540fn bindgen_test_layout__VlFrameOrientedEllipse() {
7541    assert_eq!(::std::mem::size_of::<_VlFrameOrientedEllipse>() , 24usize ,
7542               concat ! (
7543               "Size of: " , stringify ! ( _VlFrameOrientedEllipse ) ));
7544    assert_eq! (::std::mem::align_of::<_VlFrameOrientedEllipse>() , 4usize ,
7545                concat ! (
7546                "Alignment of " , stringify ! ( _VlFrameOrientedEllipse ) ));
7547    assert_eq! (unsafe {
7548                & ( * ( 0 as * const _VlFrameOrientedEllipse ) ) . x as *
7549                const _ as usize } , 0usize , concat ! (
7550                "Alignment of field: " , stringify ! ( _VlFrameOrientedEllipse
7551                ) , "::" , stringify ! ( x ) ));
7552    assert_eq! (unsafe {
7553                & ( * ( 0 as * const _VlFrameOrientedEllipse ) ) . y as *
7554                const _ as usize } , 4usize , concat ! (
7555                "Alignment of field: " , stringify ! ( _VlFrameOrientedEllipse
7556                ) , "::" , stringify ! ( y ) ));
7557    assert_eq! (unsafe {
7558                & ( * ( 0 as * const _VlFrameOrientedEllipse ) ) . a11 as *
7559                const _ as usize } , 8usize , concat ! (
7560                "Alignment of field: " , stringify ! ( _VlFrameOrientedEllipse
7561                ) , "::" , stringify ! ( a11 ) ));
7562    assert_eq! (unsafe {
7563                & ( * ( 0 as * const _VlFrameOrientedEllipse ) ) . a12 as *
7564                const _ as usize } , 12usize , concat ! (
7565                "Alignment of field: " , stringify ! ( _VlFrameOrientedEllipse
7566                ) , "::" , stringify ! ( a12 ) ));
7567    assert_eq! (unsafe {
7568                & ( * ( 0 as * const _VlFrameOrientedEllipse ) ) . a21 as *
7569                const _ as usize } , 16usize , concat ! (
7570                "Alignment of field: " , stringify ! ( _VlFrameOrientedEllipse
7571                ) , "::" , stringify ! ( a21 ) ));
7572    assert_eq! (unsafe {
7573                & ( * ( 0 as * const _VlFrameOrientedEllipse ) ) . a22 as *
7574                const _ as usize } , 20usize , concat ! (
7575                "Alignment of field: " , stringify ! ( _VlFrameOrientedEllipse
7576                ) , "::" , stringify ! ( a22 ) ));
7577}
7578impl Clone for _VlFrameOrientedEllipse {
7579    fn clone(&self) -> Self { *self }
7580}
7581pub type VlFrameOrientedEllipse = _VlFrameOrientedEllipse;
7582/** @brief A detected feature shape and location */
7583#[repr(C)]
7584#[derive(Debug, Copy)]
7585pub struct _VlCovDetFeature {
7586    /**< feature frame. */
7587    pub frame: VlFrameOrientedEllipse,
7588    /**< peak score. */
7589    pub peakScore: f32,
7590    /**< edge score. */
7591    pub edgeScore: f32,
7592    /**< orientation score. */
7593    pub orientationScore: f32,
7594    /**< Laplacian scale score. */
7595    pub laplacianScaleScore: f32,
7596}
7597#[test]
7598fn bindgen_test_layout__VlCovDetFeature() {
7599    assert_eq!(::std::mem::size_of::<_VlCovDetFeature>() , 40usize , concat !
7600               ( "Size of: " , stringify ! ( _VlCovDetFeature ) ));
7601    assert_eq! (::std::mem::align_of::<_VlCovDetFeature>() , 4usize , concat !
7602                ( "Alignment of " , stringify ! ( _VlCovDetFeature ) ));
7603    assert_eq! (unsafe {
7604                & ( * ( 0 as * const _VlCovDetFeature ) ) . frame as * const _
7605                as usize } , 0usize , concat ! (
7606                "Alignment of field: " , stringify ! ( _VlCovDetFeature ) ,
7607                "::" , stringify ! ( frame ) ));
7608    assert_eq! (unsafe {
7609                & ( * ( 0 as * const _VlCovDetFeature ) ) . peakScore as *
7610                const _ as usize } , 24usize , concat ! (
7611                "Alignment of field: " , stringify ! ( _VlCovDetFeature ) ,
7612                "::" , stringify ! ( peakScore ) ));
7613    assert_eq! (unsafe {
7614                & ( * ( 0 as * const _VlCovDetFeature ) ) . edgeScore as *
7615                const _ as usize } , 28usize , concat ! (
7616                "Alignment of field: " , stringify ! ( _VlCovDetFeature ) ,
7617                "::" , stringify ! ( edgeScore ) ));
7618    assert_eq! (unsafe {
7619                & ( * ( 0 as * const _VlCovDetFeature ) ) . orientationScore
7620                as * const _ as usize } , 32usize , concat ! (
7621                "Alignment of field: " , stringify ! ( _VlCovDetFeature ) ,
7622                "::" , stringify ! ( orientationScore ) ));
7623    assert_eq! (unsafe {
7624                & ( * ( 0 as * const _VlCovDetFeature ) ) .
7625                laplacianScaleScore as * const _ as usize } , 36usize , concat
7626                ! (
7627                "Alignment of field: " , stringify ! ( _VlCovDetFeature ) ,
7628                "::" , stringify ! ( laplacianScaleScore ) ));
7629}
7630impl Clone for _VlCovDetFeature {
7631    fn clone(&self) -> Self { *self }
7632}
7633pub type VlCovDetFeature = _VlCovDetFeature;
7634/** @brief A detected feature orientation */
7635#[repr(C)]
7636#[derive(Debug, Copy)]
7637pub struct _VlCovDetFeatureOrientation {
7638    pub angle: f64,
7639    pub score: f64,
7640}
7641#[test]
7642fn bindgen_test_layout__VlCovDetFeatureOrientation() {
7643    assert_eq!(::std::mem::size_of::<_VlCovDetFeatureOrientation>() , 16usize
7644               , concat ! (
7645               "Size of: " , stringify ! ( _VlCovDetFeatureOrientation ) ));
7646    assert_eq! (::std::mem::align_of::<_VlCovDetFeatureOrientation>() , 8usize
7647                , concat ! (
7648                "Alignment of " , stringify ! ( _VlCovDetFeatureOrientation )
7649                ));
7650    assert_eq! (unsafe {
7651                & ( * ( 0 as * const _VlCovDetFeatureOrientation ) ) . angle
7652                as * const _ as usize } , 0usize , concat ! (
7653                "Alignment of field: " , stringify ! (
7654                _VlCovDetFeatureOrientation ) , "::" , stringify ! ( angle )
7655                ));
7656    assert_eq! (unsafe {
7657                & ( * ( 0 as * const _VlCovDetFeatureOrientation ) ) . score
7658                as * const _ as usize } , 8usize , concat ! (
7659                "Alignment of field: " , stringify ! (
7660                _VlCovDetFeatureOrientation ) , "::" , stringify ! ( score )
7661                ));
7662}
7663impl Clone for _VlCovDetFeatureOrientation {
7664    fn clone(&self) -> Self { *self }
7665}
7666pub type VlCovDetFeatureOrientation = _VlCovDetFeatureOrientation;
7667/** @brief A detected feature Laplacian scale */
7668#[repr(C)]
7669#[derive(Debug, Copy)]
7670pub struct _VlCovDetFeatureLaplacianScale {
7671    pub scale: f64,
7672    pub score: f64,
7673}
7674#[test]
7675fn bindgen_test_layout__VlCovDetFeatureLaplacianScale() {
7676    assert_eq!(::std::mem::size_of::<_VlCovDetFeatureLaplacianScale>() ,
7677               16usize , concat ! (
7678               "Size of: " , stringify ! ( _VlCovDetFeatureLaplacianScale )
7679               ));
7680    assert_eq! (::std::mem::align_of::<_VlCovDetFeatureLaplacianScale>() ,
7681                8usize , concat ! (
7682                "Alignment of " , stringify ! ( _VlCovDetFeatureLaplacianScale
7683                ) ));
7684    assert_eq! (unsafe {
7685                & ( * ( 0 as * const _VlCovDetFeatureLaplacianScale ) ) .
7686                scale as * const _ as usize } , 0usize , concat ! (
7687                "Alignment of field: " , stringify ! (
7688                _VlCovDetFeatureLaplacianScale ) , "::" , stringify ! ( scale
7689                ) ));
7690    assert_eq! (unsafe {
7691                & ( * ( 0 as * const _VlCovDetFeatureLaplacianScale ) ) .
7692                score as * const _ as usize } , 8usize , concat ! (
7693                "Alignment of field: " , stringify ! (
7694                _VlCovDetFeatureLaplacianScale ) , "::" , stringify ! ( score
7695                ) ));
7696}
7697impl Clone for _VlCovDetFeatureLaplacianScale {
7698    fn clone(&self) -> Self { *self }
7699}
7700pub type VlCovDetFeatureLaplacianScale = _VlCovDetFeatureLaplacianScale;
7701#[repr(u32)]
7702/** @brief Covariant feature detection method */
7703#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
7704pub enum _VlCovDetMethod {
7705    VL_COVDET_METHOD_DOG = 1,
7706    VL_COVDET_METHOD_HESSIAN = 2,
7707    VL_COVDET_METHOD_HESSIAN_LAPLACE = 3,
7708    VL_COVDET_METHOD_HARRIS_LAPLACE = 4,
7709    VL_COVDET_METHOD_MULTISCALE_HESSIAN = 5,
7710    VL_COVDET_METHOD_MULTISCALE_HARRIS = 6,
7711    VL_COVDET_METHOD_NUM = 7,
7712}
7713pub use self::_VlCovDetMethod as VlCovDetMethod;
7714extern "C" {
7715    #[link_name = "vlCovdetMethods"]
7716    pub static mut vlCovdetMethods: [VlEnumerator; 7usize];
7717}
7718#[repr(C)]
7719#[derive(Debug, Copy, Clone)]
7720pub struct _VlCovDet([u8; 0]);
7721/** @brief Covariant feature detector
7722 ** @see @ref covdet */
7723pub type VlCovDet = _VlCovDet;
7724extern "C" {
7725    /** @name Create and destroy
7726 ** @{ */
7727    pub fn vl_covdet_new(method: VlCovDetMethod) -> *mut VlCovDet;
7728}
7729extern "C" {
7730    pub fn vl_covdet_delete(self_: *mut VlCovDet);
7731}
7732extern "C" {
7733    pub fn vl_covdet_reset(self_: *mut VlCovDet);
7734}
7735extern "C" {
7736    /** @name Process data
7737 ** @{ */
7738    pub fn vl_covdet_put_image(self_: *mut VlCovDet, image: *const f32,
7739                               width: vl_size, height: vl_size)
7740     -> ::std::os::raw::c_int;
7741}
7742extern "C" {
7743    pub fn vl_covdet_detect(self_: *mut VlCovDet);
7744}
7745extern "C" {
7746    pub fn vl_covdet_append_feature(self_: *mut VlCovDet,
7747                                    feature: *const VlCovDetFeature)
7748     -> ::std::os::raw::c_int;
7749}
7750extern "C" {
7751    pub fn vl_covdet_extract_orientations(self_: *mut VlCovDet);
7752}
7753extern "C" {
7754    pub fn vl_covdet_extract_laplacian_scales(self_: *mut VlCovDet);
7755}
7756extern "C" {
7757    pub fn vl_covdet_extract_affine_shape(self_: *mut VlCovDet);
7758}
7759extern "C" {
7760    pub fn vl_covdet_extract_orientations_for_frame(self_: *mut VlCovDet,
7761                                                    numOrientations:
7762                                                        *mut vl_size,
7763                                                    frame:
7764                                                        VlFrameOrientedEllipse)
7765     -> *mut VlCovDetFeatureOrientation;
7766}
7767extern "C" {
7768    pub fn vl_covdet_extract_laplacian_scales_for_frame(self_: *mut VlCovDet,
7769                                                        numScales:
7770                                                            *mut vl_size,
7771                                                        frame:
7772                                                            VlFrameOrientedEllipse)
7773     -> *mut VlCovDetFeatureLaplacianScale;
7774}
7775extern "C" {
7776    pub fn vl_covdet_extract_affine_shape_for_frame(self_: *mut VlCovDet,
7777                                                    adapted:
7778                                                        *mut VlFrameOrientedEllipse,
7779                                                    frame:
7780                                                        VlFrameOrientedEllipse)
7781     -> ::std::os::raw::c_int;
7782}
7783extern "C" {
7784    pub fn vl_covdet_extract_patch_for_frame(self_: *mut VlCovDet,
7785                                             patch: *mut f32,
7786                                             resolution: vl_size, extent: f64,
7787                                             sigma: f64,
7788                                             frame: VlFrameOrientedEllipse)
7789     -> vl_bool;
7790}
7791extern "C" {
7792    pub fn vl_covdet_drop_features_outside(self_: *mut VlCovDet, margin: f64);
7793}
7794extern "C" {
7795    /** @name Retrieve data and parameters
7796 ** @{ */
7797    pub fn vl_covdet_get_num_features(self_: *const VlCovDet) -> vl_size;
7798}
7799extern "C" {
7800    pub fn vl_covdet_get_features(self_: *mut VlCovDet)
7801     -> *mut ::std::os::raw::c_void;
7802}
7803extern "C" {
7804    pub fn vl_covdet_get_first_octave(self_: *const VlCovDet) -> vl_index;
7805}
7806extern "C" {
7807    pub fn vl_covdet_get_octave_resolution(self_: *const VlCovDet) -> vl_size;
7808}
7809extern "C" {
7810    pub fn vl_covdet_get_peak_threshold(self_: *const VlCovDet) -> f64;
7811}
7812extern "C" {
7813    pub fn vl_covdet_get_edge_threshold(self_: *const VlCovDet) -> f64;
7814}
7815extern "C" {
7816    pub fn vl_covdeg_get_laplacian_peak_threshold(self_: *const VlCovDet)
7817     -> f64;
7818}
7819extern "C" {
7820    pub fn vl_covdet_get_transposed(self_: *const VlCovDet) -> vl_bool;
7821}
7822extern "C" {
7823    pub fn vl_covdet_get_gss(self_: *const VlCovDet) -> *mut VlScaleSpace;
7824}
7825extern "C" {
7826    pub fn vl_covdet_get_css(self_: *const VlCovDet) -> *mut VlScaleSpace;
7827}
7828extern "C" {
7829    pub fn vl_covdet_get_aa_accurate_smoothing(self_: *const VlCovDet)
7830     -> vl_bool;
7831}
7832extern "C" {
7833    pub fn vl_covdet_get_laplacian_scales_statistics(self_: *const VlCovDet,
7834                                                     numScales: *mut vl_size)
7835     -> *const vl_size;
7836}
7837extern "C" {
7838    pub fn vl_covdet_get_non_extrema_suppression_threshold(self_:
7839                                                               *const VlCovDet)
7840     -> f64;
7841}
7842extern "C" {
7843    pub fn vl_covdet_get_num_non_extrema_suppressed(self_: *const VlCovDet)
7844     -> vl_size;
7845}
7846extern "C" {
7847    /** @name Set parameters
7848 ** @{ */
7849    pub fn vl_covdet_set_first_octave(self_: *mut VlCovDet, o: vl_index);
7850}
7851extern "C" {
7852    pub fn vl_covdet_set_octave_resolution(self_: *mut VlCovDet, r: vl_size);
7853}
7854extern "C" {
7855    pub fn vl_covdet_set_peak_threshold(self_: *mut VlCovDet,
7856                                        peakThreshold: f64);
7857}
7858extern "C" {
7859    pub fn vl_covdet_set_edge_threshold(self_: *mut VlCovDet,
7860                                        edgeThreshold: f64);
7861}
7862extern "C" {
7863    pub fn vl_covdet_set_laplacian_peak_threshold(self_: *mut VlCovDet,
7864                                                  peakThreshold: f64);
7865}
7866extern "C" {
7867    pub fn vl_covdet_set_transposed(self_: *mut VlCovDet, t: vl_bool);
7868}
7869extern "C" {
7870    pub fn vl_covdet_set_aa_accurate_smoothing(self_: *mut VlCovDet,
7871                                               x: vl_bool);
7872}
7873extern "C" {
7874    pub fn vl_covdet_set_non_extrema_suppression_threshold(self_:
7875                                                               *mut VlCovDet,
7876                                                           x: f64);
7877}
7878/** @brief Dense SIFT keypoint */
7879#[repr(C)]
7880#[derive(Debug, Copy)]
7881pub struct VlDsiftKeypoint_ {
7882    /**< x coordinate */
7883    pub x: f64,
7884    /**< y coordinate */
7885    pub y: f64,
7886    /**< scale */
7887    pub s: f64,
7888    /**< SIFT descriptor norm */
7889    pub norm: f64,
7890}
7891#[test]
7892fn bindgen_test_layout_VlDsiftKeypoint_() {
7893    assert_eq!(::std::mem::size_of::<VlDsiftKeypoint_>() , 32usize , concat !
7894               ( "Size of: " , stringify ! ( VlDsiftKeypoint_ ) ));
7895    assert_eq! (::std::mem::align_of::<VlDsiftKeypoint_>() , 8usize , concat !
7896                ( "Alignment of " , stringify ! ( VlDsiftKeypoint_ ) ));
7897    assert_eq! (unsafe {
7898                & ( * ( 0 as * const VlDsiftKeypoint_ ) ) . x as * const _ as
7899                usize } , 0usize , concat ! (
7900                "Alignment of field: " , stringify ! ( VlDsiftKeypoint_ ) ,
7901                "::" , stringify ! ( x ) ));
7902    assert_eq! (unsafe {
7903                & ( * ( 0 as * const VlDsiftKeypoint_ ) ) . y as * const _ as
7904                usize } , 8usize , concat ! (
7905                "Alignment of field: " , stringify ! ( VlDsiftKeypoint_ ) ,
7906                "::" , stringify ! ( y ) ));
7907    assert_eq! (unsafe {
7908                & ( * ( 0 as * const VlDsiftKeypoint_ ) ) . s as * const _ as
7909                usize } , 16usize , concat ! (
7910                "Alignment of field: " , stringify ! ( VlDsiftKeypoint_ ) ,
7911                "::" , stringify ! ( s ) ));
7912    assert_eq! (unsafe {
7913                & ( * ( 0 as * const VlDsiftKeypoint_ ) ) . norm as * const _
7914                as usize } , 24usize , concat ! (
7915                "Alignment of field: " , stringify ! ( VlDsiftKeypoint_ ) ,
7916                "::" , stringify ! ( norm ) ));
7917}
7918impl Clone for VlDsiftKeypoint_ {
7919    fn clone(&self) -> Self { *self }
7920}
7921pub type VlDsiftKeypoint = VlDsiftKeypoint_;
7922/** @brief Dense SIFT descriptor geometry */
7923#[repr(C)]
7924#[derive(Debug, Copy)]
7925pub struct VlDsiftDescriptorGeometry_ {
7926    /**< number of orientation bins */
7927    pub numBinT: ::std::os::raw::c_int,
7928    /**< number of bins along X */
7929    pub numBinX: ::std::os::raw::c_int,
7930    /**< number of bins along Y */
7931    pub numBinY: ::std::os::raw::c_int,
7932    /**< size of bins along X */
7933    pub binSizeX: ::std::os::raw::c_int,
7934    /**< size of bins along Y */
7935    pub binSizeY: ::std::os::raw::c_int,
7936}
7937#[test]
7938fn bindgen_test_layout_VlDsiftDescriptorGeometry_() {
7939    assert_eq!(::std::mem::size_of::<VlDsiftDescriptorGeometry_>() , 20usize ,
7940               concat ! (
7941               "Size of: " , stringify ! ( VlDsiftDescriptorGeometry_ ) ));
7942    assert_eq! (::std::mem::align_of::<VlDsiftDescriptorGeometry_>() , 4usize
7943                , concat ! (
7944                "Alignment of " , stringify ! ( VlDsiftDescriptorGeometry_ )
7945                ));
7946    assert_eq! (unsafe {
7947                & ( * ( 0 as * const VlDsiftDescriptorGeometry_ ) ) . numBinT
7948                as * const _ as usize } , 0usize , concat ! (
7949                "Alignment of field: " , stringify ! (
7950                VlDsiftDescriptorGeometry_ ) , "::" , stringify ! ( numBinT )
7951                ));
7952    assert_eq! (unsafe {
7953                & ( * ( 0 as * const VlDsiftDescriptorGeometry_ ) ) . numBinX
7954                as * const _ as usize } , 4usize , concat ! (
7955                "Alignment of field: " , stringify ! (
7956                VlDsiftDescriptorGeometry_ ) , "::" , stringify ! ( numBinX )
7957                ));
7958    assert_eq! (unsafe {
7959                & ( * ( 0 as * const VlDsiftDescriptorGeometry_ ) ) . numBinY
7960                as * const _ as usize } , 8usize , concat ! (
7961                "Alignment of field: " , stringify ! (
7962                VlDsiftDescriptorGeometry_ ) , "::" , stringify ! ( numBinY )
7963                ));
7964    assert_eq! (unsafe {
7965                & ( * ( 0 as * const VlDsiftDescriptorGeometry_ ) ) . binSizeX
7966                as * const _ as usize } , 12usize , concat ! (
7967                "Alignment of field: " , stringify ! (
7968                VlDsiftDescriptorGeometry_ ) , "::" , stringify ! ( binSizeX )
7969                ));
7970    assert_eq! (unsafe {
7971                & ( * ( 0 as * const VlDsiftDescriptorGeometry_ ) ) . binSizeY
7972                as * const _ as usize } , 16usize , concat ! (
7973                "Alignment of field: " , stringify ! (
7974                VlDsiftDescriptorGeometry_ ) , "::" , stringify ! ( binSizeY )
7975                ));
7976}
7977impl Clone for VlDsiftDescriptorGeometry_ {
7978    fn clone(&self) -> Self { *self }
7979}
7980pub type VlDsiftDescriptorGeometry = VlDsiftDescriptorGeometry_;
7981/** @brief Dense SIFT filter */
7982#[repr(C)]
7983#[derive(Debug, Copy)]
7984pub struct VlDsiftFilter_ {
7985    /**< @internal @brief image width */
7986    pub imWidth: ::std::os::raw::c_int,
7987    /**< @internal @brief image height */
7988    pub imHeight: ::std::os::raw::c_int,
7989    /**< frame sampling step X */
7990    pub stepX: ::std::os::raw::c_int,
7991    /**< frame sampling step Y */
7992    pub stepY: ::std::os::raw::c_int,
7993    /**< frame bounding box min X */
7994    pub boundMinX: ::std::os::raw::c_int,
7995    /**< frame bounding box min Y */
7996    pub boundMinY: ::std::os::raw::c_int,
7997    /**< frame bounding box max X */
7998    pub boundMaxX: ::std::os::raw::c_int,
7999    /**< frame bounding box max Y */
8000    pub boundMaxY: ::std::os::raw::c_int,
8001    /** descriptor parameters */
8002    pub geom: VlDsiftDescriptorGeometry,
8003    /**< flag: whether to approximate the Gaussian window with a flat one */
8004    pub useFlatWindow: ::std::os::raw::c_int,
8005    /**< size of the Gaussian window */
8006    pub windowSize: f64,
8007    /**< number of sampled frames */
8008    pub numFrames: ::std::os::raw::c_int,
8009    /**< size of a descriptor */
8010    pub descrSize: ::std::os::raw::c_int,
8011    /**< frame buffer */
8012    pub frames: *mut VlDsiftKeypoint,
8013    /**< descriptor buffer */
8014    pub descrs: *mut f32,
8015    /**< buffer allocated: descriptor size */
8016    pub numBinAlloc: ::std::os::raw::c_int,
8017    /**< buffer allocated: number of frames  */
8018    pub numFrameAlloc: ::std::os::raw::c_int,
8019    /**< buffer allocated: number of orientations */
8020    pub numGradAlloc: ::std::os::raw::c_int,
8021    /**< gradient buffer */
8022    pub grads: *mut *mut f32,
8023    /**< temporary buffer */
8024    pub convTmp1: *mut f32,
8025    /**< temporary buffer */
8026    pub convTmp2: *mut f32,
8027}
8028#[test]
8029fn bindgen_test_layout_VlDsiftFilter_() {
8030    assert_eq!(::std::mem::size_of::<VlDsiftFilter_>() , 128usize , concat ! (
8031               "Size of: " , stringify ! ( VlDsiftFilter_ ) ));
8032    assert_eq! (::std::mem::align_of::<VlDsiftFilter_>() , 8usize , concat ! (
8033                "Alignment of " , stringify ! ( VlDsiftFilter_ ) ));
8034    assert_eq! (unsafe {
8035                & ( * ( 0 as * const VlDsiftFilter_ ) ) . imWidth as * const _
8036                as usize } , 0usize , concat ! (
8037                "Alignment of field: " , stringify ! ( VlDsiftFilter_ ) , "::"
8038                , stringify ! ( imWidth ) ));
8039    assert_eq! (unsafe {
8040                & ( * ( 0 as * const VlDsiftFilter_ ) ) . imHeight as * const
8041                _ as usize } , 4usize , concat ! (
8042                "Alignment of field: " , stringify ! ( VlDsiftFilter_ ) , "::"
8043                , stringify ! ( imHeight ) ));
8044    assert_eq! (unsafe {
8045                & ( * ( 0 as * const VlDsiftFilter_ ) ) . stepX as * const _
8046                as usize } , 8usize , concat ! (
8047                "Alignment of field: " , stringify ! ( VlDsiftFilter_ ) , "::"
8048                , stringify ! ( stepX ) ));
8049    assert_eq! (unsafe {
8050                & ( * ( 0 as * const VlDsiftFilter_ ) ) . stepY as * const _
8051                as usize } , 12usize , concat ! (
8052                "Alignment of field: " , stringify ! ( VlDsiftFilter_ ) , "::"
8053                , stringify ! ( stepY ) ));
8054    assert_eq! (unsafe {
8055                & ( * ( 0 as * const VlDsiftFilter_ ) ) . boundMinX as * const
8056                _ as usize } , 16usize , concat ! (
8057                "Alignment of field: " , stringify ! ( VlDsiftFilter_ ) , "::"
8058                , stringify ! ( boundMinX ) ));
8059    assert_eq! (unsafe {
8060                & ( * ( 0 as * const VlDsiftFilter_ ) ) . boundMinY as * const
8061                _ as usize } , 20usize , concat ! (
8062                "Alignment of field: " , stringify ! ( VlDsiftFilter_ ) , "::"
8063                , stringify ! ( boundMinY ) ));
8064    assert_eq! (unsafe {
8065                & ( * ( 0 as * const VlDsiftFilter_ ) ) . boundMaxX as * const
8066                _ as usize } , 24usize , concat ! (
8067                "Alignment of field: " , stringify ! ( VlDsiftFilter_ ) , "::"
8068                , stringify ! ( boundMaxX ) ));
8069    assert_eq! (unsafe {
8070                & ( * ( 0 as * const VlDsiftFilter_ ) ) . boundMaxY as * const
8071                _ as usize } , 28usize , concat ! (
8072                "Alignment of field: " , stringify ! ( VlDsiftFilter_ ) , "::"
8073                , stringify ! ( boundMaxY ) ));
8074    assert_eq! (unsafe {
8075                & ( * ( 0 as * const VlDsiftFilter_ ) ) . geom as * const _ as
8076                usize } , 32usize , concat ! (
8077                "Alignment of field: " , stringify ! ( VlDsiftFilter_ ) , "::"
8078                , stringify ! ( geom ) ));
8079    assert_eq! (unsafe {
8080                & ( * ( 0 as * const VlDsiftFilter_ ) ) . useFlatWindow as *
8081                const _ as usize } , 52usize , concat ! (
8082                "Alignment of field: " , stringify ! ( VlDsiftFilter_ ) , "::"
8083                , stringify ! ( useFlatWindow ) ));
8084    assert_eq! (unsafe {
8085                & ( * ( 0 as * const VlDsiftFilter_ ) ) . windowSize as *
8086                const _ as usize } , 56usize , concat ! (
8087                "Alignment of field: " , stringify ! ( VlDsiftFilter_ ) , "::"
8088                , stringify ! ( windowSize ) ));
8089    assert_eq! (unsafe {
8090                & ( * ( 0 as * const VlDsiftFilter_ ) ) . numFrames as * const
8091                _ as usize } , 64usize , concat ! (
8092                "Alignment of field: " , stringify ! ( VlDsiftFilter_ ) , "::"
8093                , stringify ! ( numFrames ) ));
8094    assert_eq! (unsafe {
8095                & ( * ( 0 as * const VlDsiftFilter_ ) ) . descrSize as * const
8096                _ as usize } , 68usize , concat ! (
8097                "Alignment of field: " , stringify ! ( VlDsiftFilter_ ) , "::"
8098                , stringify ! ( descrSize ) ));
8099    assert_eq! (unsafe {
8100                & ( * ( 0 as * const VlDsiftFilter_ ) ) . frames as * const _
8101                as usize } , 72usize , concat ! (
8102                "Alignment of field: " , stringify ! ( VlDsiftFilter_ ) , "::"
8103                , stringify ! ( frames ) ));
8104    assert_eq! (unsafe {
8105                & ( * ( 0 as * const VlDsiftFilter_ ) ) . descrs as * const _
8106                as usize } , 80usize , concat ! (
8107                "Alignment of field: " , stringify ! ( VlDsiftFilter_ ) , "::"
8108                , stringify ! ( descrs ) ));
8109    assert_eq! (unsafe {
8110                & ( * ( 0 as * const VlDsiftFilter_ ) ) . numBinAlloc as *
8111                const _ as usize } , 88usize , concat ! (
8112                "Alignment of field: " , stringify ! ( VlDsiftFilter_ ) , "::"
8113                , stringify ! ( numBinAlloc ) ));
8114    assert_eq! (unsafe {
8115                & ( * ( 0 as * const VlDsiftFilter_ ) ) . numFrameAlloc as *
8116                const _ as usize } , 92usize , concat ! (
8117                "Alignment of field: " , stringify ! ( VlDsiftFilter_ ) , "::"
8118                , stringify ! ( numFrameAlloc ) ));
8119    assert_eq! (unsafe {
8120                & ( * ( 0 as * const VlDsiftFilter_ ) ) . numGradAlloc as *
8121                const _ as usize } , 96usize , concat ! (
8122                "Alignment of field: " , stringify ! ( VlDsiftFilter_ ) , "::"
8123                , stringify ! ( numGradAlloc ) ));
8124    assert_eq! (unsafe {
8125                & ( * ( 0 as * const VlDsiftFilter_ ) ) . grads as * const _
8126                as usize } , 104usize , concat ! (
8127                "Alignment of field: " , stringify ! ( VlDsiftFilter_ ) , "::"
8128                , stringify ! ( grads ) ));
8129    assert_eq! (unsafe {
8130                & ( * ( 0 as * const VlDsiftFilter_ ) ) . convTmp1 as * const
8131                _ as usize } , 112usize , concat ! (
8132                "Alignment of field: " , stringify ! ( VlDsiftFilter_ ) , "::"
8133                , stringify ! ( convTmp1 ) ));
8134    assert_eq! (unsafe {
8135                & ( * ( 0 as * const VlDsiftFilter_ ) ) . convTmp2 as * const
8136                _ as usize } , 120usize , concat ! (
8137                "Alignment of field: " , stringify ! ( VlDsiftFilter_ ) , "::"
8138                , stringify ! ( convTmp2 ) ));
8139}
8140impl Clone for VlDsiftFilter_ {
8141    fn clone(&self) -> Self { *self }
8142}
8143pub type VlDsiftFilter = VlDsiftFilter_;
8144extern "C" {
8145    pub fn vl_dsift_new(width: ::std::os::raw::c_int,
8146                        height: ::std::os::raw::c_int) -> *mut VlDsiftFilter;
8147}
8148extern "C" {
8149    pub fn vl_dsift_new_basic(width: ::std::os::raw::c_int,
8150                              height: ::std::os::raw::c_int,
8151                              step: ::std::os::raw::c_int,
8152                              binSize: ::std::os::raw::c_int)
8153     -> *mut VlDsiftFilter;
8154}
8155extern "C" {
8156    pub fn vl_dsift_delete(self_: *mut VlDsiftFilter);
8157}
8158extern "C" {
8159    pub fn vl_dsift_process(self_: *mut VlDsiftFilter, im: *const f32);
8160}
8161extern "C" {
8162    /** @} */
8163    pub fn _vl_dsift_update_buffers(self_: *mut VlDsiftFilter);
8164}
8165extern "C" {
8166    /** @} */
8167    pub fn vl_fisher_encode(enc: *mut ::std::os::raw::c_void,
8168                            dataType: vl_type,
8169                            means: *const ::std::os::raw::c_void,
8170                            dimension: vl_size, numClusters: vl_size,
8171                            covariances: *const ::std::os::raw::c_void,
8172                            priors: *const ::std::os::raw::c_void,
8173                            data: *const ::std::os::raw::c_void,
8174                            numData: vl_size, flags: ::std::os::raw::c_int)
8175     -> vl_size;
8176}
8177extern "C" {
8178    #[link_name = "opterr"]
8179    pub static mut opterr: ::std::os::raw::c_int;
8180}
8181extern "C" {
8182    #[link_name = "optind"]
8183    pub static mut optind: ::std::os::raw::c_int;
8184}
8185extern "C" {
8186    #[link_name = "optopt"]
8187    pub static mut optopt: ::std::os::raw::c_int;
8188}
8189extern "C" {
8190    #[link_name = "optarg"]
8191    pub static mut optarg: *mut ::std::os::raw::c_char;
8192}
8193extern "C" {
8194    #[link_name = "optreset"]
8195    pub static mut optreset: ::std::os::raw::c_int;
8196}
8197/** @brief ::getopt_long option */
8198#[repr(C)]
8199#[derive(Debug, Copy)]
8200pub struct option {
8201    /**< option long name */
8202    pub name: *const ::std::os::raw::c_char,
8203    /**< flag indicating whether the option has no, required or optional argument */
8204    pub has_arg: ::std::os::raw::c_int,
8205    /**< pointer to a variable to set (if @c NULL, the value is returned instead) */
8206    pub flag: *mut ::std::os::raw::c_int,
8207    /**< value to set or to return */
8208    pub val: ::std::os::raw::c_int,
8209}
8210#[test]
8211fn bindgen_test_layout_option() {
8212    assert_eq!(::std::mem::size_of::<option>() , 32usize , concat ! (
8213               "Size of: " , stringify ! ( option ) ));
8214    assert_eq! (::std::mem::align_of::<option>() , 8usize , concat ! (
8215                "Alignment of " , stringify ! ( option ) ));
8216    assert_eq! (unsafe {
8217                & ( * ( 0 as * const option ) ) . name as * const _ as usize }
8218                , 0usize , concat ! (
8219                "Alignment of field: " , stringify ! ( option ) , "::" ,
8220                stringify ! ( name ) ));
8221    assert_eq! (unsafe {
8222                & ( * ( 0 as * const option ) ) . has_arg as * const _ as
8223                usize } , 8usize , concat ! (
8224                "Alignment of field: " , stringify ! ( option ) , "::" ,
8225                stringify ! ( has_arg ) ));
8226    assert_eq! (unsafe {
8227                & ( * ( 0 as * const option ) ) . flag as * const _ as usize }
8228                , 16usize , concat ! (
8229                "Alignment of field: " , stringify ! ( option ) , "::" ,
8230                stringify ! ( flag ) ));
8231    assert_eq! (unsafe {
8232                & ( * ( 0 as * const option ) ) . val as * const _ as usize }
8233                , 24usize , concat ! (
8234                "Alignment of field: " , stringify ! ( option ) , "::" ,
8235                stringify ! ( val ) ));
8236}
8237impl Clone for option {
8238    fn clone(&self) -> Self { *self }
8239}
8240extern "C" {
8241    pub fn getopt_long(argc: ::std::os::raw::c_int,
8242                       argv: *const *const ::std::os::raw::c_char,
8243                       optstring: *const ::std::os::raw::c_char,
8244                       longopts: *const option,
8245                       longindex: *mut ::std::os::raw::c_int)
8246     -> ::std::os::raw::c_int;
8247}
8248#[repr(C)]
8249#[derive(Debug, Copy)]
8250pub struct _VlKDTreeNode {
8251    pub parent: vl_uindex,
8252    pub lowerChild: vl_index,
8253    pub upperChild: vl_index,
8254    pub splitDimension: ::std::os::raw::c_uint,
8255    pub splitThreshold: f64,
8256    pub lowerBound: f64,
8257    pub upperBound: f64,
8258}
8259#[test]
8260fn bindgen_test_layout__VlKDTreeNode() {
8261    assert_eq!(::std::mem::size_of::<_VlKDTreeNode>() , 56usize , concat ! (
8262               "Size of: " , stringify ! ( _VlKDTreeNode ) ));
8263    assert_eq! (::std::mem::align_of::<_VlKDTreeNode>() , 8usize , concat ! (
8264                "Alignment of " , stringify ! ( _VlKDTreeNode ) ));
8265    assert_eq! (unsafe {
8266                & ( * ( 0 as * const _VlKDTreeNode ) ) . parent as * const _
8267                as usize } , 0usize , concat ! (
8268                "Alignment of field: " , stringify ! ( _VlKDTreeNode ) , "::"
8269                , stringify ! ( parent ) ));
8270    assert_eq! (unsafe {
8271                & ( * ( 0 as * const _VlKDTreeNode ) ) . lowerChild as * const
8272                _ as usize } , 8usize , concat ! (
8273                "Alignment of field: " , stringify ! ( _VlKDTreeNode ) , "::"
8274                , stringify ! ( lowerChild ) ));
8275    assert_eq! (unsafe {
8276                & ( * ( 0 as * const _VlKDTreeNode ) ) . upperChild as * const
8277                _ as usize } , 16usize , concat ! (
8278                "Alignment of field: " , stringify ! ( _VlKDTreeNode ) , "::"
8279                , stringify ! ( upperChild ) ));
8280    assert_eq! (unsafe {
8281                & ( * ( 0 as * const _VlKDTreeNode ) ) . splitDimension as *
8282                const _ as usize } , 24usize , concat ! (
8283                "Alignment of field: " , stringify ! ( _VlKDTreeNode ) , "::"
8284                , stringify ! ( splitDimension ) ));
8285    assert_eq! (unsafe {
8286                & ( * ( 0 as * const _VlKDTreeNode ) ) . splitThreshold as *
8287                const _ as usize } , 32usize , concat ! (
8288                "Alignment of field: " , stringify ! ( _VlKDTreeNode ) , "::"
8289                , stringify ! ( splitThreshold ) ));
8290    assert_eq! (unsafe {
8291                & ( * ( 0 as * const _VlKDTreeNode ) ) . lowerBound as * const
8292                _ as usize } , 40usize , concat ! (
8293                "Alignment of field: " , stringify ! ( _VlKDTreeNode ) , "::"
8294                , stringify ! ( lowerBound ) ));
8295    assert_eq! (unsafe {
8296                & ( * ( 0 as * const _VlKDTreeNode ) ) . upperBound as * const
8297                _ as usize } , 48usize , concat ! (
8298                "Alignment of field: " , stringify ! ( _VlKDTreeNode ) , "::"
8299                , stringify ! ( upperBound ) ));
8300}
8301impl Clone for _VlKDTreeNode {
8302    fn clone(&self) -> Self { *self }
8303}
8304pub type VlKDTreeNode = _VlKDTreeNode;
8305#[repr(C)]
8306#[derive(Debug, Copy)]
8307pub struct _VlKDTreeSplitDimension {
8308    pub dimension: ::std::os::raw::c_uint,
8309    pub mean: f64,
8310    pub variance: f64,
8311}
8312#[test]
8313fn bindgen_test_layout__VlKDTreeSplitDimension() {
8314    assert_eq!(::std::mem::size_of::<_VlKDTreeSplitDimension>() , 24usize ,
8315               concat ! (
8316               "Size of: " , stringify ! ( _VlKDTreeSplitDimension ) ));
8317    assert_eq! (::std::mem::align_of::<_VlKDTreeSplitDimension>() , 8usize ,
8318                concat ! (
8319                "Alignment of " , stringify ! ( _VlKDTreeSplitDimension ) ));
8320    assert_eq! (unsafe {
8321                & ( * ( 0 as * const _VlKDTreeSplitDimension ) ) . dimension
8322                as * const _ as usize } , 0usize , concat ! (
8323                "Alignment of field: " , stringify ! ( _VlKDTreeSplitDimension
8324                ) , "::" , stringify ! ( dimension ) ));
8325    assert_eq! (unsafe {
8326                & ( * ( 0 as * const _VlKDTreeSplitDimension ) ) . mean as *
8327                const _ as usize } , 8usize , concat ! (
8328                "Alignment of field: " , stringify ! ( _VlKDTreeSplitDimension
8329                ) , "::" , stringify ! ( mean ) ));
8330    assert_eq! (unsafe {
8331                & ( * ( 0 as * const _VlKDTreeSplitDimension ) ) . variance as
8332                * const _ as usize } , 16usize , concat ! (
8333                "Alignment of field: " , stringify ! ( _VlKDTreeSplitDimension
8334                ) , "::" , stringify ! ( variance ) ));
8335}
8336impl Clone for _VlKDTreeSplitDimension {
8337    fn clone(&self) -> Self { *self }
8338}
8339pub type VlKDTreeSplitDimension = _VlKDTreeSplitDimension;
8340#[repr(C)]
8341#[derive(Debug, Copy)]
8342pub struct _VlKDTreeDataIndexEntry {
8343    pub index: vl_index,
8344    pub value: f64,
8345}
8346#[test]
8347fn bindgen_test_layout__VlKDTreeDataIndexEntry() {
8348    assert_eq!(::std::mem::size_of::<_VlKDTreeDataIndexEntry>() , 16usize ,
8349               concat ! (
8350               "Size of: " , stringify ! ( _VlKDTreeDataIndexEntry ) ));
8351    assert_eq! (::std::mem::align_of::<_VlKDTreeDataIndexEntry>() , 8usize ,
8352                concat ! (
8353                "Alignment of " , stringify ! ( _VlKDTreeDataIndexEntry ) ));
8354    assert_eq! (unsafe {
8355                & ( * ( 0 as * const _VlKDTreeDataIndexEntry ) ) . index as *
8356                const _ as usize } , 0usize , concat ! (
8357                "Alignment of field: " , stringify ! ( _VlKDTreeDataIndexEntry
8358                ) , "::" , stringify ! ( index ) ));
8359    assert_eq! (unsafe {
8360                & ( * ( 0 as * const _VlKDTreeDataIndexEntry ) ) . value as *
8361                const _ as usize } , 8usize , concat ! (
8362                "Alignment of field: " , stringify ! ( _VlKDTreeDataIndexEntry
8363                ) , "::" , stringify ! ( value ) ));
8364}
8365impl Clone for _VlKDTreeDataIndexEntry {
8366    fn clone(&self) -> Self { *self }
8367}
8368pub type VlKDTreeDataIndexEntry = _VlKDTreeDataIndexEntry;
8369#[repr(C)]
8370#[derive(Debug, Copy)]
8371pub struct _VlKDForestSearchState {
8372    pub tree: *mut VlKDTree,
8373    pub nodeIndex: vl_uindex,
8374    pub distanceLowerBound: f64,
8375}
8376#[test]
8377fn bindgen_test_layout__VlKDForestSearchState() {
8378    assert_eq!(::std::mem::size_of::<_VlKDForestSearchState>() , 24usize ,
8379               concat ! ( "Size of: " , stringify ! ( _VlKDForestSearchState )
8380               ));
8381    assert_eq! (::std::mem::align_of::<_VlKDForestSearchState>() , 8usize ,
8382                concat ! (
8383                "Alignment of " , stringify ! ( _VlKDForestSearchState ) ));
8384    assert_eq! (unsafe {
8385                & ( * ( 0 as * const _VlKDForestSearchState ) ) . tree as *
8386                const _ as usize } , 0usize , concat ! (
8387                "Alignment of field: " , stringify ! ( _VlKDForestSearchState
8388                ) , "::" , stringify ! ( tree ) ));
8389    assert_eq! (unsafe {
8390                & ( * ( 0 as * const _VlKDForestSearchState ) ) . nodeIndex as
8391                * const _ as usize } , 8usize , concat ! (
8392                "Alignment of field: " , stringify ! ( _VlKDForestSearchState
8393                ) , "::" , stringify ! ( nodeIndex ) ));
8394    assert_eq! (unsafe {
8395                & ( * ( 0 as * const _VlKDForestSearchState ) ) .
8396                distanceLowerBound as * const _ as usize } , 16usize , concat
8397                ! (
8398                "Alignment of field: " , stringify ! ( _VlKDForestSearchState
8399                ) , "::" , stringify ! ( distanceLowerBound ) ));
8400}
8401impl Clone for _VlKDForestSearchState {
8402    fn clone(&self) -> Self { *self }
8403}
8404pub type VlKDForestSearchState = _VlKDForestSearchState;
8405#[repr(u32)]
8406/** @brief Thresholding method */
8407#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
8408pub enum _VlKDTreeThresholdingMethod {
8409    VL_KDTREE_MEDIAN = 0,
8410    VL_KDTREE_MEAN = 1,
8411}
8412pub use self::_VlKDTreeThresholdingMethod as VlKDTreeThresholdingMethod;
8413/** @brief Neighbor of a query point */
8414#[repr(C)]
8415#[derive(Debug, Copy)]
8416pub struct _VlKDForestNeighbor {
8417    /**< distance to the query point */
8418    pub distance: f64,
8419    /**< index of the neighbor in the KDTree data */
8420    pub index: vl_uindex,
8421}
8422#[test]
8423fn bindgen_test_layout__VlKDForestNeighbor() {
8424    assert_eq!(::std::mem::size_of::<_VlKDForestNeighbor>() , 16usize , concat
8425               ! ( "Size of: " , stringify ! ( _VlKDForestNeighbor ) ));
8426    assert_eq! (::std::mem::align_of::<_VlKDForestNeighbor>() , 8usize ,
8427                concat ! (
8428                "Alignment of " , stringify ! ( _VlKDForestNeighbor ) ));
8429    assert_eq! (unsafe {
8430                & ( * ( 0 as * const _VlKDForestNeighbor ) ) . distance as *
8431                const _ as usize } , 0usize , concat ! (
8432                "Alignment of field: " , stringify ! ( _VlKDForestNeighbor ) ,
8433                "::" , stringify ! ( distance ) ));
8434    assert_eq! (unsafe {
8435                & ( * ( 0 as * const _VlKDForestNeighbor ) ) . index as *
8436                const _ as usize } , 8usize , concat ! (
8437                "Alignment of field: " , stringify ! ( _VlKDForestNeighbor ) ,
8438                "::" , stringify ! ( index ) ));
8439}
8440impl Clone for _VlKDForestNeighbor {
8441    fn clone(&self) -> Self { *self }
8442}
8443pub type VlKDForestNeighbor = _VlKDForestNeighbor;
8444#[repr(C)]
8445#[derive(Debug, Copy)]
8446pub struct _VlKDTree {
8447    pub nodes: *mut VlKDTreeNode,
8448    pub numUsedNodes: vl_size,
8449    pub numAllocatedNodes: vl_size,
8450    pub dataIndex: *mut VlKDTreeDataIndexEntry,
8451    pub depth: ::std::os::raw::c_uint,
8452}
8453#[test]
8454fn bindgen_test_layout__VlKDTree() {
8455    assert_eq!(::std::mem::size_of::<_VlKDTree>() , 40usize , concat ! (
8456               "Size of: " , stringify ! ( _VlKDTree ) ));
8457    assert_eq! (::std::mem::align_of::<_VlKDTree>() , 8usize , concat ! (
8458                "Alignment of " , stringify ! ( _VlKDTree ) ));
8459    assert_eq! (unsafe {
8460                & ( * ( 0 as * const _VlKDTree ) ) . nodes as * const _ as
8461                usize } , 0usize , concat ! (
8462                "Alignment of field: " , stringify ! ( _VlKDTree ) , "::" ,
8463                stringify ! ( nodes ) ));
8464    assert_eq! (unsafe {
8465                & ( * ( 0 as * const _VlKDTree ) ) . numUsedNodes as * const _
8466                as usize } , 8usize , concat ! (
8467                "Alignment of field: " , stringify ! ( _VlKDTree ) , "::" ,
8468                stringify ! ( numUsedNodes ) ));
8469    assert_eq! (unsafe {
8470                & ( * ( 0 as * const _VlKDTree ) ) . numAllocatedNodes as *
8471                const _ as usize } , 16usize , concat ! (
8472                "Alignment of field: " , stringify ! ( _VlKDTree ) , "::" ,
8473                stringify ! ( numAllocatedNodes ) ));
8474    assert_eq! (unsafe {
8475                & ( * ( 0 as * const _VlKDTree ) ) . dataIndex as * const _ as
8476                usize } , 24usize , concat ! (
8477                "Alignment of field: " , stringify ! ( _VlKDTree ) , "::" ,
8478                stringify ! ( dataIndex ) ));
8479    assert_eq! (unsafe {
8480                & ( * ( 0 as * const _VlKDTree ) ) . depth as * const _ as
8481                usize } , 32usize , concat ! (
8482                "Alignment of field: " , stringify ! ( _VlKDTree ) , "::" ,
8483                stringify ! ( depth ) ));
8484}
8485impl Clone for _VlKDTree {
8486    fn clone(&self) -> Self { *self }
8487}
8488pub type VlKDTree = _VlKDTree;
8489/** @brief ::VlKDForest searcher object */
8490#[repr(C)]
8491#[derive(Debug, Copy)]
8492pub struct _VlKDForestSearcher {
8493    pub next: *mut _VlKDForestSearcher,
8494    pub previous: *mut _VlKDForestSearcher,
8495    pub searchIdBook: *mut vl_uindex,
8496    pub searchHeapArray: *mut VlKDForestSearchState,
8497    pub forest: *mut VlKDForest,
8498    pub searchNumComparisons: vl_size,
8499    pub searchNumRecursions: vl_size,
8500    pub searchNumSimplifications: vl_size,
8501    pub searchHeapNumNodes: vl_size,
8502    pub searchId: vl_uindex,
8503}
8504#[test]
8505fn bindgen_test_layout__VlKDForestSearcher() {
8506    assert_eq!(::std::mem::size_of::<_VlKDForestSearcher>() , 80usize , concat
8507               ! ( "Size of: " , stringify ! ( _VlKDForestSearcher ) ));
8508    assert_eq! (::std::mem::align_of::<_VlKDForestSearcher>() , 8usize ,
8509                concat ! (
8510                "Alignment of " , stringify ! ( _VlKDForestSearcher ) ));
8511    assert_eq! (unsafe {
8512                & ( * ( 0 as * const _VlKDForestSearcher ) ) . next as * const
8513                _ as usize } , 0usize , concat ! (
8514                "Alignment of field: " , stringify ! ( _VlKDForestSearcher ) ,
8515                "::" , stringify ! ( next ) ));
8516    assert_eq! (unsafe {
8517                & ( * ( 0 as * const _VlKDForestSearcher ) ) . previous as *
8518                const _ as usize } , 8usize , concat ! (
8519                "Alignment of field: " , stringify ! ( _VlKDForestSearcher ) ,
8520                "::" , stringify ! ( previous ) ));
8521    assert_eq! (unsafe {
8522                & ( * ( 0 as * const _VlKDForestSearcher ) ) . searchIdBook as
8523                * const _ as usize } , 16usize , concat ! (
8524                "Alignment of field: " , stringify ! ( _VlKDForestSearcher ) ,
8525                "::" , stringify ! ( searchIdBook ) ));
8526    assert_eq! (unsafe {
8527                & ( * ( 0 as * const _VlKDForestSearcher ) ) . searchHeapArray
8528                as * const _ as usize } , 24usize , concat ! (
8529                "Alignment of field: " , stringify ! ( _VlKDForestSearcher ) ,
8530                "::" , stringify ! ( searchHeapArray ) ));
8531    assert_eq! (unsafe {
8532                & ( * ( 0 as * const _VlKDForestSearcher ) ) . forest as *
8533                const _ as usize } , 32usize , concat ! (
8534                "Alignment of field: " , stringify ! ( _VlKDForestSearcher ) ,
8535                "::" , stringify ! ( forest ) ));
8536    assert_eq! (unsafe {
8537                & ( * ( 0 as * const _VlKDForestSearcher ) ) .
8538                searchNumComparisons as * const _ as usize } , 40usize ,
8539                concat ! (
8540                "Alignment of field: " , stringify ! ( _VlKDForestSearcher ) ,
8541                "::" , stringify ! ( searchNumComparisons ) ));
8542    assert_eq! (unsafe {
8543                & ( * ( 0 as * const _VlKDForestSearcher ) ) .
8544                searchNumRecursions as * const _ as usize } , 48usize , concat
8545                ! (
8546                "Alignment of field: " , stringify ! ( _VlKDForestSearcher ) ,
8547                "::" , stringify ! ( searchNumRecursions ) ));
8548    assert_eq! (unsafe {
8549                & ( * ( 0 as * const _VlKDForestSearcher ) ) .
8550                searchNumSimplifications as * const _ as usize } , 56usize ,
8551                concat ! (
8552                "Alignment of field: " , stringify ! ( _VlKDForestSearcher ) ,
8553                "::" , stringify ! ( searchNumSimplifications ) ));
8554    assert_eq! (unsafe {
8555                & ( * ( 0 as * const _VlKDForestSearcher ) ) .
8556                searchHeapNumNodes as * const _ as usize } , 64usize , concat
8557                ! (
8558                "Alignment of field: " , stringify ! ( _VlKDForestSearcher ) ,
8559                "::" , stringify ! ( searchHeapNumNodes ) ));
8560    assert_eq! (unsafe {
8561                & ( * ( 0 as * const _VlKDForestSearcher ) ) . searchId as *
8562                const _ as usize } , 72usize , concat ! (
8563                "Alignment of field: " , stringify ! ( _VlKDForestSearcher ) ,
8564                "::" , stringify ! ( searchId ) ));
8565}
8566impl Clone for _VlKDForestSearcher {
8567    fn clone(&self) -> Self { *self }
8568}
8569/** @brief KDForest object */
8570#[repr(C)]
8571#[derive(Debug, Copy)]
8572pub struct _VlKDForest {
8573    pub dimension: vl_size,
8574    pub rand: *mut VlRand,
8575    pub dataType: vl_type,
8576    pub data: *const ::std::os::raw::c_void,
8577    pub numData: vl_size,
8578    pub distance: VlVectorComparisonType,
8579    pub distanceFunction: ::std::option::Option<unsafe extern "C" fn()>,
8580    pub trees: *mut *mut VlKDTree,
8581    pub numTrees: vl_size,
8582    pub thresholdingMethod: VlKDTreeThresholdingMethod,
8583    pub splitHeapArray: [VlKDTreeSplitDimension; 5usize],
8584    pub splitHeapNumNodes: vl_size,
8585    pub splitHeapSize: vl_size,
8586    pub maxNumNodes: vl_size,
8587    pub searchMaxNumComparisons: vl_size,
8588    pub numSearchers: vl_size,
8589    pub headSearcher: *mut _VlKDForestSearcher,
8590}
8591#[test]
8592fn bindgen_test_layout__VlKDForest() {
8593    assert_eq!(::std::mem::size_of::<_VlKDForest>() , 248usize , concat ! (
8594               "Size of: " , stringify ! ( _VlKDForest ) ));
8595    assert_eq! (::std::mem::align_of::<_VlKDForest>() , 8usize , concat ! (
8596                "Alignment of " , stringify ! ( _VlKDForest ) ));
8597    assert_eq! (unsafe {
8598                & ( * ( 0 as * const _VlKDForest ) ) . dimension as * const _
8599                as usize } , 0usize , concat ! (
8600                "Alignment of field: " , stringify ! ( _VlKDForest ) , "::" ,
8601                stringify ! ( dimension ) ));
8602    assert_eq! (unsafe {
8603                & ( * ( 0 as * const _VlKDForest ) ) . rand as * const _ as
8604                usize } , 8usize , concat ! (
8605                "Alignment of field: " , stringify ! ( _VlKDForest ) , "::" ,
8606                stringify ! ( rand ) ));
8607    assert_eq! (unsafe {
8608                & ( * ( 0 as * const _VlKDForest ) ) . dataType as * const _
8609                as usize } , 16usize , concat ! (
8610                "Alignment of field: " , stringify ! ( _VlKDForest ) , "::" ,
8611                stringify ! ( dataType ) ));
8612    assert_eq! (unsafe {
8613                & ( * ( 0 as * const _VlKDForest ) ) . data as * const _ as
8614                usize } , 24usize , concat ! (
8615                "Alignment of field: " , stringify ! ( _VlKDForest ) , "::" ,
8616                stringify ! ( data ) ));
8617    assert_eq! (unsafe {
8618                & ( * ( 0 as * const _VlKDForest ) ) . numData as * const _ as
8619                usize } , 32usize , concat ! (
8620                "Alignment of field: " , stringify ! ( _VlKDForest ) , "::" ,
8621                stringify ! ( numData ) ));
8622    assert_eq! (unsafe {
8623                & ( * ( 0 as * const _VlKDForest ) ) . distance as * const _
8624                as usize } , 40usize , concat ! (
8625                "Alignment of field: " , stringify ! ( _VlKDForest ) , "::" ,
8626                stringify ! ( distance ) ));
8627    assert_eq! (unsafe {
8628                & ( * ( 0 as * const _VlKDForest ) ) . distanceFunction as *
8629                const _ as usize } , 48usize , concat ! (
8630                "Alignment of field: " , stringify ! ( _VlKDForest ) , "::" ,
8631                stringify ! ( distanceFunction ) ));
8632    assert_eq! (unsafe {
8633                & ( * ( 0 as * const _VlKDForest ) ) . trees as * const _ as
8634                usize } , 56usize , concat ! (
8635                "Alignment of field: " , stringify ! ( _VlKDForest ) , "::" ,
8636                stringify ! ( trees ) ));
8637    assert_eq! (unsafe {
8638                & ( * ( 0 as * const _VlKDForest ) ) . numTrees as * const _
8639                as usize } , 64usize , concat ! (
8640                "Alignment of field: " , stringify ! ( _VlKDForest ) , "::" ,
8641                stringify ! ( numTrees ) ));
8642    assert_eq! (unsafe {
8643                & ( * ( 0 as * const _VlKDForest ) ) . thresholdingMethod as *
8644                const _ as usize } , 72usize , concat ! (
8645                "Alignment of field: " , stringify ! ( _VlKDForest ) , "::" ,
8646                stringify ! ( thresholdingMethod ) ));
8647    assert_eq! (unsafe {
8648                & ( * ( 0 as * const _VlKDForest ) ) . splitHeapArray as *
8649                const _ as usize } , 80usize , concat ! (
8650                "Alignment of field: " , stringify ! ( _VlKDForest ) , "::" ,
8651                stringify ! ( splitHeapArray ) ));
8652    assert_eq! (unsafe {
8653                & ( * ( 0 as * const _VlKDForest ) ) . splitHeapNumNodes as *
8654                const _ as usize } , 200usize , concat ! (
8655                "Alignment of field: " , stringify ! ( _VlKDForest ) , "::" ,
8656                stringify ! ( splitHeapNumNodes ) ));
8657    assert_eq! (unsafe {
8658                & ( * ( 0 as * const _VlKDForest ) ) . splitHeapSize as *
8659                const _ as usize } , 208usize , concat ! (
8660                "Alignment of field: " , stringify ! ( _VlKDForest ) , "::" ,
8661                stringify ! ( splitHeapSize ) ));
8662    assert_eq! (unsafe {
8663                & ( * ( 0 as * const _VlKDForest ) ) . maxNumNodes as * const
8664                _ as usize } , 216usize , concat ! (
8665                "Alignment of field: " , stringify ! ( _VlKDForest ) , "::" ,
8666                stringify ! ( maxNumNodes ) ));
8667    assert_eq! (unsafe {
8668                & ( * ( 0 as * const _VlKDForest ) ) . searchMaxNumComparisons
8669                as * const _ as usize } , 224usize , concat ! (
8670                "Alignment of field: " , stringify ! ( _VlKDForest ) , "::" ,
8671                stringify ! ( searchMaxNumComparisons ) ));
8672    assert_eq! (unsafe {
8673                & ( * ( 0 as * const _VlKDForest ) ) . numSearchers as * const
8674                _ as usize } , 232usize , concat ! (
8675                "Alignment of field: " , stringify ! ( _VlKDForest ) , "::" ,
8676                stringify ! ( numSearchers ) ));
8677    assert_eq! (unsafe {
8678                & ( * ( 0 as * const _VlKDForest ) ) . headSearcher as * const
8679                _ as usize } , 240usize , concat ! (
8680                "Alignment of field: " , stringify ! ( _VlKDForest ) , "::" ,
8681                stringify ! ( headSearcher ) ));
8682}
8683impl Clone for _VlKDForest {
8684    fn clone(&self) -> Self { *self }
8685}
8686pub type VlKDForest = _VlKDForest;
8687pub type VlKDForestSearcher = _VlKDForestSearcher;
8688extern "C" {
8689    /** @name Creating, copying and disposing
8690 ** @{ */
8691    pub fn vl_kdforest_new(dataType: vl_type, dimension: vl_size,
8692                           numTrees: vl_size,
8693                           normType: VlVectorComparisonType)
8694     -> *mut VlKDForest;
8695}
8696extern "C" {
8697    pub fn vl_kdforest_new_searcher(kdforest: *mut VlKDForest)
8698     -> *mut VlKDForestSearcher;
8699}
8700extern "C" {
8701    pub fn vl_kdforest_delete(self_: *mut VlKDForest);
8702}
8703extern "C" {
8704    pub fn vl_kdforestsearcher_delete(searcher: *mut VlKDForestSearcher);
8705}
8706extern "C" {
8707    /** @name Building and querying
8708 ** @{ */
8709    pub fn vl_kdforest_build(self_: *mut VlKDForest, numData: vl_size,
8710                             data: *const ::std::os::raw::c_void);
8711}
8712extern "C" {
8713    pub fn vl_kdforest_query(self_: *mut VlKDForest,
8714                             neighbors: *mut VlKDForestNeighbor,
8715                             numNeighbors: vl_size,
8716                             query: *const ::std::os::raw::c_void) -> vl_size;
8717}
8718extern "C" {
8719    pub fn vl_kdforest_query_with_array(self_: *mut VlKDForest,
8720                                        index: *mut vl_uint32,
8721                                        numNeighbors: vl_size,
8722                                        numQueries: vl_size,
8723                                        distance: *mut ::std::os::raw::c_void,
8724                                        queries:
8725                                            *const ::std::os::raw::c_void)
8726     -> vl_size;
8727}
8728extern "C" {
8729    pub fn vl_kdforestsearcher_query(self_: *mut VlKDForestSearcher,
8730                                     neighbors: *mut VlKDForestNeighbor,
8731                                     numNeighbors: vl_size,
8732                                     query: *const ::std::os::raw::c_void)
8733     -> vl_size;
8734}
8735extern "C" {
8736    /** @name Retrieving and setting parameters
8737 ** @{ */
8738    pub fn vl_kdforest_get_depth_of_tree(self_: *const VlKDForest,
8739                                         treeIndex: vl_uindex) -> vl_size;
8740}
8741extern "C" {
8742    pub fn vl_kdforest_get_num_nodes_of_tree(self_: *const VlKDForest,
8743                                             treeIndex: vl_uindex) -> vl_size;
8744}
8745extern "C" {
8746    pub fn vl_kdforest_get_num_trees(self_: *const VlKDForest) -> vl_size;
8747}
8748extern "C" {
8749    pub fn vl_kdforest_get_data_dimension(self_: *const VlKDForest)
8750     -> vl_size;
8751}
8752extern "C" {
8753    pub fn vl_kdforest_get_data_type(self_: *const VlKDForest) -> vl_type;
8754}
8755extern "C" {
8756    pub fn vl_kdforest_set_max_num_comparisons(self_: *mut VlKDForest,
8757                                               n: vl_size);
8758}
8759extern "C" {
8760    pub fn vl_kdforest_get_max_num_comparisons(self_: *mut VlKDForest)
8761     -> vl_size;
8762}
8763extern "C" {
8764    pub fn vl_kdforest_set_thresholding_method(self_: *mut VlKDForest,
8765                                               method:
8766                                                   VlKDTreeThresholdingMethod);
8767}
8768extern "C" {
8769    pub fn vl_kdforest_get_thresholding_method(self_: *const VlKDForest)
8770     -> VlKDTreeThresholdingMethod;
8771}
8772extern "C" {
8773    pub fn vl_kdforest_searcher_get_forest(self_: *const VlKDForestSearcher)
8774     -> *mut VlKDForest;
8775}
8776extern "C" {
8777    pub fn vl_kdforest_get_searcher(self_: *const VlKDForest, pos: vl_uindex)
8778     -> *mut VlKDForestSearcher;
8779}
8780#[repr(u32)]
8781/** @brief K-means algorithms */
8782#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
8783pub enum _VlKMeansAlgorithm {
8784    VlKMeansLloyd = 0,
8785    VlKMeansElkan = 1,
8786    VlKMeansANN = 2,
8787}
8788pub use self::_VlKMeansAlgorithm as VlKMeansAlgorithm;
8789#[repr(u32)]
8790/** @brief K-means initialization algorithms */
8791#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
8792pub enum _VlKMeansInitialization {
8793    VlKMeansRandomSelection = 0,
8794    VlKMeansPlusPlus = 1,
8795}
8796pub use self::_VlKMeansInitialization as VlKMeansInitialization;
8797/** ------------------------------------------------------------------
8798 ** @brief K-means quantizer
8799 **/
8800#[repr(C)]
8801#[derive(Debug, Copy)]
8802pub struct _VlKMeans {
8803    /**< Data type. */
8804    pub dataType: vl_type,
8805    /**< Data dimensionality. */
8806    pub dimension: vl_size,
8807    /**< Number of centers. */
8808    pub numCenters: vl_size,
8809    /**< Number of trees in forest when using ANN-kmeans. */
8810    pub numTrees: vl_size,
8811    /**< Maximum number of comparisons when using ANN-kmeans. */
8812    pub maxNumComparisons: vl_size,
8813    /**< Initalization algorithm. */
8814    pub initialization: VlKMeansInitialization,
8815    /**< Clustring algorithm. */
8816    pub algorithm: VlKMeansAlgorithm,
8817    /**< Distance. */
8818    pub distance: VlVectorComparisonType,
8819    /**< Maximum number of refinement iterations. */
8820    pub maxNumIterations: vl_size,
8821    /**< Minimum energy variation. */
8822    pub minEnergyVariation: f64,
8823    /**< Number of clustering repetitions. */
8824    pub numRepetitions: vl_size,
8825    /**< Verbosity level. */
8826    pub verbosity: ::std::os::raw::c_int,
8827    /**< Centers */
8828    pub centers: *mut ::std::os::raw::c_void,
8829    /**< Centers inter-distances. */
8830    pub centerDistances: *mut ::std::os::raw::c_void,
8831    /**< Current solution energy. */
8832    pub energy: f64,
8833    pub floatVectorComparisonFn: VlFloatVectorComparisonFunction,
8834    pub doubleVectorComparisonFn: VlDoubleVectorComparisonFunction,
8835}
8836#[test]
8837fn bindgen_test_layout__VlKMeans() {
8838    assert_eq!(::std::mem::size_of::<_VlKMeans>() , 128usize , concat ! (
8839               "Size of: " , stringify ! ( _VlKMeans ) ));
8840    assert_eq! (::std::mem::align_of::<_VlKMeans>() , 8usize , concat ! (
8841                "Alignment of " , stringify ! ( _VlKMeans ) ));
8842    assert_eq! (unsafe {
8843                & ( * ( 0 as * const _VlKMeans ) ) . dataType as * const _ as
8844                usize } , 0usize , concat ! (
8845                "Alignment of field: " , stringify ! ( _VlKMeans ) , "::" ,
8846                stringify ! ( dataType ) ));
8847    assert_eq! (unsafe {
8848                & ( * ( 0 as * const _VlKMeans ) ) . dimension as * const _ as
8849                usize } , 8usize , concat ! (
8850                "Alignment of field: " , stringify ! ( _VlKMeans ) , "::" ,
8851                stringify ! ( dimension ) ));
8852    assert_eq! (unsafe {
8853                & ( * ( 0 as * const _VlKMeans ) ) . numCenters as * const _
8854                as usize } , 16usize , concat ! (
8855                "Alignment of field: " , stringify ! ( _VlKMeans ) , "::" ,
8856                stringify ! ( numCenters ) ));
8857    assert_eq! (unsafe {
8858                & ( * ( 0 as * const _VlKMeans ) ) . numTrees as * const _ as
8859                usize } , 24usize , concat ! (
8860                "Alignment of field: " , stringify ! ( _VlKMeans ) , "::" ,
8861                stringify ! ( numTrees ) ));
8862    assert_eq! (unsafe {
8863                & ( * ( 0 as * const _VlKMeans ) ) . maxNumComparisons as *
8864                const _ as usize } , 32usize , concat ! (
8865                "Alignment of field: " , stringify ! ( _VlKMeans ) , "::" ,
8866                stringify ! ( maxNumComparisons ) ));
8867    assert_eq! (unsafe {
8868                & ( * ( 0 as * const _VlKMeans ) ) . initialization as * const
8869                _ as usize } , 40usize , concat ! (
8870                "Alignment of field: " , stringify ! ( _VlKMeans ) , "::" ,
8871                stringify ! ( initialization ) ));
8872    assert_eq! (unsafe {
8873                & ( * ( 0 as * const _VlKMeans ) ) . algorithm as * const _ as
8874                usize } , 44usize , concat ! (
8875                "Alignment of field: " , stringify ! ( _VlKMeans ) , "::" ,
8876                stringify ! ( algorithm ) ));
8877    assert_eq! (unsafe {
8878                & ( * ( 0 as * const _VlKMeans ) ) . distance as * const _ as
8879                usize } , 48usize , concat ! (
8880                "Alignment of field: " , stringify ! ( _VlKMeans ) , "::" ,
8881                stringify ! ( distance ) ));
8882    assert_eq! (unsafe {
8883                & ( * ( 0 as * const _VlKMeans ) ) . maxNumIterations as *
8884                const _ as usize } , 56usize , concat ! (
8885                "Alignment of field: " , stringify ! ( _VlKMeans ) , "::" ,
8886                stringify ! ( maxNumIterations ) ));
8887    assert_eq! (unsafe {
8888                & ( * ( 0 as * const _VlKMeans ) ) . minEnergyVariation as *
8889                const _ as usize } , 64usize , concat ! (
8890                "Alignment of field: " , stringify ! ( _VlKMeans ) , "::" ,
8891                stringify ! ( minEnergyVariation ) ));
8892    assert_eq! (unsafe {
8893                & ( * ( 0 as * const _VlKMeans ) ) . numRepetitions as * const
8894                _ as usize } , 72usize , concat ! (
8895                "Alignment of field: " , stringify ! ( _VlKMeans ) , "::" ,
8896                stringify ! ( numRepetitions ) ));
8897    assert_eq! (unsafe {
8898                & ( * ( 0 as * const _VlKMeans ) ) . verbosity as * const _ as
8899                usize } , 80usize , concat ! (
8900                "Alignment of field: " , stringify ! ( _VlKMeans ) , "::" ,
8901                stringify ! ( verbosity ) ));
8902    assert_eq! (unsafe {
8903                & ( * ( 0 as * const _VlKMeans ) ) . centers as * const _ as
8904                usize } , 88usize , concat ! (
8905                "Alignment of field: " , stringify ! ( _VlKMeans ) , "::" ,
8906                stringify ! ( centers ) ));
8907    assert_eq! (unsafe {
8908                & ( * ( 0 as * const _VlKMeans ) ) . centerDistances as *
8909                const _ as usize } , 96usize , concat ! (
8910                "Alignment of field: " , stringify ! ( _VlKMeans ) , "::" ,
8911                stringify ! ( centerDistances ) ));
8912    assert_eq! (unsafe {
8913                & ( * ( 0 as * const _VlKMeans ) ) . energy as * const _ as
8914                usize } , 104usize , concat ! (
8915                "Alignment of field: " , stringify ! ( _VlKMeans ) , "::" ,
8916                stringify ! ( energy ) ));
8917    assert_eq! (unsafe {
8918                & ( * ( 0 as * const _VlKMeans ) ) . floatVectorComparisonFn
8919                as * const _ as usize } , 112usize , concat ! (
8920                "Alignment of field: " , stringify ! ( _VlKMeans ) , "::" ,
8921                stringify ! ( floatVectorComparisonFn ) ));
8922    assert_eq! (unsafe {
8923                & ( * ( 0 as * const _VlKMeans ) ) . doubleVectorComparisonFn
8924                as * const _ as usize } , 120usize , concat ! (
8925                "Alignment of field: " , stringify ! ( _VlKMeans ) , "::" ,
8926                stringify ! ( doubleVectorComparisonFn ) ));
8927}
8928impl Clone for _VlKMeans {
8929    fn clone(&self) -> Self { *self }
8930}
8931pub type VlKMeans = _VlKMeans;
8932extern "C" {
8933    /** @name Create and destroy
8934 ** @{
8935 **/
8936    pub fn vl_kmeans_new(dataType: vl_type, distance: VlVectorComparisonType)
8937     -> *mut VlKMeans;
8938}
8939extern "C" {
8940    pub fn vl_kmeans_new_copy(kmeans: *const VlKMeans) -> *mut VlKMeans;
8941}
8942extern "C" {
8943    pub fn vl_kmeans_delete(self_: *mut VlKMeans);
8944}
8945extern "C" {
8946    /** @name Basic data processing
8947 ** @{
8948 **/
8949    pub fn vl_kmeans_reset(self_: *mut VlKMeans);
8950}
8951extern "C" {
8952    pub fn vl_kmeans_cluster(self_: *mut VlKMeans,
8953                             data: *const ::std::os::raw::c_void,
8954                             dimension: vl_size, numData: vl_size,
8955                             numCenters: vl_size) -> f64;
8956}
8957extern "C" {
8958    pub fn vl_kmeans_quantize(self_: *mut VlKMeans,
8959                              assignments: *mut vl_uint32,
8960                              distances: *mut ::std::os::raw::c_void,
8961                              data: *const ::std::os::raw::c_void,
8962                              numData: vl_size);
8963}
8964extern "C" {
8965    pub fn vl_kmeans_quantize_ANN(self_: *mut VlKMeans,
8966                                  assignments: *mut vl_uint32,
8967                                  distances: *mut ::std::os::raw::c_void,
8968                                  data: *const ::std::os::raw::c_void,
8969                                  numData: vl_size, iteration: vl_size);
8970}
8971extern "C" {
8972    /** @name Advanced data processing
8973 ** @{
8974 **/
8975    pub fn vl_kmeans_set_centers(self_: *mut VlKMeans,
8976                                 centers: *const ::std::os::raw::c_void,
8977                                 dimension: vl_size, numCenters: vl_size);
8978}
8979extern "C" {
8980    pub fn vl_kmeans_init_centers_with_rand_data(self_: *mut VlKMeans,
8981                                                 data:
8982                                                     *const ::std::os::raw::c_void,
8983                                                 dimensions: vl_size,
8984                                                 numData: vl_size,
8985                                                 numCenters: vl_size);
8986}
8987extern "C" {
8988    pub fn vl_kmeans_init_centers_plus_plus(self_: *mut VlKMeans,
8989                                            data:
8990                                                *const ::std::os::raw::c_void,
8991                                            dimensions: vl_size,
8992                                            numData: vl_size,
8993                                            numCenters: vl_size);
8994}
8995extern "C" {
8996    pub fn vl_kmeans_refine_centers(self_: *mut VlKMeans,
8997                                    data: *const ::std::os::raw::c_void,
8998                                    numData: vl_size) -> f64;
8999}
9000#[repr(u32)]
9001/** @brief GMM initialization algorithms */
9002#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
9003pub enum _VlGMMInitialization {
9004    VlGMMKMeans = 0,
9005    VlGMMRand = 1,
9006    VlGMMCustom = 2,
9007}
9008pub use self::_VlGMMInitialization as VlGMMInitialization;
9009#[repr(C)]
9010#[derive(Debug, Copy, Clone)]
9011pub struct _VlGMM([u8; 0]);
9012pub type VlGMM = _VlGMM;
9013extern "C" {
9014    /** @name Create and destroy
9015 ** @{
9016 **/
9017    pub fn vl_gmm_new(dataType: vl_type, dimension: vl_size,
9018                      numComponents: vl_size) -> *mut VlGMM;
9019}
9020extern "C" {
9021    pub fn vl_gmm_new_copy(gmm: *const VlGMM) -> *mut VlGMM;
9022}
9023extern "C" {
9024    pub fn vl_gmm_delete(self_: *mut VlGMM);
9025}
9026extern "C" {
9027    pub fn vl_gmm_reset(self_: *mut VlGMM);
9028}
9029extern "C" {
9030    /** @name Basic data processing
9031 ** @{
9032 **/
9033    pub fn vl_gmm_cluster(self_: *mut VlGMM,
9034                          data: *const ::std::os::raw::c_void,
9035                          numData: vl_size) -> f64;
9036}
9037extern "C" {
9038    /** @name Fine grained data processing
9039 ** @{ */
9040    pub fn vl_gmm_init_with_rand_data(self_: *mut VlGMM,
9041                                      data: *const ::std::os::raw::c_void,
9042                                      numData: vl_size);
9043}
9044extern "C" {
9045    pub fn vl_gmm_init_with_kmeans(self_: *mut VlGMM,
9046                                   data: *const ::std::os::raw::c_void,
9047                                   numData: vl_size,
9048                                   kmeansInit: *mut VlKMeans);
9049}
9050extern "C" {
9051    pub fn vl_gmm_em(self_: *mut VlGMM, data: *const ::std::os::raw::c_void,
9052                     numData: vl_size) -> f64;
9053}
9054extern "C" {
9055    /** @} */
9056    pub fn vl_gmm_set_means(self_: *mut VlGMM,
9057                            means: *const ::std::os::raw::c_void);
9058}
9059extern "C" {
9060    pub fn vl_gmm_set_covariances(self_: *mut VlGMM,
9061                                  covariances: *const ::std::os::raw::c_void);
9062}
9063extern "C" {
9064    pub fn vl_gmm_set_priors(self_: *mut VlGMM,
9065                             priors: *const ::std::os::raw::c_void);
9066}
9067extern "C" {
9068    pub fn vl_get_gmm_data_posteriors_f(posteriors: *mut f32,
9069                                        numClusters: vl_size,
9070                                        numData: vl_size, priors: *const f32,
9071                                        means: *const f32, dimension: vl_size,
9072                                        covariances: *const f32,
9073                                        data: *const f32) -> f64;
9074}
9075extern "C" {
9076    pub fn vl_get_gmm_data_posteriors_d(posteriors: *mut f64,
9077                                        numClusters: vl_size,
9078                                        numData: vl_size, priors: *const f64,
9079                                        means: *const f64, dimension: vl_size,
9080                                        covariances: *const f64,
9081                                        data: *const f64) -> f64;
9082}
9083extern "C" {
9084    /** @name Set parameters
9085 ** @{
9086 **/
9087    pub fn vl_gmm_set_num_repetitions(self_: *mut VlGMM,
9088                                      numRepetitions: vl_size);
9089}
9090extern "C" {
9091    pub fn vl_gmm_set_max_num_iterations(self_: *mut VlGMM,
9092                                         maxNumIterations: vl_size);
9093}
9094extern "C" {
9095    pub fn vl_gmm_set_verbosity(self_: *mut VlGMM,
9096                                verbosity: ::std::os::raw::c_int);
9097}
9098extern "C" {
9099    pub fn vl_gmm_set_initialization(self_: *mut VlGMM,
9100                                     init: VlGMMInitialization);
9101}
9102extern "C" {
9103    pub fn vl_gmm_set_kmeans_init_object(self_: *mut VlGMM,
9104                                         kmeans: *mut VlKMeans);
9105}
9106extern "C" {
9107    pub fn vl_gmm_set_covariance_lower_bounds(self_: *mut VlGMM,
9108                                              bounds: *const f64);
9109}
9110extern "C" {
9111    pub fn vl_gmm_set_covariance_lower_bound(self_: *mut VlGMM, bound: f64);
9112}
9113extern "C" {
9114    /** @name Get parameters
9115 ** @{
9116 **/
9117    pub fn vl_gmm_get_means(self_: *const VlGMM)
9118     -> *const ::std::os::raw::c_void;
9119}
9120extern "C" {
9121    pub fn vl_gmm_get_covariances(self_: *const VlGMM)
9122     -> *const ::std::os::raw::c_void;
9123}
9124extern "C" {
9125    pub fn vl_gmm_get_priors(self_: *const VlGMM)
9126     -> *const ::std::os::raw::c_void;
9127}
9128extern "C" {
9129    pub fn vl_gmm_get_posteriors(self_: *const VlGMM)
9130     -> *const ::std::os::raw::c_void;
9131}
9132extern "C" {
9133    pub fn vl_gmm_get_data_type(self_: *const VlGMM) -> vl_type;
9134}
9135extern "C" {
9136    pub fn vl_gmm_get_dimension(self_: *const VlGMM) -> vl_size;
9137}
9138extern "C" {
9139    pub fn vl_gmm_get_num_repetitions(self_: *const VlGMM) -> vl_size;
9140}
9141extern "C" {
9142    pub fn vl_gmm_get_num_data(self_: *const VlGMM) -> vl_size;
9143}
9144extern "C" {
9145    pub fn vl_gmm_get_num_clusters(self_: *const VlGMM) -> vl_size;
9146}
9147extern "C" {
9148    pub fn vl_gmm_get_loglikelihood(self_: *const VlGMM) -> f64;
9149}
9150extern "C" {
9151    pub fn vl_gmm_get_verbosity(self_: *const VlGMM) -> ::std::os::raw::c_int;
9152}
9153extern "C" {
9154    pub fn vl_gmm_get_max_num_iterations(self_: *const VlGMM) -> vl_size;
9155}
9156extern "C" {
9157    pub fn vl_gmm_get_initialization(self_: *const VlGMM)
9158     -> VlGMMInitialization;
9159}
9160extern "C" {
9161    pub fn vl_gmm_get_kmeans_init_object(self_: *const VlGMM)
9162     -> *mut VlKMeans;
9163}
9164extern "C" {
9165    pub fn vl_gmm_get_covariance_lower_bounds(self_: *const VlGMM)
9166     -> *const f64;
9167}
9168pub type vl_ikmacc_t = vl_int32;
9169#[repr(u32)]
9170/** ------------------------------------------------------------------
9171 ** @brief IKM algorithms
9172 **/
9173#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
9174pub enum VlIKMAlgorithms { VL_IKM_LLOYD = 0, VL_IKM_ELKAN = 1, }
9175/** ------------------------------------------------------------------
9176 ** @brief IKM quantizer
9177 **/
9178#[repr(C)]
9179#[derive(Debug, Copy)]
9180pub struct _VlIKMFilt {
9181    /**< data dimensionality */
9182    pub M: vl_size,
9183    /**< number of centers   */
9184    pub K: vl_size,
9185    /**< Lloyd: maximum number of iterations */
9186    pub max_niters: vl_size,
9187    /**< Learning method */
9188    pub method: ::std::os::raw::c_int,
9189    /**< verbosity level */
9190    pub verb: ::std::os::raw::c_int,
9191    /**< centers */
9192    pub centers: *mut vl_ikmacc_t,
9193    /**< centers inter-distances */
9194    pub inter_dist: *mut vl_ikmacc_t,
9195}
9196#[test]
9197fn bindgen_test_layout__VlIKMFilt() {
9198    assert_eq!(::std::mem::size_of::<_VlIKMFilt>() , 48usize , concat ! (
9199               "Size of: " , stringify ! ( _VlIKMFilt ) ));
9200    assert_eq! (::std::mem::align_of::<_VlIKMFilt>() , 8usize , concat ! (
9201                "Alignment of " , stringify ! ( _VlIKMFilt ) ));
9202    assert_eq! (unsafe {
9203                & ( * ( 0 as * const _VlIKMFilt ) ) . M as * const _ as usize
9204                } , 0usize , concat ! (
9205                "Alignment of field: " , stringify ! ( _VlIKMFilt ) , "::" ,
9206                stringify ! ( M ) ));
9207    assert_eq! (unsafe {
9208                & ( * ( 0 as * const _VlIKMFilt ) ) . K as * const _ as usize
9209                } , 8usize , concat ! (
9210                "Alignment of field: " , stringify ! ( _VlIKMFilt ) , "::" ,
9211                stringify ! ( K ) ));
9212    assert_eq! (unsafe {
9213                & ( * ( 0 as * const _VlIKMFilt ) ) . max_niters as * const _
9214                as usize } , 16usize , concat ! (
9215                "Alignment of field: " , stringify ! ( _VlIKMFilt ) , "::" ,
9216                stringify ! ( max_niters ) ));
9217    assert_eq! (unsafe {
9218                & ( * ( 0 as * const _VlIKMFilt ) ) . method as * const _ as
9219                usize } , 24usize , concat ! (
9220                "Alignment of field: " , stringify ! ( _VlIKMFilt ) , "::" ,
9221                stringify ! ( method ) ));
9222    assert_eq! (unsafe {
9223                & ( * ( 0 as * const _VlIKMFilt ) ) . verb as * const _ as
9224                usize } , 28usize , concat ! (
9225                "Alignment of field: " , stringify ! ( _VlIKMFilt ) , "::" ,
9226                stringify ! ( verb ) ));
9227    assert_eq! (unsafe {
9228                & ( * ( 0 as * const _VlIKMFilt ) ) . centers as * const _ as
9229                usize } , 32usize , concat ! (
9230                "Alignment of field: " , stringify ! ( _VlIKMFilt ) , "::" ,
9231                stringify ! ( centers ) ));
9232    assert_eq! (unsafe {
9233                & ( * ( 0 as * const _VlIKMFilt ) ) . inter_dist as * const _
9234                as usize } , 40usize , concat ! (
9235                "Alignment of field: " , stringify ! ( _VlIKMFilt ) , "::" ,
9236                stringify ! ( inter_dist ) ));
9237}
9238impl Clone for _VlIKMFilt {
9239    fn clone(&self) -> Self { *self }
9240}
9241pub type VlIKMFilt = _VlIKMFilt;
9242extern "C" {
9243    /** @name Create and destroy
9244 ** @{ */
9245    pub fn vl_ikm_new(method: ::std::os::raw::c_int) -> *mut VlIKMFilt;
9246}
9247extern "C" {
9248    pub fn vl_ikm_delete(f: *mut VlIKMFilt);
9249}
9250extern "C" {
9251    /** @name Process data
9252 ** @{ */
9253    pub fn vl_ikm_init(f: *mut VlIKMFilt, centers: *const vl_ikmacc_t,
9254                       M: vl_size, K: vl_size);
9255}
9256extern "C" {
9257    pub fn vl_ikm_init_rand(f: *mut VlIKMFilt, M: vl_size, K: vl_size);
9258}
9259extern "C" {
9260    pub fn vl_ikm_init_rand_data(f: *mut VlIKMFilt, data: *const vl_uint8,
9261                                 M: vl_size, N: vl_size, K: vl_size);
9262}
9263extern "C" {
9264    pub fn vl_ikm_train(f: *mut VlIKMFilt, data: *const vl_uint8, N: vl_size)
9265     -> ::std::os::raw::c_int;
9266}
9267extern "C" {
9268    pub fn vl_ikm_push(f: *mut VlIKMFilt, asgn: *mut vl_uint32,
9269                       data: *const vl_uint8, N: vl_size);
9270}
9271extern "C" {
9272    pub fn vl_ikm_push_one(centers: *const vl_ikmacc_t, data: *const vl_uint8,
9273                           M: vl_size, K: vl_size) -> vl_uint;
9274}
9275extern "C" {
9276    /** @name Retrieve data and parameters
9277 ** @{ */
9278    pub fn vl_ikm_get_ndims(f: *const VlIKMFilt) -> vl_size;
9279}
9280extern "C" {
9281    pub fn vl_ikm_get_K(f: *const VlIKMFilt) -> vl_size;
9282}
9283extern "C" {
9284    pub fn vl_ikm_get_verbosity(f: *const VlIKMFilt) -> ::std::os::raw::c_int;
9285}
9286extern "C" {
9287    pub fn vl_ikm_get_max_niters(f: *const VlIKMFilt) -> vl_size;
9288}
9289extern "C" {
9290    pub fn vl_ikm_get_centers(f: *const VlIKMFilt) -> *const vl_ikmacc_t;
9291}
9292extern "C" {
9293    /** @name Set parameters
9294 ** @{ */
9295    pub fn vl_ikm_set_verbosity(f: *mut VlIKMFilt,
9296                                verb: ::std::os::raw::c_int);
9297}
9298extern "C" {
9299    pub fn vl_ikm_set_max_niters(f: *mut VlIKMFilt, max_niters: vl_size);
9300}
9301#[repr(C)]
9302#[derive(Debug, Copy, Clone)]
9303pub struct _VLHIKMTree([u8; 0]);
9304#[repr(C)]
9305#[derive(Debug, Copy, Clone)]
9306pub struct _VLHIKMNode([u8; 0]);
9307/** @brief HIKM tree node
9308 **
9309 ** The number of children @a K is not bigger than the @a K parameter
9310 ** of the HIKM tree.
9311 **/
9312#[repr(C)]
9313#[derive(Debug, Copy)]
9314pub struct _VlHIKMNode {
9315    /**< IKM filter for this node*/
9316    pub filter: *mut VlIKMFilt,
9317    /**< Node children (if any) */
9318    pub children: *mut *mut _VlHIKMNode,
9319}
9320#[test]
9321fn bindgen_test_layout__VlHIKMNode() {
9322    assert_eq!(::std::mem::size_of::<_VlHIKMNode>() , 16usize , concat ! (
9323               "Size of: " , stringify ! ( _VlHIKMNode ) ));
9324    assert_eq! (::std::mem::align_of::<_VlHIKMNode>() , 8usize , concat ! (
9325                "Alignment of " , stringify ! ( _VlHIKMNode ) ));
9326    assert_eq! (unsafe {
9327                & ( * ( 0 as * const _VlHIKMNode ) ) . filter as * const _ as
9328                usize } , 0usize , concat ! (
9329                "Alignment of field: " , stringify ! ( _VlHIKMNode ) , "::" ,
9330                stringify ! ( filter ) ));
9331    assert_eq! (unsafe {
9332                & ( * ( 0 as * const _VlHIKMNode ) ) . children as * const _
9333                as usize } , 8usize , concat ! (
9334                "Alignment of field: " , stringify ! ( _VlHIKMNode ) , "::" ,
9335                stringify ! ( children ) ));
9336}
9337impl Clone for _VlHIKMNode {
9338    fn clone(&self) -> Self { *self }
9339}
9340pub type VlHIKMNode = _VlHIKMNode;
9341/** @brief HIKM tree */
9342#[repr(C)]
9343#[derive(Debug, Copy)]
9344pub struct _VlHIKMTree {
9345    /**< IKM: data dimensionality */
9346    pub M: vl_size,
9347    /**< IKM: K */
9348    pub K: vl_size,
9349    /**< Depth of the tree */
9350    pub depth: vl_size,
9351    /**< IKM: maximum # of iterations */
9352    pub max_niters: vl_size,
9353    /**< IKM: method */
9354    pub method: ::std::os::raw::c_int,
9355    /**< Verbosity level */
9356    pub verb: ::std::os::raw::c_int,
9357    /**< Tree root node */
9358    pub root: *mut VlHIKMNode,
9359}
9360#[test]
9361fn bindgen_test_layout__VlHIKMTree() {
9362    assert_eq!(::std::mem::size_of::<_VlHIKMTree>() , 48usize , concat ! (
9363               "Size of: " , stringify ! ( _VlHIKMTree ) ));
9364    assert_eq! (::std::mem::align_of::<_VlHIKMTree>() , 8usize , concat ! (
9365                "Alignment of " , stringify ! ( _VlHIKMTree ) ));
9366    assert_eq! (unsafe {
9367                & ( * ( 0 as * const _VlHIKMTree ) ) . M as * const _ as usize
9368                } , 0usize , concat ! (
9369                "Alignment of field: " , stringify ! ( _VlHIKMTree ) , "::" ,
9370                stringify ! ( M ) ));
9371    assert_eq! (unsafe {
9372                & ( * ( 0 as * const _VlHIKMTree ) ) . K as * const _ as usize
9373                } , 8usize , concat ! (
9374                "Alignment of field: " , stringify ! ( _VlHIKMTree ) , "::" ,
9375                stringify ! ( K ) ));
9376    assert_eq! (unsafe {
9377                & ( * ( 0 as * const _VlHIKMTree ) ) . depth as * const _ as
9378                usize } , 16usize , concat ! (
9379                "Alignment of field: " , stringify ! ( _VlHIKMTree ) , "::" ,
9380                stringify ! ( depth ) ));
9381    assert_eq! (unsafe {
9382                & ( * ( 0 as * const _VlHIKMTree ) ) . max_niters as * const _
9383                as usize } , 24usize , concat ! (
9384                "Alignment of field: " , stringify ! ( _VlHIKMTree ) , "::" ,
9385                stringify ! ( max_niters ) ));
9386    assert_eq! (unsafe {
9387                & ( * ( 0 as * const _VlHIKMTree ) ) . method as * const _ as
9388                usize } , 32usize , concat ! (
9389                "Alignment of field: " , stringify ! ( _VlHIKMTree ) , "::" ,
9390                stringify ! ( method ) ));
9391    assert_eq! (unsafe {
9392                & ( * ( 0 as * const _VlHIKMTree ) ) . verb as * const _ as
9393                usize } , 36usize , concat ! (
9394                "Alignment of field: " , stringify ! ( _VlHIKMTree ) , "::" ,
9395                stringify ! ( verb ) ));
9396    assert_eq! (unsafe {
9397                & ( * ( 0 as * const _VlHIKMTree ) ) . root as * const _ as
9398                usize } , 40usize , concat ! (
9399                "Alignment of field: " , stringify ! ( _VlHIKMTree ) , "::" ,
9400                stringify ! ( root ) ));
9401}
9402impl Clone for _VlHIKMTree {
9403    fn clone(&self) -> Self { *self }
9404}
9405pub type VlHIKMTree = _VlHIKMTree;
9406extern "C" {
9407    /** @name Create and destroy
9408 ** @{
9409 **/
9410    pub fn vl_hikm_new(method: ::std::os::raw::c_int) -> *mut VlHIKMTree;
9411}
9412extern "C" {
9413    pub fn vl_hikm_delete(f: *mut VlHIKMTree);
9414}
9415extern "C" {
9416    /** @name Retrieve data and parameters
9417 ** @{
9418 **/
9419    pub fn vl_hikm_get_ndims(f: *const VlHIKMTree) -> vl_size;
9420}
9421extern "C" {
9422    pub fn vl_hikm_get_K(f: *const VlHIKMTree) -> vl_size;
9423}
9424extern "C" {
9425    pub fn vl_hikm_get_depth(f: *const VlHIKMTree) -> vl_size;
9426}
9427extern "C" {
9428    pub fn vl_hikm_get_verbosity(f: *const VlHIKMTree)
9429     -> ::std::os::raw::c_int;
9430}
9431extern "C" {
9432    pub fn vl_hikm_get_max_niters(f: *const VlHIKMTree) -> vl_size;
9433}
9434extern "C" {
9435    pub fn vl_hikm_get_root(f: *const VlHIKMTree) -> *const VlHIKMNode;
9436}
9437extern "C" {
9438    /** @name Set parameters
9439 ** @{
9440 **/
9441    pub fn vl_hikm_set_verbosity(f: *mut VlHIKMTree,
9442                                 verb: ::std::os::raw::c_int);
9443}
9444extern "C" {
9445    pub fn vl_hikm_set_max_niters(f: *mut VlHIKMTree,
9446                                  max_niters: ::std::os::raw::c_int);
9447}
9448extern "C" {
9449    /** @name Process data
9450 ** @{
9451 **/
9452    pub fn vl_hikm_init(f: *mut VlHIKMTree, M: vl_size, K: vl_size,
9453                        depth: vl_size);
9454}
9455extern "C" {
9456    pub fn vl_hikm_train(f: *mut VlHIKMTree, data: *const vl_uint8,
9457                         N: vl_size);
9458}
9459extern "C" {
9460    pub fn vl_hikm_push(f: *mut VlHIKMTree, asgn: *mut vl_uint32,
9461                        data: *const vl_uint8, N: vl_size);
9462}
9463#[repr(u32)]
9464#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
9465pub enum VlHogVariant_ {
9466    VlHogVariantDalalTriggs = 0,
9467    VlHogVariantUoctti = 1,
9468}
9469pub use self::VlHogVariant_ as VlHogVariant;
9470#[repr(C)]
9471#[derive(Debug, Copy)]
9472pub struct VlHog_ {
9473    pub variant: VlHogVariant,
9474    pub dimension: vl_size,
9475    pub numOrientations: vl_size,
9476    pub transposed: vl_bool,
9477    pub useBilinearOrientationAssigment: vl_bool,
9478    pub permutation: *mut vl_index,
9479    pub glyphs: *mut f32,
9480    pub glyphSize: vl_size,
9481    pub orientationX: *mut f32,
9482    pub orientationY: *mut f32,
9483    pub hog: *mut f32,
9484    pub hogNorm: *mut f32,
9485    pub hogWidth: vl_size,
9486    pub hogHeight: vl_size,
9487}
9488#[test]
9489fn bindgen_test_layout_VlHog_() {
9490    assert_eq!(::std::mem::size_of::<VlHog_>() , 104usize , concat ! (
9491               "Size of: " , stringify ! ( VlHog_ ) ));
9492    assert_eq! (::std::mem::align_of::<VlHog_>() , 8usize , concat ! (
9493                "Alignment of " , stringify ! ( VlHog_ ) ));
9494    assert_eq! (unsafe {
9495                & ( * ( 0 as * const VlHog_ ) ) . variant as * const _ as
9496                usize } , 0usize , concat ! (
9497                "Alignment of field: " , stringify ! ( VlHog_ ) , "::" ,
9498                stringify ! ( variant ) ));
9499    assert_eq! (unsafe {
9500                & ( * ( 0 as * const VlHog_ ) ) . dimension as * const _ as
9501                usize } , 8usize , concat ! (
9502                "Alignment of field: " , stringify ! ( VlHog_ ) , "::" ,
9503                stringify ! ( dimension ) ));
9504    assert_eq! (unsafe {
9505                & ( * ( 0 as * const VlHog_ ) ) . numOrientations as * const _
9506                as usize } , 16usize , concat ! (
9507                "Alignment of field: " , stringify ! ( VlHog_ ) , "::" ,
9508                stringify ! ( numOrientations ) ));
9509    assert_eq! (unsafe {
9510                & ( * ( 0 as * const VlHog_ ) ) . transposed as * const _ as
9511                usize } , 24usize , concat ! (
9512                "Alignment of field: " , stringify ! ( VlHog_ ) , "::" ,
9513                stringify ! ( transposed ) ));
9514    assert_eq! (unsafe {
9515                & ( * ( 0 as * const VlHog_ ) ) .
9516                useBilinearOrientationAssigment as * const _ as usize } ,
9517                28usize , concat ! (
9518                "Alignment of field: " , stringify ! ( VlHog_ ) , "::" ,
9519                stringify ! ( useBilinearOrientationAssigment ) ));
9520    assert_eq! (unsafe {
9521                & ( * ( 0 as * const VlHog_ ) ) . permutation as * const _ as
9522                usize } , 32usize , concat ! (
9523                "Alignment of field: " , stringify ! ( VlHog_ ) , "::" ,
9524                stringify ! ( permutation ) ));
9525    assert_eq! (unsafe {
9526                & ( * ( 0 as * const VlHog_ ) ) . glyphs as * const _ as usize
9527                } , 40usize , concat ! (
9528                "Alignment of field: " , stringify ! ( VlHog_ ) , "::" ,
9529                stringify ! ( glyphs ) ));
9530    assert_eq! (unsafe {
9531                & ( * ( 0 as * const VlHog_ ) ) . glyphSize as * const _ as
9532                usize } , 48usize , concat ! (
9533                "Alignment of field: " , stringify ! ( VlHog_ ) , "::" ,
9534                stringify ! ( glyphSize ) ));
9535    assert_eq! (unsafe {
9536                & ( * ( 0 as * const VlHog_ ) ) . orientationX as * const _ as
9537                usize } , 56usize , concat ! (
9538                "Alignment of field: " , stringify ! ( VlHog_ ) , "::" ,
9539                stringify ! ( orientationX ) ));
9540    assert_eq! (unsafe {
9541                & ( * ( 0 as * const VlHog_ ) ) . orientationY as * const _ as
9542                usize } , 64usize , concat ! (
9543                "Alignment of field: " , stringify ! ( VlHog_ ) , "::" ,
9544                stringify ! ( orientationY ) ));
9545    assert_eq! (unsafe {
9546                & ( * ( 0 as * const VlHog_ ) ) . hog as * const _ as usize }
9547                , 72usize , concat ! (
9548                "Alignment of field: " , stringify ! ( VlHog_ ) , "::" ,
9549                stringify ! ( hog ) ));
9550    assert_eq! (unsafe {
9551                & ( * ( 0 as * const VlHog_ ) ) . hogNorm as * const _ as
9552                usize } , 80usize , concat ! (
9553                "Alignment of field: " , stringify ! ( VlHog_ ) , "::" ,
9554                stringify ! ( hogNorm ) ));
9555    assert_eq! (unsafe {
9556                & ( * ( 0 as * const VlHog_ ) ) . hogWidth as * const _ as
9557                usize } , 88usize , concat ! (
9558                "Alignment of field: " , stringify ! ( VlHog_ ) , "::" ,
9559                stringify ! ( hogWidth ) ));
9560    assert_eq! (unsafe {
9561                & ( * ( 0 as * const VlHog_ ) ) . hogHeight as * const _ as
9562                usize } , 96usize , concat ! (
9563                "Alignment of field: " , stringify ! ( VlHog_ ) , "::" ,
9564                stringify ! ( hogHeight ) ));
9565}
9566impl Clone for VlHog_ {
9567    fn clone(&self) -> Self { *self }
9568}
9569pub type VlHog = VlHog_;
9570extern "C" {
9571    pub fn vl_hog_new(variant: VlHogVariant, numOrientations: vl_size,
9572                      transposed: vl_bool) -> *mut VlHog;
9573}
9574extern "C" {
9575    pub fn vl_hog_delete(self_: *mut VlHog);
9576}
9577extern "C" {
9578    pub fn vl_hog_process(self_: *mut VlHog, features: *mut f32,
9579                          image: *const f32, width: vl_size, height: vl_size,
9580                          numChannels: vl_size, cellSize: vl_size);
9581}
9582extern "C" {
9583    pub fn vl_hog_put_image(self_: *mut VlHog, image: *const f32,
9584                            width: vl_size, height: vl_size,
9585                            numChannels: vl_size, cellSize: vl_size);
9586}
9587extern "C" {
9588    pub fn vl_hog_put_polar_field(self_: *mut VlHog, modulus: *const f32,
9589                                  angle: *const f32, directed: vl_bool,
9590                                  width: vl_size, height: vl_size,
9591                                  cellSize: vl_size);
9592}
9593extern "C" {
9594    pub fn vl_hog_extract(self_: *mut VlHog, features: *mut f32);
9595}
9596extern "C" {
9597    pub fn vl_hog_get_height(self_: *mut VlHog) -> vl_size;
9598}
9599extern "C" {
9600    pub fn vl_hog_get_width(self_: *mut VlHog) -> vl_size;
9601}
9602extern "C" {
9603    pub fn vl_hog_render(self_: *const VlHog, image: *mut f32,
9604                         features: *const f32, width: vl_size,
9605                         height: vl_size);
9606}
9607extern "C" {
9608    pub fn vl_hog_get_dimension(self_: *const VlHog) -> vl_size;
9609}
9610extern "C" {
9611    pub fn vl_hog_get_permutation(self_: *const VlHog) -> *const vl_index;
9612}
9613extern "C" {
9614    pub fn vl_hog_get_glyph_size(self_: *const VlHog) -> vl_size;
9615}
9616extern "C" {
9617    pub fn vl_hog_get_use_bilinear_orientation_assignments(self_:
9618                                                               *const VlHog)
9619     -> vl_bool;
9620}
9621extern "C" {
9622    pub fn vl_hog_set_use_bilinear_orientation_assignments(self_: *mut VlHog,
9623                                                           x: vl_bool);
9624}
9625#[repr(u32)]
9626/** @brief Type of kernel */
9627#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
9628pub enum VlHomogeneousKernelType {
9629    VlHomogeneousKernelIntersection = 0,
9630    VlHomogeneousKernelChi2 = 1,
9631    VlHomogeneousKernelJS = 2,
9632}
9633#[repr(u32)]
9634/** @brief Type of spectral windowing function  */
9635#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
9636pub enum VlHomogeneousKernelMapWindowType {
9637    VlHomogeneousKernelMapWindowUniform = 0,
9638    VlHomogeneousKernelMapWindowRectangular = 1,
9639}
9640#[repr(C)]
9641#[derive(Debug, Copy, Clone)]
9642pub struct _VlHomogeneousKernelMap([u8; 0]);
9643pub type VlHomogeneousKernelMap = _VlHomogeneousKernelMap;
9644extern "C" {
9645    /** @name Create and destroy
9646 ** @{ */
9647    pub fn vl_homogeneouskernelmap_new(kernelType: VlHomogeneousKernelType,
9648                                       gamma: f64, order: vl_size,
9649                                       period: f64,
9650                                       windowType:
9651                                           VlHomogeneousKernelMapWindowType)
9652     -> *mut VlHomogeneousKernelMap;
9653}
9654extern "C" {
9655    pub fn vl_homogeneouskernelmap_delete(self_: *mut VlHomogeneousKernelMap);
9656}
9657extern "C" {
9658    /** @name Process data
9659 ** @{ */
9660    pub fn vl_homogeneouskernelmap_evaluate_d(self_:
9661                                                  *const VlHomogeneousKernelMap,
9662                                              destination: *mut f64,
9663                                              stride: vl_size, x: f64);
9664}
9665extern "C" {
9666    pub fn vl_homogeneouskernelmap_evaluate_f(self_:
9667                                                  *const VlHomogeneousKernelMap,
9668                                              destination: *mut f32,
9669                                              stride: vl_size, x: f64);
9670}
9671extern "C" {
9672    /** @name Retrieve data and parameters
9673 ** @{ */
9674    pub fn vl_homogeneouskernelmap_get_order(self_:
9675                                                 *const VlHomogeneousKernelMap)
9676     -> vl_size;
9677}
9678extern "C" {
9679    pub fn vl_homogeneouskernelmap_get_dimension(self_:
9680                                                     *const VlHomogeneousKernelMap)
9681     -> vl_size;
9682}
9683extern "C" {
9684    pub fn vl_homogeneouskernelmap_get_kernel_type(self_:
9685                                                       *const VlHomogeneousKernelMap)
9686     -> VlHomogeneousKernelType;
9687}
9688extern "C" {
9689    pub fn vl_homogeneouskernelmap_get_window_type(self_:
9690                                                       *const VlHomogeneousKernelMap)
9691     -> VlHomogeneousKernelMapWindowType;
9692}
9693extern "C" {
9694    pub fn _vl_imconvcol_vf_sse2(dst: *mut f32, dst_stride: vl_size,
9695                                 src: *const f32, src_width: vl_size,
9696                                 src_height: vl_size, src_stride: vl_size,
9697                                 filt: *const f32, filt_begin: vl_index,
9698                                 filt_end: vl_index,
9699                                 step: ::std::os::raw::c_int,
9700                                 flags: ::std::os::raw::c_uint);
9701}
9702extern "C" {
9703    pub fn _vl_imconvcol_vd_sse2(dst: *mut f64, dst_stride: vl_size,
9704                                 src: *const f64, src_width: vl_size,
9705                                 src_height: vl_size, src_stride: vl_size,
9706                                 filt: *const f64, filt_begin: vl_index,
9707                                 filt_end: vl_index,
9708                                 step: ::std::os::raw::c_int,
9709                                 flags: ::std::os::raw::c_uint);
9710}
9711#[repr(u32)]
9712/** @brief Type of quantization for the LBP descriptors
9713 ** @see @ref lbp-quantization
9714 **/
9715#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
9716pub enum _VlLbpMappingType { VlLbpUniform = 0, }
9717pub use self::_VlLbpMappingType as VlLbpMappingType;
9718/** @brief Local Binary Pattern extractor */
9719#[repr(C)]
9720pub struct VlLbp_ {
9721    pub dimension: vl_size,
9722    pub mapping: [vl_uint8; 256usize],
9723    pub transposed: vl_bool,
9724}
9725#[test]
9726fn bindgen_test_layout_VlLbp_() {
9727    assert_eq!(::std::mem::size_of::<VlLbp_>() , 272usize , concat ! (
9728               "Size of: " , stringify ! ( VlLbp_ ) ));
9729    assert_eq! (::std::mem::align_of::<VlLbp_>() , 8usize , concat ! (
9730                "Alignment of " , stringify ! ( VlLbp_ ) ));
9731    assert_eq! (unsafe {
9732                & ( * ( 0 as * const VlLbp_ ) ) . dimension as * const _ as
9733                usize } , 0usize , concat ! (
9734                "Alignment of field: " , stringify ! ( VlLbp_ ) , "::" ,
9735                stringify ! ( dimension ) ));
9736    assert_eq! (unsafe {
9737                & ( * ( 0 as * const VlLbp_ ) ) . mapping as * const _ as
9738                usize } , 8usize , concat ! (
9739                "Alignment of field: " , stringify ! ( VlLbp_ ) , "::" ,
9740                stringify ! ( mapping ) ));
9741    assert_eq! (unsafe {
9742                & ( * ( 0 as * const VlLbp_ ) ) . transposed as * const _ as
9743                usize } , 264usize , concat ! (
9744                "Alignment of field: " , stringify ! ( VlLbp_ ) , "::" ,
9745                stringify ! ( transposed ) ));
9746}
9747pub type VlLbp = VlLbp_;
9748extern "C" {
9749    pub fn vl_lbp_new(type_: VlLbpMappingType, transposed: vl_bool)
9750     -> *mut VlLbp;
9751}
9752extern "C" {
9753    pub fn vl_lbp_delete(self_: *mut VlLbp);
9754}
9755extern "C" {
9756    pub fn vl_lbp_process(self_: *mut VlLbp, features: *mut f32,
9757                          image: *mut f32, width: vl_size, height: vl_size,
9758                          cellSize: vl_size);
9759}
9760extern "C" {
9761    pub fn vl_lbp_get_dimension(self_: *mut VlLbp) -> vl_size;
9762}
9763/** @brief LIOP descriptor extractor object */
9764#[repr(C)]
9765#[derive(Debug, Copy)]
9766pub struct _VlLiopDesc {
9767    /**< Number of neighbours. */
9768    pub numNeighbours: vl_int,
9769    /**< Number of bins. */
9770    pub numSpatialBins: vl_int,
9771    /**< Weight threshold. */
9772    pub intensityThreshold: f32,
9773    /**< LIOP descriptor size. */
9774    pub dimension: vl_size,
9775    pub patchSideLength: vl_size,
9776    pub patchSize: vl_size,
9777    pub patchPixels: *mut vl_uindex,
9778    pub patchIntensities: *mut f32,
9779    pub patchPermutation: *mut vl_uindex,
9780    /**< Point to neighbour radius (distance). */
9781    pub neighRadius: f32,
9782    pub neighIntensities: *mut f32,
9783    pub neighPermutation: *mut vl_uindex,
9784    pub neighSamplesX: *mut f64,
9785    pub neighSamplesY: *mut f64,
9786}
9787#[test]
9788fn bindgen_test_layout__VlLiopDesc() {
9789    assert_eq!(::std::mem::size_of::<_VlLiopDesc>() , 104usize , concat ! (
9790               "Size of: " , stringify ! ( _VlLiopDesc ) ));
9791    assert_eq! (::std::mem::align_of::<_VlLiopDesc>() , 8usize , concat ! (
9792                "Alignment of " , stringify ! ( _VlLiopDesc ) ));
9793    assert_eq! (unsafe {
9794                & ( * ( 0 as * const _VlLiopDesc ) ) . numNeighbours as *
9795                const _ as usize } , 0usize , concat ! (
9796                "Alignment of field: " , stringify ! ( _VlLiopDesc ) , "::" ,
9797                stringify ! ( numNeighbours ) ));
9798    assert_eq! (unsafe {
9799                & ( * ( 0 as * const _VlLiopDesc ) ) . numSpatialBins as *
9800                const _ as usize } , 4usize , concat ! (
9801                "Alignment of field: " , stringify ! ( _VlLiopDesc ) , "::" ,
9802                stringify ! ( numSpatialBins ) ));
9803    assert_eq! (unsafe {
9804                & ( * ( 0 as * const _VlLiopDesc ) ) . intensityThreshold as *
9805                const _ as usize } , 8usize , concat ! (
9806                "Alignment of field: " , stringify ! ( _VlLiopDesc ) , "::" ,
9807                stringify ! ( intensityThreshold ) ));
9808    assert_eq! (unsafe {
9809                & ( * ( 0 as * const _VlLiopDesc ) ) . dimension as * const _
9810                as usize } , 16usize , concat ! (
9811                "Alignment of field: " , stringify ! ( _VlLiopDesc ) , "::" ,
9812                stringify ! ( dimension ) ));
9813    assert_eq! (unsafe {
9814                & ( * ( 0 as * const _VlLiopDesc ) ) . patchSideLength as *
9815                const _ as usize } , 24usize , concat ! (
9816                "Alignment of field: " , stringify ! ( _VlLiopDesc ) , "::" ,
9817                stringify ! ( patchSideLength ) ));
9818    assert_eq! (unsafe {
9819                & ( * ( 0 as * const _VlLiopDesc ) ) . patchSize as * const _
9820                as usize } , 32usize , concat ! (
9821                "Alignment of field: " , stringify ! ( _VlLiopDesc ) , "::" ,
9822                stringify ! ( patchSize ) ));
9823    assert_eq! (unsafe {
9824                & ( * ( 0 as * const _VlLiopDesc ) ) . patchPixels as * const
9825                _ as usize } , 40usize , concat ! (
9826                "Alignment of field: " , stringify ! ( _VlLiopDesc ) , "::" ,
9827                stringify ! ( patchPixels ) ));
9828    assert_eq! (unsafe {
9829                & ( * ( 0 as * const _VlLiopDesc ) ) . patchIntensities as *
9830                const _ as usize } , 48usize , concat ! (
9831                "Alignment of field: " , stringify ! ( _VlLiopDesc ) , "::" ,
9832                stringify ! ( patchIntensities ) ));
9833    assert_eq! (unsafe {
9834                & ( * ( 0 as * const _VlLiopDesc ) ) . patchPermutation as *
9835                const _ as usize } , 56usize , concat ! (
9836                "Alignment of field: " , stringify ! ( _VlLiopDesc ) , "::" ,
9837                stringify ! ( patchPermutation ) ));
9838    assert_eq! (unsafe {
9839                & ( * ( 0 as * const _VlLiopDesc ) ) . neighRadius as * const
9840                _ as usize } , 64usize , concat ! (
9841                "Alignment of field: " , stringify ! ( _VlLiopDesc ) , "::" ,
9842                stringify ! ( neighRadius ) ));
9843    assert_eq! (unsafe {
9844                & ( * ( 0 as * const _VlLiopDesc ) ) . neighIntensities as *
9845                const _ as usize } , 72usize , concat ! (
9846                "Alignment of field: " , stringify ! ( _VlLiopDesc ) , "::" ,
9847                stringify ! ( neighIntensities ) ));
9848    assert_eq! (unsafe {
9849                & ( * ( 0 as * const _VlLiopDesc ) ) . neighPermutation as *
9850                const _ as usize } , 80usize , concat ! (
9851                "Alignment of field: " , stringify ! ( _VlLiopDesc ) , "::" ,
9852                stringify ! ( neighPermutation ) ));
9853    assert_eq! (unsafe {
9854                & ( * ( 0 as * const _VlLiopDesc ) ) . neighSamplesX as *
9855                const _ as usize } , 88usize , concat ! (
9856                "Alignment of field: " , stringify ! ( _VlLiopDesc ) , "::" ,
9857                stringify ! ( neighSamplesX ) ));
9858    assert_eq! (unsafe {
9859                & ( * ( 0 as * const _VlLiopDesc ) ) . neighSamplesY as *
9860                const _ as usize } , 96usize , concat ! (
9861                "Alignment of field: " , stringify ! ( _VlLiopDesc ) , "::" ,
9862                stringify ! ( neighSamplesY ) ));
9863}
9864impl Clone for _VlLiopDesc {
9865    fn clone(&self) -> Self { *self }
9866}
9867pub type VlLiopDesc = _VlLiopDesc;
9868extern "C" {
9869    /** @name Construct and destroy
9870 ** @{ */
9871    pub fn vl_liopdesc_new(numNeighbours: vl_int, numSpatialBins: vl_int,
9872                           radius: f32, sideLength: vl_size)
9873     -> *mut VlLiopDesc;
9874}
9875extern "C" {
9876    pub fn vl_liopdesc_new_basic(sideLength: vl_size) -> *mut VlLiopDesc;
9877}
9878extern "C" {
9879    pub fn vl_liopdesc_delete(self_: *mut VlLiopDesc);
9880}
9881extern "C" {
9882    /**  @name Get data and parameters
9883 **  @{ */
9884    pub fn vl_liopdesc_get_dimension(self_: *const VlLiopDesc) -> vl_size;
9885}
9886extern "C" {
9887    pub fn vl_liopdesc_get_num_neighbours(self_: *const VlLiopDesc)
9888     -> vl_size;
9889}
9890extern "C" {
9891    pub fn vl_liopdesc_get_intensity_threshold(self_: *const VlLiopDesc)
9892     -> f32;
9893}
9894extern "C" {
9895    pub fn vl_liopdesc_get_num_spatial_bins(self_: *const VlLiopDesc)
9896     -> vl_size;
9897}
9898extern "C" {
9899    pub fn vl_liopdesc_get_neighbourhood_radius(self_: *const VlLiopDesc)
9900     -> f64;
9901}
9902extern "C" {
9903    pub fn vl_liopdesc_set_intensity_threshold(self_: *mut VlLiopDesc,
9904                                               x: f32);
9905}
9906extern "C" {
9907    /**  @name Compute LIOP descriptor
9908 **  @{ */
9909    pub fn vl_liopdesc_process(liop: *mut VlLiopDesc, desc: *mut f32,
9910                               patch: *const f32);
9911}
9912extern "C" {
9913    pub fn _vl_distance_mahalanobis_sq_avx_d(dimension: vl_size,
9914                                             X: *const f64, MU: *const f64,
9915                                             S: *const f64) -> f64;
9916}
9917extern "C" {
9918    pub fn _vl_distance_l2_avx_d(dimension: vl_size, X: *const f64,
9919                                 Y: *const f64) -> f64;
9920}
9921extern "C" {
9922    pub fn _vl_weighted_sigma_avx_d(dimension: vl_size, S: *mut f64,
9923                                    X: *const f64, Y: *const f64, W: f64);
9924}
9925extern "C" {
9926    pub fn _vl_weighted_mean_avx_d(dimension: vl_size, MU: *mut f64,
9927                                   X: *const f64, W: f64);
9928}
9929extern "C" {
9930    pub fn _vl_distance_mahalanobis_sq_avx_f(dimension: vl_size,
9931                                             X: *const f32, MU: *const f32,
9932                                             S: *const f32) -> f32;
9933}
9934extern "C" {
9935    pub fn _vl_distance_l2_avx_f(dimension: vl_size, X: *const f32,
9936                                 Y: *const f32) -> f32;
9937}
9938extern "C" {
9939    pub fn _vl_weighted_sigma_avx_f(dimension: vl_size, S: *mut f32,
9940                                    X: *const f32, Y: *const f32, W: f32);
9941}
9942extern "C" {
9943    pub fn _vl_weighted_mean_avx_f(dimension: vl_size, MU: *mut f32,
9944                                   X: *const f32, W: f32);
9945}
9946extern "C" {
9947    pub fn _vl_dot_sse2_d(dimension: vl_size, X: *const f64, Y: *const f64)
9948     -> f64;
9949}
9950extern "C" {
9951    pub fn _vl_distance_l2_sse2_d(dimension: vl_size, X: *const f64,
9952                                  Y: *const f64) -> f64;
9953}
9954extern "C" {
9955    pub fn _vl_distance_l1_sse2_d(dimension: vl_size, X: *const f64,
9956                                  Y: *const f64) -> f64;
9957}
9958extern "C" {
9959    pub fn _vl_distance_chi2_sse2_d(dimension: vl_size, X: *const f64,
9960                                    Y: *const f64) -> f64;
9961}
9962extern "C" {
9963    pub fn _vl_kernel_l2_sse2_d(dimension: vl_size, X: *const f64,
9964                                Y: *const f64) -> f64;
9965}
9966extern "C" {
9967    pub fn _vl_kernel_l1_sse2_d(dimension: vl_size, X: *const f64,
9968                                Y: *const f64) -> f64;
9969}
9970extern "C" {
9971    pub fn _vl_kernel_chi2_sse2_d(dimension: vl_size, X: *const f64,
9972                                  Y: *const f64) -> f64;
9973}
9974extern "C" {
9975    pub fn _vl_distance_mahalanobis_sq_sse2_d(dimension: vl_size,
9976                                              X: *const f64, MU: *const f64,
9977                                              S: *const f64) -> f64;
9978}
9979extern "C" {
9980    pub fn _vl_weighted_sigma_sse2_d(dimension: vl_size, S: *mut f64,
9981                                     X: *const f64, Y: *const f64, W: f64);
9982}
9983extern "C" {
9984    pub fn _vl_weighted_mean_sse2_d(dimension: vl_size, MU: *mut f64,
9985                                    X: *const f64, W: f64);
9986}
9987extern "C" {
9988    pub fn _vl_dot_sse2_f(dimension: vl_size, X: *const f32, Y: *const f32)
9989     -> f32;
9990}
9991extern "C" {
9992    pub fn _vl_distance_l2_sse2_f(dimension: vl_size, X: *const f32,
9993                                  Y: *const f32) -> f32;
9994}
9995extern "C" {
9996    pub fn _vl_distance_l1_sse2_f(dimension: vl_size, X: *const f32,
9997                                  Y: *const f32) -> f32;
9998}
9999extern "C" {
10000    pub fn _vl_distance_chi2_sse2_f(dimension: vl_size, X: *const f32,
10001                                    Y: *const f32) -> f32;
10002}
10003extern "C" {
10004    pub fn _vl_kernel_l2_sse2_f(dimension: vl_size, X: *const f32,
10005                                Y: *const f32) -> f32;
10006}
10007extern "C" {
10008    pub fn _vl_kernel_l1_sse2_f(dimension: vl_size, X: *const f32,
10009                                Y: *const f32) -> f32;
10010}
10011extern "C" {
10012    pub fn _vl_kernel_chi2_sse2_f(dimension: vl_size, X: *const f32,
10013                                  Y: *const f32) -> f32;
10014}
10015extern "C" {
10016    pub fn _vl_distance_mahalanobis_sq_sse2_f(dimension: vl_size,
10017                                              X: *const f32, MU: *const f32,
10018                                              S: *const f32) -> f32;
10019}
10020extern "C" {
10021    pub fn _vl_weighted_sigma_sse2_f(dimension: vl_size, S: *mut f32,
10022                                     X: *const f32, Y: *const f32, W: f32);
10023}
10024extern "C" {
10025    pub fn _vl_weighted_mean_sse2_f(dimension: vl_size, MU: *mut f32,
10026                                    X: *const f32, W: f32);
10027}
10028/** @brief MSER image data type
10029 **
10030 ** This is the data type of the image pixels. It has to be an
10031 ** integer.
10032 **/
10033pub type vl_mser_pix = vl_uint8;
10034/** @internal
10035 ** @brief MSER filter
10036 ** @see @ref mser
10037 **/
10038#[repr(C)]
10039#[derive(Debug, Copy)]
10040pub struct _VlMserFilt {
10041    /**< number of dimensions                    */
10042    pub ndims: ::std::os::raw::c_int,
10043    /**< dimensions                              */
10044    pub dims: *mut ::std::os::raw::c_int,
10045    /**< number of image elements (pixels)       */
10046    pub nel: ::std::os::raw::c_int,
10047    /**< N-dimensional subscript                 */
10048    pub subs: *mut ::std::os::raw::c_int,
10049    /**< another subscript                       */
10050    pub dsubs: *mut ::std::os::raw::c_int,
10051    /**< strides to move in image data           */
10052    pub strides: *mut ::std::os::raw::c_int,
10053    /**< pixel ordering                          */
10054    pub perm: *mut vl_uint,
10055    /**< sequence of join ops                    */
10056    pub joins: *mut vl_uint,
10057    /**< number of join ops                      */
10058    pub njoins: ::std::os::raw::c_int,
10059    /**< basic regions                           */
10060    pub r: *mut VlMserReg,
10061    /**< extremal tree                           */
10062    pub er: *mut VlMserExtrReg,
10063    /**< maximally stable extremal regions       */
10064    pub mer: *mut vl_uint,
10065    /**< number of extremal regions              */
10066    pub ner: ::std::os::raw::c_int,
10067    /**< number of maximally stable extr. reg.   */
10068    pub nmer: ::std::os::raw::c_int,
10069    /**< size of er buffer                       */
10070    pub rer: ::std::os::raw::c_int,
10071    /**< size of mer buffer                      */
10072    pub rmer: ::std::os::raw::c_int,
10073    /**< moment accumulator.                    */
10074    pub acc: *mut f32,
10075    /**< ellipsoids list.                       */
10076    pub ell: *mut f32,
10077    /**< size of ell buffer                     */
10078    pub rell: ::std::os::raw::c_int,
10079    /**< number of ellipsoids extracted         */
10080    pub nell: ::std::os::raw::c_int,
10081    /**< number of dof of ellipsoids.           */
10082    pub dof: ::std::os::raw::c_int,
10083    /**< be verbose                             */
10084    pub verbose: vl_bool,
10085    /**< delta filter parameter                 */
10086    pub delta: ::std::os::raw::c_int,
10087    /**< badness test parameter                 */
10088    pub max_area: f64,
10089    /**< badness test parameter                 */
10090    pub min_area: f64,
10091    /**< badness test parameter                 */
10092    pub max_variation: f64,
10093    /**< minimum diversity                      */
10094    pub min_diversity: f64,
10095    pub stats: VlMserStats,
10096}
10097#[test]
10098fn bindgen_test_layout__VlMserFilt() {
10099    assert_eq!(::std::mem::size_of::<_VlMserFilt>() , 208usize , concat ! (
10100               "Size of: " , stringify ! ( _VlMserFilt ) ));
10101    assert_eq! (::std::mem::align_of::<_VlMserFilt>() , 8usize , concat ! (
10102                "Alignment of " , stringify ! ( _VlMserFilt ) ));
10103    assert_eq! (unsafe {
10104                & ( * ( 0 as * const _VlMserFilt ) ) . ndims as * const _ as
10105                usize } , 0usize , concat ! (
10106                "Alignment of field: " , stringify ! ( _VlMserFilt ) , "::" ,
10107                stringify ! ( ndims ) ));
10108    assert_eq! (unsafe {
10109                & ( * ( 0 as * const _VlMserFilt ) ) . dims as * const _ as
10110                usize } , 8usize , concat ! (
10111                "Alignment of field: " , stringify ! ( _VlMserFilt ) , "::" ,
10112                stringify ! ( dims ) ));
10113    assert_eq! (unsafe {
10114                & ( * ( 0 as * const _VlMserFilt ) ) . nel as * const _ as
10115                usize } , 16usize , concat ! (
10116                "Alignment of field: " , stringify ! ( _VlMserFilt ) , "::" ,
10117                stringify ! ( nel ) ));
10118    assert_eq! (unsafe {
10119                & ( * ( 0 as * const _VlMserFilt ) ) . subs as * const _ as
10120                usize } , 24usize , concat ! (
10121                "Alignment of field: " , stringify ! ( _VlMserFilt ) , "::" ,
10122                stringify ! ( subs ) ));
10123    assert_eq! (unsafe {
10124                & ( * ( 0 as * const _VlMserFilt ) ) . dsubs as * const _ as
10125                usize } , 32usize , concat ! (
10126                "Alignment of field: " , stringify ! ( _VlMserFilt ) , "::" ,
10127                stringify ! ( dsubs ) ));
10128    assert_eq! (unsafe {
10129                & ( * ( 0 as * const _VlMserFilt ) ) . strides as * const _ as
10130                usize } , 40usize , concat ! (
10131                "Alignment of field: " , stringify ! ( _VlMserFilt ) , "::" ,
10132                stringify ! ( strides ) ));
10133    assert_eq! (unsafe {
10134                & ( * ( 0 as * const _VlMserFilt ) ) . perm as * const _ as
10135                usize } , 48usize , concat ! (
10136                "Alignment of field: " , stringify ! ( _VlMserFilt ) , "::" ,
10137                stringify ! ( perm ) ));
10138    assert_eq! (unsafe {
10139                & ( * ( 0 as * const _VlMserFilt ) ) . joins as * const _ as
10140                usize } , 56usize , concat ! (
10141                "Alignment of field: " , stringify ! ( _VlMserFilt ) , "::" ,
10142                stringify ! ( joins ) ));
10143    assert_eq! (unsafe {
10144                & ( * ( 0 as * const _VlMserFilt ) ) . njoins as * const _ as
10145                usize } , 64usize , concat ! (
10146                "Alignment of field: " , stringify ! ( _VlMserFilt ) , "::" ,
10147                stringify ! ( njoins ) ));
10148    assert_eq! (unsafe {
10149                & ( * ( 0 as * const _VlMserFilt ) ) . r as * const _ as usize
10150                } , 72usize , concat ! (
10151                "Alignment of field: " , stringify ! ( _VlMserFilt ) , "::" ,
10152                stringify ! ( r ) ));
10153    assert_eq! (unsafe {
10154                & ( * ( 0 as * const _VlMserFilt ) ) . er as * const _ as
10155                usize } , 80usize , concat ! (
10156                "Alignment of field: " , stringify ! ( _VlMserFilt ) , "::" ,
10157                stringify ! ( er ) ));
10158    assert_eq! (unsafe {
10159                & ( * ( 0 as * const _VlMserFilt ) ) . mer as * const _ as
10160                usize } , 88usize , concat ! (
10161                "Alignment of field: " , stringify ! ( _VlMserFilt ) , "::" ,
10162                stringify ! ( mer ) ));
10163    assert_eq! (unsafe {
10164                & ( * ( 0 as * const _VlMserFilt ) ) . ner as * const _ as
10165                usize } , 96usize , concat ! (
10166                "Alignment of field: " , stringify ! ( _VlMserFilt ) , "::" ,
10167                stringify ! ( ner ) ));
10168    assert_eq! (unsafe {
10169                & ( * ( 0 as * const _VlMserFilt ) ) . nmer as * const _ as
10170                usize } , 100usize , concat ! (
10171                "Alignment of field: " , stringify ! ( _VlMserFilt ) , "::" ,
10172                stringify ! ( nmer ) ));
10173    assert_eq! (unsafe {
10174                & ( * ( 0 as * const _VlMserFilt ) ) . rer as * const _ as
10175                usize } , 104usize , concat ! (
10176                "Alignment of field: " , stringify ! ( _VlMserFilt ) , "::" ,
10177                stringify ! ( rer ) ));
10178    assert_eq! (unsafe {
10179                & ( * ( 0 as * const _VlMserFilt ) ) . rmer as * const _ as
10180                usize } , 108usize , concat ! (
10181                "Alignment of field: " , stringify ! ( _VlMserFilt ) , "::" ,
10182                stringify ! ( rmer ) ));
10183    assert_eq! (unsafe {
10184                & ( * ( 0 as * const _VlMserFilt ) ) . acc as * const _ as
10185                usize } , 112usize , concat ! (
10186                "Alignment of field: " , stringify ! ( _VlMserFilt ) , "::" ,
10187                stringify ! ( acc ) ));
10188    assert_eq! (unsafe {
10189                & ( * ( 0 as * const _VlMserFilt ) ) . ell as * const _ as
10190                usize } , 120usize , concat ! (
10191                "Alignment of field: " , stringify ! ( _VlMserFilt ) , "::" ,
10192                stringify ! ( ell ) ));
10193    assert_eq! (unsafe {
10194                & ( * ( 0 as * const _VlMserFilt ) ) . rell as * const _ as
10195                usize } , 128usize , concat ! (
10196                "Alignment of field: " , stringify ! ( _VlMserFilt ) , "::" ,
10197                stringify ! ( rell ) ));
10198    assert_eq! (unsafe {
10199                & ( * ( 0 as * const _VlMserFilt ) ) . nell as * const _ as
10200                usize } , 132usize , concat ! (
10201                "Alignment of field: " , stringify ! ( _VlMserFilt ) , "::" ,
10202                stringify ! ( nell ) ));
10203    assert_eq! (unsafe {
10204                & ( * ( 0 as * const _VlMserFilt ) ) . dof as * const _ as
10205                usize } , 136usize , concat ! (
10206                "Alignment of field: " , stringify ! ( _VlMserFilt ) , "::" ,
10207                stringify ! ( dof ) ));
10208    assert_eq! (unsafe {
10209                & ( * ( 0 as * const _VlMserFilt ) ) . verbose as * const _ as
10210                usize } , 140usize , concat ! (
10211                "Alignment of field: " , stringify ! ( _VlMserFilt ) , "::" ,
10212                stringify ! ( verbose ) ));
10213    assert_eq! (unsafe {
10214                & ( * ( 0 as * const _VlMserFilt ) ) . delta as * const _ as
10215                usize } , 144usize , concat ! (
10216                "Alignment of field: " , stringify ! ( _VlMserFilt ) , "::" ,
10217                stringify ! ( delta ) ));
10218    assert_eq! (unsafe {
10219                & ( * ( 0 as * const _VlMserFilt ) ) . max_area as * const _
10220                as usize } , 152usize , concat ! (
10221                "Alignment of field: " , stringify ! ( _VlMserFilt ) , "::" ,
10222                stringify ! ( max_area ) ));
10223    assert_eq! (unsafe {
10224                & ( * ( 0 as * const _VlMserFilt ) ) . min_area as * const _
10225                as usize } , 160usize , concat ! (
10226                "Alignment of field: " , stringify ! ( _VlMserFilt ) , "::" ,
10227                stringify ! ( min_area ) ));
10228    assert_eq! (unsafe {
10229                & ( * ( 0 as * const _VlMserFilt ) ) . max_variation as *
10230                const _ as usize } , 168usize , concat ! (
10231                "Alignment of field: " , stringify ! ( _VlMserFilt ) , "::" ,
10232                stringify ! ( max_variation ) ));
10233    assert_eq! (unsafe {
10234                & ( * ( 0 as * const _VlMserFilt ) ) . min_diversity as *
10235                const _ as usize } , 176usize , concat ! (
10236                "Alignment of field: " , stringify ! ( _VlMserFilt ) , "::" ,
10237                stringify ! ( min_diversity ) ));
10238    assert_eq! (unsafe {
10239                & ( * ( 0 as * const _VlMserFilt ) ) . stats as * const _ as
10240                usize } , 184usize , concat ! (
10241                "Alignment of field: " , stringify ! ( _VlMserFilt ) , "::" ,
10242                stringify ! ( stats ) ));
10243}
10244impl Clone for _VlMserFilt {
10245    fn clone(&self) -> Self { *self }
10246}
10247/** @brief MSER Filter
10248 **
10249 ** The MSER filter computes the Maximally Stable Extremal Regions of
10250 ** an image.
10251 **
10252 ** @sa @ref mser
10253 **/
10254pub type VlMserFilt = _VlMserFilt;
10255/** @brief MSER filter statistics definition */
10256#[repr(C)]
10257#[derive(Debug, Copy)]
10258pub struct _VlMserStats {
10259    /**< number of extremal regions                                */
10260    pub num_extremal: ::std::os::raw::c_int,
10261    /**< number of unstable extremal regions                       */
10262    pub num_unstable: ::std::os::raw::c_int,
10263    /**< number of regions that failed the absolute stability test */
10264    pub num_abs_unstable: ::std::os::raw::c_int,
10265    /**< number of regions that failed the maximum size test       */
10266    pub num_too_big: ::std::os::raw::c_int,
10267    /**< number of regions that failed the minimum size test       */
10268    pub num_too_small: ::std::os::raw::c_int,
10269    /**< number of regions that failed the duplicate test          */
10270    pub num_duplicates: ::std::os::raw::c_int,
10271}
10272#[test]
10273fn bindgen_test_layout__VlMserStats() {
10274    assert_eq!(::std::mem::size_of::<_VlMserStats>() , 24usize , concat ! (
10275               "Size of: " , stringify ! ( _VlMserStats ) ));
10276    assert_eq! (::std::mem::align_of::<_VlMserStats>() , 4usize , concat ! (
10277                "Alignment of " , stringify ! ( _VlMserStats ) ));
10278    assert_eq! (unsafe {
10279                & ( * ( 0 as * const _VlMserStats ) ) . num_extremal as *
10280                const _ as usize } , 0usize , concat ! (
10281                "Alignment of field: " , stringify ! ( _VlMserStats ) , "::" ,
10282                stringify ! ( num_extremal ) ));
10283    assert_eq! (unsafe {
10284                & ( * ( 0 as * const _VlMserStats ) ) . num_unstable as *
10285                const _ as usize } , 4usize , concat ! (
10286                "Alignment of field: " , stringify ! ( _VlMserStats ) , "::" ,
10287                stringify ! ( num_unstable ) ));
10288    assert_eq! (unsafe {
10289                & ( * ( 0 as * const _VlMserStats ) ) . num_abs_unstable as *
10290                const _ as usize } , 8usize , concat ! (
10291                "Alignment of field: " , stringify ! ( _VlMserStats ) , "::" ,
10292                stringify ! ( num_abs_unstable ) ));
10293    assert_eq! (unsafe {
10294                & ( * ( 0 as * const _VlMserStats ) ) . num_too_big as * const
10295                _ as usize } , 12usize , concat ! (
10296                "Alignment of field: " , stringify ! ( _VlMserStats ) , "::" ,
10297                stringify ! ( num_too_big ) ));
10298    assert_eq! (unsafe {
10299                & ( * ( 0 as * const _VlMserStats ) ) . num_too_small as *
10300                const _ as usize } , 16usize , concat ! (
10301                "Alignment of field: " , stringify ! ( _VlMserStats ) , "::" ,
10302                stringify ! ( num_too_small ) ));
10303    assert_eq! (unsafe {
10304                & ( * ( 0 as * const _VlMserStats ) ) . num_duplicates as *
10305                const _ as usize } , 20usize , concat ! (
10306                "Alignment of field: " , stringify ! ( _VlMserStats ) , "::" ,
10307                stringify ! ( num_duplicates ) ));
10308}
10309impl Clone for _VlMserStats {
10310    fn clone(&self) -> Self { *self }
10311}
10312/** @brief MSER filter statistics */
10313pub type VlMserStats = _VlMserStats;
10314extern "C" {
10315    /** @name Construction and Destruction
10316 ** @{
10317 **/
10318    pub fn vl_mser_new(ndims: ::std::os::raw::c_int,
10319                       dims: *const ::std::os::raw::c_int) -> *mut VlMserFilt;
10320}
10321extern "C" {
10322    pub fn vl_mser_delete(f: *mut VlMserFilt);
10323}
10324extern "C" {
10325    /** @name Processing
10326 ** @{
10327 **/
10328    pub fn vl_mser_process(f: *mut VlMserFilt, im: *const vl_mser_pix);
10329}
10330extern "C" {
10331    pub fn vl_mser_ell_fit(f: *mut VlMserFilt);
10332}
10333/** @internal
10334 ** @brief MSER accumulator data type
10335 **
10336 ** This is a large integer type. It should be large enough to contain
10337 ** a number equal to the area (volume) of the image by the image
10338 ** width by the image height (for instance, if the image is a square
10339 ** of side 256, the maximum value is 256 x 256 x 256).
10340 **/
10341pub type vl_mser_acc = f32;
10342/** @internal
10343 ** @brief MSER: basic region (declaration)
10344 **
10345 ** Extremal regions and maximally stable extremal regions are
10346 ** instances of image regions.
10347 **
10348 ** There is an image region for each pixel of the image. Each region
10349 ** is represented by an instance of this structure.  Regions are
10350 ** stored into an array in pixel order.
10351 **
10352 ** Regions are arranged into a forest. VlMserReg::parent points to
10353 ** the parent node, or to the node itself if the node is a root.
10354 ** VlMserReg::parent is the index of the node in the node array
10355 ** (which therefore is also the index of the corresponding
10356 ** pixel). VlMserReg::height is the distance of the fartest leaf. If
10357 ** the node itself is a leaf, then VlMserReg::height is zero.
10358 **
10359 ** VlMserReg::area is the area of the image region corresponding to
10360 ** this node.
10361 **
10362 ** VlMserReg::region is the extremal region identifier. Not all
10363 ** regions are extremal regions however; if the region is NOT
10364 ** extremal, this field is set to ....
10365 **/
10366#[repr(C)]
10367#[derive(Debug, Copy)]
10368pub struct _VlMserReg {
10369    /**< points to the parent region.            */
10370    pub parent: vl_uint,
10371    /**< points to a region closer to a root.    */
10372    pub shortcut: vl_uint,
10373    /**< region height in the forest.            */
10374    pub height: vl_uint,
10375    /**< area of the region.                     */
10376    pub area: vl_uint,
10377}
10378#[test]
10379fn bindgen_test_layout__VlMserReg() {
10380    assert_eq!(::std::mem::size_of::<_VlMserReg>() , 16usize , concat ! (
10381               "Size of: " , stringify ! ( _VlMserReg ) ));
10382    assert_eq! (::std::mem::align_of::<_VlMserReg>() , 4usize , concat ! (
10383                "Alignment of " , stringify ! ( _VlMserReg ) ));
10384    assert_eq! (unsafe {
10385                & ( * ( 0 as * const _VlMserReg ) ) . parent as * const _ as
10386                usize } , 0usize , concat ! (
10387                "Alignment of field: " , stringify ! ( _VlMserReg ) , "::" ,
10388                stringify ! ( parent ) ));
10389    assert_eq! (unsafe {
10390                & ( * ( 0 as * const _VlMserReg ) ) . shortcut as * const _ as
10391                usize } , 4usize , concat ! (
10392                "Alignment of field: " , stringify ! ( _VlMserReg ) , "::" ,
10393                stringify ! ( shortcut ) ));
10394    assert_eq! (unsafe {
10395                & ( * ( 0 as * const _VlMserReg ) ) . height as * const _ as
10396                usize } , 8usize , concat ! (
10397                "Alignment of field: " , stringify ! ( _VlMserReg ) , "::" ,
10398                stringify ! ( height ) ));
10399    assert_eq! (unsafe {
10400                & ( * ( 0 as * const _VlMserReg ) ) . area as * const _ as
10401                usize } , 12usize , concat ! (
10402                "Alignment of field: " , stringify ! ( _VlMserReg ) , "::" ,
10403                stringify ! ( area ) ));
10404}
10405impl Clone for _VlMserReg {
10406    fn clone(&self) -> Self { *self }
10407}
10408/** @internal @brief MSER: basic region */
10409pub type VlMserReg = _VlMserReg;
10410/** @internal
10411 ** @brief MSER: extremal region (declaration)
10412 **
10413 ** Extremal regions (ER) are extracted from the region forest. Each
10414 ** region is represented by an instance of this structure. The
10415 ** structures are stored into an array, in arbitrary order.
10416 **
10417 ** ER are arranged into a tree. @a parent points to the parent ER, or
10418 ** to itself if the ER is the root.
10419 **
10420 ** An instance of the structure represents the extremal region of the
10421 ** level set of intensity VlMserExtrReg::value and containing the
10422 ** pixel VlMserExtReg::index.
10423 **
10424 ** VlMserExtrReg::area is the area of the extremal region and
10425 ** VlMserExtrReg::area_top is the area of the extremal region
10426 ** containing this region in the level set of intensity
10427 ** VlMserExtrReg::area + @c delta.
10428 **
10429 ** VlMserExtrReg::variation is the relative area variation @c
10430 ** (area_top-area)/area.
10431 **
10432 ** VlMserExtrReg::max_stable is a flag signaling whether this extremal
10433 ** region is also maximally stable.
10434 **/
10435#[repr(C)]
10436#[derive(Debug, Copy)]
10437pub struct _VlMserExtrReg {
10438    /**< index of the parent region                   */
10439    pub parent: ::std::os::raw::c_int,
10440    /**< index of pivot pixel                         */
10441    pub index: ::std::os::raw::c_int,
10442    /**< value of pivot pixel                         */
10443    pub value: vl_mser_pix,
10444    /**< shortcut used when building a tree           */
10445    pub shortcut: vl_uint,
10446    /**< area of the region                           */
10447    pub area: vl_uint,
10448    /**< rel. area variation                          */
10449    pub variation: f32,
10450    /**< max stable number (=0 if not maxstable)      */
10451    pub max_stable: vl_uint,
10452}
10453#[test]
10454fn bindgen_test_layout__VlMserExtrReg() {
10455    assert_eq!(::std::mem::size_of::<_VlMserExtrReg>() , 28usize , concat ! (
10456               "Size of: " , stringify ! ( _VlMserExtrReg ) ));
10457    assert_eq! (::std::mem::align_of::<_VlMserExtrReg>() , 4usize , concat ! (
10458                "Alignment of " , stringify ! ( _VlMserExtrReg ) ));
10459    assert_eq! (unsafe {
10460                & ( * ( 0 as * const _VlMserExtrReg ) ) . parent as * const _
10461                as usize } , 0usize , concat ! (
10462                "Alignment of field: " , stringify ! ( _VlMserExtrReg ) , "::"
10463                , stringify ! ( parent ) ));
10464    assert_eq! (unsafe {
10465                & ( * ( 0 as * const _VlMserExtrReg ) ) . index as * const _
10466                as usize } , 4usize , concat ! (
10467                "Alignment of field: " , stringify ! ( _VlMserExtrReg ) , "::"
10468                , stringify ! ( index ) ));
10469    assert_eq! (unsafe {
10470                & ( * ( 0 as * const _VlMserExtrReg ) ) . value as * const _
10471                as usize } , 8usize , concat ! (
10472                "Alignment of field: " , stringify ! ( _VlMserExtrReg ) , "::"
10473                , stringify ! ( value ) ));
10474    assert_eq! (unsafe {
10475                & ( * ( 0 as * const _VlMserExtrReg ) ) . shortcut as * const
10476                _ as usize } , 12usize , concat ! (
10477                "Alignment of field: " , stringify ! ( _VlMserExtrReg ) , "::"
10478                , stringify ! ( shortcut ) ));
10479    assert_eq! (unsafe {
10480                & ( * ( 0 as * const _VlMserExtrReg ) ) . area as * const _ as
10481                usize } , 16usize , concat ! (
10482                "Alignment of field: " , stringify ! ( _VlMserExtrReg ) , "::"
10483                , stringify ! ( area ) ));
10484    assert_eq! (unsafe {
10485                & ( * ( 0 as * const _VlMserExtrReg ) ) . variation as * const
10486                _ as usize } , 20usize , concat ! (
10487                "Alignment of field: " , stringify ! ( _VlMserExtrReg ) , "::"
10488                , stringify ! ( variation ) ));
10489    assert_eq! (unsafe {
10490                & ( * ( 0 as * const _VlMserExtrReg ) ) . max_stable as *
10491                const _ as usize } , 24usize , concat ! (
10492                "Alignment of field: " , stringify ! ( _VlMserExtrReg ) , "::"
10493                , stringify ! ( max_stable ) ));
10494}
10495impl Clone for _VlMserExtrReg {
10496    fn clone(&self) -> Self { *self }
10497}
10498/** @internal
10499 ** @brief MSER: extremal region */
10500pub type VlMserExtrReg = _VlMserExtrReg;
10501/** @brief PGM image meta data
10502 **
10503 ** A PGM image is a 2-D array of pixels of width #width and height
10504 ** #height. Each pixel is an integer one or two bytes wide, depending
10505 ** whether #max_value is smaller than 256.
10506 **/
10507#[repr(C)]
10508#[derive(Debug, Copy)]
10509pub struct _VlPgmImage {
10510    /**< image width.                     */
10511    pub width: vl_size,
10512    /**< image height.                    */
10513    pub height: vl_size,
10514    /**< pixel maximum value (<= 2^16-1). */
10515    pub max_value: vl_size,
10516    /**< is RAW format?                   */
10517    pub is_raw: vl_bool,
10518}
10519#[test]
10520fn bindgen_test_layout__VlPgmImage() {
10521    assert_eq!(::std::mem::size_of::<_VlPgmImage>() , 32usize , concat ! (
10522               "Size of: " , stringify ! ( _VlPgmImage ) ));
10523    assert_eq! (::std::mem::align_of::<_VlPgmImage>() , 8usize , concat ! (
10524                "Alignment of " , stringify ! ( _VlPgmImage ) ));
10525    assert_eq! (unsafe {
10526                & ( * ( 0 as * const _VlPgmImage ) ) . width as * const _ as
10527                usize } , 0usize , concat ! (
10528                "Alignment of field: " , stringify ! ( _VlPgmImage ) , "::" ,
10529                stringify ! ( width ) ));
10530    assert_eq! (unsafe {
10531                & ( * ( 0 as * const _VlPgmImage ) ) . height as * const _ as
10532                usize } , 8usize , concat ! (
10533                "Alignment of field: " , stringify ! ( _VlPgmImage ) , "::" ,
10534                stringify ! ( height ) ));
10535    assert_eq! (unsafe {
10536                & ( * ( 0 as * const _VlPgmImage ) ) . max_value as * const _
10537                as usize } , 16usize , concat ! (
10538                "Alignment of field: " , stringify ! ( _VlPgmImage ) , "::" ,
10539                stringify ! ( max_value ) ));
10540    assert_eq! (unsafe {
10541                & ( * ( 0 as * const _VlPgmImage ) ) . is_raw as * const _ as
10542                usize } , 24usize , concat ! (
10543                "Alignment of field: " , stringify ! ( _VlPgmImage ) , "::" ,
10544                stringify ! ( is_raw ) ));
10545}
10546impl Clone for _VlPgmImage {
10547    fn clone(&self) -> Self { *self }
10548}
10549pub type VlPgmImage = _VlPgmImage;
10550extern "C" {
10551    /** @name Core operations
10552 ** @{ */
10553    pub fn vl_pgm_extract_head(f: *mut FILE, im: *mut VlPgmImage)
10554     -> ::std::os::raw::c_int;
10555}
10556extern "C" {
10557    pub fn vl_pgm_extract_data(f: *mut FILE, im: *const VlPgmImage,
10558                               data: *mut ::std::os::raw::c_void)
10559     -> ::std::os::raw::c_int;
10560}
10561extern "C" {
10562    pub fn vl_pgm_insert(f: *mut FILE, im: *const VlPgmImage,
10563                         data: *const ::std::os::raw::c_void)
10564     -> ::std::os::raw::c_int;
10565}
10566extern "C" {
10567    pub fn vl_pgm_get_npixels(im: *const VlPgmImage) -> vl_size;
10568}
10569extern "C" {
10570    pub fn vl_pgm_get_bpp(im: *const VlPgmImage) -> vl_size;
10571}
10572extern "C" {
10573    /** @name Helper functions
10574 ** @{ */
10575    pub fn vl_pgm_write(name: *const ::std::os::raw::c_char,
10576                        data: *const vl_uint8, width: ::std::os::raw::c_int,
10577                        height: ::std::os::raw::c_int)
10578     -> ::std::os::raw::c_int;
10579}
10580extern "C" {
10581    pub fn vl_pgm_write_f(name: *const ::std::os::raw::c_char,
10582                          data: *const f32, width: ::std::os::raw::c_int,
10583                          height: ::std::os::raw::c_int)
10584     -> ::std::os::raw::c_int;
10585}
10586extern "C" {
10587    pub fn vl_pgm_read_new(name: *const ::std::os::raw::c_char,
10588                           im: *mut VlPgmImage, data: *mut *mut vl_uint8)
10589     -> ::std::os::raw::c_int;
10590}
10591extern "C" {
10592    pub fn vl_pgm_read_new_f(name: *const ::std::os::raw::c_char,
10593                             im: *mut VlPgmImage, data: *mut *mut f32)
10594     -> ::std::os::raw::c_int;
10595}
10596/** @brief quick shift datatype */
10597pub type vl_qs_type = f64;
10598/** ------------------------------------------------------------------
10599 ** @brief quick shift results
10600 **
10601 ** This implements quick shift mode seeking.
10602 **/
10603#[repr(C)]
10604#[derive(Debug, Copy)]
10605pub struct _VlQS {
10606    /**< height x width x channels feature image */
10607    pub image: *mut vl_qs_type,
10608    /**< height of the image */
10609    pub height: ::std::os::raw::c_int,
10610    /**< width of the image */
10611    pub width: ::std::os::raw::c_int,
10612    /**< number of channels in the image */
10613    pub channels: ::std::os::raw::c_int,
10614    pub medoid: vl_bool,
10615    pub sigma: vl_qs_type,
10616    pub tau: vl_qs_type,
10617    pub parents: *mut ::std::os::raw::c_int,
10618    pub dists: *mut vl_qs_type,
10619    pub density: *mut vl_qs_type,
10620}
10621#[test]
10622fn bindgen_test_layout__VlQS() {
10623    assert_eq!(::std::mem::size_of::<_VlQS>() , 64usize , concat ! (
10624               "Size of: " , stringify ! ( _VlQS ) ));
10625    assert_eq! (::std::mem::align_of::<_VlQS>() , 8usize , concat ! (
10626                "Alignment of " , stringify ! ( _VlQS ) ));
10627    assert_eq! (unsafe {
10628                & ( * ( 0 as * const _VlQS ) ) . image as * const _ as usize }
10629                , 0usize , concat ! (
10630                "Alignment of field: " , stringify ! ( _VlQS ) , "::" ,
10631                stringify ! ( image ) ));
10632    assert_eq! (unsafe {
10633                & ( * ( 0 as * const _VlQS ) ) . height as * const _ as usize
10634                } , 8usize , concat ! (
10635                "Alignment of field: " , stringify ! ( _VlQS ) , "::" ,
10636                stringify ! ( height ) ));
10637    assert_eq! (unsafe {
10638                & ( * ( 0 as * const _VlQS ) ) . width as * const _ as usize }
10639                , 12usize , concat ! (
10640                "Alignment of field: " , stringify ! ( _VlQS ) , "::" ,
10641                stringify ! ( width ) ));
10642    assert_eq! (unsafe {
10643                & ( * ( 0 as * const _VlQS ) ) . channels as * const _ as
10644                usize } , 16usize , concat ! (
10645                "Alignment of field: " , stringify ! ( _VlQS ) , "::" ,
10646                stringify ! ( channels ) ));
10647    assert_eq! (unsafe {
10648                & ( * ( 0 as * const _VlQS ) ) . medoid as * const _ as usize
10649                } , 20usize , concat ! (
10650                "Alignment of field: " , stringify ! ( _VlQS ) , "::" ,
10651                stringify ! ( medoid ) ));
10652    assert_eq! (unsafe {
10653                & ( * ( 0 as * const _VlQS ) ) . sigma as * const _ as usize }
10654                , 24usize , concat ! (
10655                "Alignment of field: " , stringify ! ( _VlQS ) , "::" ,
10656                stringify ! ( sigma ) ));
10657    assert_eq! (unsafe {
10658                & ( * ( 0 as * const _VlQS ) ) . tau as * const _ as usize } ,
10659                32usize , concat ! (
10660                "Alignment of field: " , stringify ! ( _VlQS ) , "::" ,
10661                stringify ! ( tau ) ));
10662    assert_eq! (unsafe {
10663                & ( * ( 0 as * const _VlQS ) ) . parents as * const _ as usize
10664                } , 40usize , concat ! (
10665                "Alignment of field: " , stringify ! ( _VlQS ) , "::" ,
10666                stringify ! ( parents ) ));
10667    assert_eq! (unsafe {
10668                & ( * ( 0 as * const _VlQS ) ) . dists as * const _ as usize }
10669                , 48usize , concat ! (
10670                "Alignment of field: " , stringify ! ( _VlQS ) , "::" ,
10671                stringify ! ( dists ) ));
10672    assert_eq! (unsafe {
10673                & ( * ( 0 as * const _VlQS ) ) . density as * const _ as usize
10674                } , 56usize , concat ! (
10675                "Alignment of field: " , stringify ! ( _VlQS ) , "::" ,
10676                stringify ! ( density ) ));
10677}
10678impl Clone for _VlQS {
10679    fn clone(&self) -> Self { *self }
10680}
10681pub type VlQS = _VlQS;
10682extern "C" {
10683    /** @name Create and destroy
10684 ** @{
10685 **/
10686    pub fn vl_quickshift_new(im: *const vl_qs_type,
10687                             height: ::std::os::raw::c_int,
10688                             width: ::std::os::raw::c_int,
10689                             channels: ::std::os::raw::c_int) -> *mut VlQS;
10690}
10691extern "C" {
10692    pub fn vl_quickshift_delete(q: *mut VlQS);
10693}
10694extern "C" {
10695    /** @name Process data
10696 ** @{
10697 **/
10698    pub fn vl_quickshift_process(q: *mut VlQS);
10699}
10700extern "C" {
10701    pub fn vl_rodrigues(R_pt: *mut f64, dR_pt: *mut f64, om_pt: *const f64);
10702}
10703extern "C" {
10704    pub fn vl_irodrigues(om_pt: *mut f64, dom_pt: *mut f64, R_pt: *const f64);
10705}
10706/** @brief SIFT filter pixel type */
10707pub type vl_sift_pix = f32;
10708/** ------------------------------------------------------------------
10709 ** @brief SIFT filter keypoint
10710 **
10711 ** This structure represent a keypoint as extracted by the SIFT
10712 ** filter ::VlSiftFilt.
10713 **/
10714#[repr(C)]
10715#[derive(Debug, Copy)]
10716pub struct _VlSiftKeypoint {
10717    /**< o coordinate (octave). */
10718    pub o: ::std::os::raw::c_int,
10719    /**< Integer unnormalized x coordinate. */
10720    pub ix: ::std::os::raw::c_int,
10721    /**< Integer unnormalized y coordinate. */
10722    pub iy: ::std::os::raw::c_int,
10723    /**< Integer s coordinate. */
10724    pub is: ::std::os::raw::c_int,
10725    /**< x coordinate. */
10726    pub x: f32,
10727    /**< y coordinate. */
10728    pub y: f32,
10729    /**< s coordinate. */
10730    pub s: f32,
10731    /**< scale. */
10732    pub sigma: f32,
10733}
10734#[test]
10735fn bindgen_test_layout__VlSiftKeypoint() {
10736    assert_eq!(::std::mem::size_of::<_VlSiftKeypoint>() , 32usize , concat ! (
10737               "Size of: " , stringify ! ( _VlSiftKeypoint ) ));
10738    assert_eq! (::std::mem::align_of::<_VlSiftKeypoint>() , 4usize , concat !
10739                ( "Alignment of " , stringify ! ( _VlSiftKeypoint ) ));
10740    assert_eq! (unsafe {
10741                & ( * ( 0 as * const _VlSiftKeypoint ) ) . o as * const _ as
10742                usize } , 0usize , concat ! (
10743                "Alignment of field: " , stringify ! ( _VlSiftKeypoint ) ,
10744                "::" , stringify ! ( o ) ));
10745    assert_eq! (unsafe {
10746                & ( * ( 0 as * const _VlSiftKeypoint ) ) . ix as * const _ as
10747                usize } , 4usize , concat ! (
10748                "Alignment of field: " , stringify ! ( _VlSiftKeypoint ) ,
10749                "::" , stringify ! ( ix ) ));
10750    assert_eq! (unsafe {
10751                & ( * ( 0 as * const _VlSiftKeypoint ) ) . iy as * const _ as
10752                usize } , 8usize , concat ! (
10753                "Alignment of field: " , stringify ! ( _VlSiftKeypoint ) ,
10754                "::" , stringify ! ( iy ) ));
10755    assert_eq! (unsafe {
10756                & ( * ( 0 as * const _VlSiftKeypoint ) ) . is as * const _ as
10757                usize } , 12usize , concat ! (
10758                "Alignment of field: " , stringify ! ( _VlSiftKeypoint ) ,
10759                "::" , stringify ! ( is ) ));
10760    assert_eq! (unsafe {
10761                & ( * ( 0 as * const _VlSiftKeypoint ) ) . x as * const _ as
10762                usize } , 16usize , concat ! (
10763                "Alignment of field: " , stringify ! ( _VlSiftKeypoint ) ,
10764                "::" , stringify ! ( x ) ));
10765    assert_eq! (unsafe {
10766                & ( * ( 0 as * const _VlSiftKeypoint ) ) . y as * const _ as
10767                usize } , 20usize , concat ! (
10768                "Alignment of field: " , stringify ! ( _VlSiftKeypoint ) ,
10769                "::" , stringify ! ( y ) ));
10770    assert_eq! (unsafe {
10771                & ( * ( 0 as * const _VlSiftKeypoint ) ) . s as * const _ as
10772                usize } , 24usize , concat ! (
10773                "Alignment of field: " , stringify ! ( _VlSiftKeypoint ) ,
10774                "::" , stringify ! ( s ) ));
10775    assert_eq! (unsafe {
10776                & ( * ( 0 as * const _VlSiftKeypoint ) ) . sigma as * const _
10777                as usize } , 28usize , concat ! (
10778                "Alignment of field: " , stringify ! ( _VlSiftKeypoint ) ,
10779                "::" , stringify ! ( sigma ) ));
10780}
10781impl Clone for _VlSiftKeypoint {
10782    fn clone(&self) -> Self { *self }
10783}
10784pub type VlSiftKeypoint = _VlSiftKeypoint;
10785/** ------------------------------------------------------------------
10786 ** @brief SIFT filter
10787 **
10788 ** This filter implements the SIFT detector and descriptor.
10789 **/
10790#[repr(C)]
10791#[derive(Debug, Copy)]
10792pub struct _VlSiftFilt {
10793    /**< nominal image smoothing. */
10794    pub sigman: f64,
10795    /**< smoothing of pyramid base. */
10796    pub sigma0: f64,
10797    /**< k-smoothing */
10798    pub sigmak: f64,
10799    /**< delta-smoothing. */
10800    pub dsigma0: f64,
10801    /**< image width. */
10802    pub width: ::std::os::raw::c_int,
10803    /**< image height. */
10804    pub height: ::std::os::raw::c_int,
10805    /**< number of octaves. */
10806    pub O: ::std::os::raw::c_int,
10807    /**< number of levels per octave. */
10808    pub S: ::std::os::raw::c_int,
10809    /**< minimum octave index. */
10810    pub o_min: ::std::os::raw::c_int,
10811    /**< minimum level index. */
10812    pub s_min: ::std::os::raw::c_int,
10813    /**< maximum level index. */
10814    pub s_max: ::std::os::raw::c_int,
10815    /**< current octave. */
10816    pub o_cur: ::std::os::raw::c_int,
10817    /**< temporary pixel buffer. */
10818    pub temp: *mut vl_sift_pix,
10819    /**< current GSS data. */
10820    pub octave: *mut vl_sift_pix,
10821    /**< current DoG data. */
10822    pub dog: *mut vl_sift_pix,
10823    /**< current octave width. */
10824    pub octave_width: ::std::os::raw::c_int,
10825    /**< current octave height. */
10826    pub octave_height: ::std::os::raw::c_int,
10827    /**< current Gaussian filter */
10828    pub gaussFilter: *mut vl_sift_pix,
10829    /**< current Gaussian filter std */
10830    pub gaussFilterSigma: f64,
10831    /**< current Gaussian filter width */
10832    pub gaussFilterWidth: vl_size,
10833    /**< detected keypoints. */
10834    pub keys: *mut VlSiftKeypoint,
10835    /**< number of detected keypoints. */
10836    pub nkeys: ::std::os::raw::c_int,
10837    /**< size of the keys buffer. */
10838    pub keys_res: ::std::os::raw::c_int,
10839    /**< peak threshold. */
10840    pub peak_thresh: f64,
10841    /**< edge threshold. */
10842    pub edge_thresh: f64,
10843    /**< norm threshold. */
10844    pub norm_thresh: f64,
10845    /**< magnification factor. */
10846    pub magnif: f64,
10847    /**< size of Gaussian window (in spatial bins) */
10848    pub windowSize: f64,
10849    /**< GSS gradient data. */
10850    pub grad: *mut vl_sift_pix,
10851    /**< GSS gradient data octave. */
10852    pub grad_o: ::std::os::raw::c_int,
10853}
10854#[test]
10855fn bindgen_test_layout__VlSiftFilt() {
10856    assert_eq!(::std::mem::size_of::<_VlSiftFilt>() , 192usize , concat ! (
10857               "Size of: " , stringify ! ( _VlSiftFilt ) ));
10858    assert_eq! (::std::mem::align_of::<_VlSiftFilt>() , 8usize , concat ! (
10859                "Alignment of " , stringify ! ( _VlSiftFilt ) ));
10860    assert_eq! (unsafe {
10861                & ( * ( 0 as * const _VlSiftFilt ) ) . sigman as * const _ as
10862                usize } , 0usize , concat ! (
10863                "Alignment of field: " , stringify ! ( _VlSiftFilt ) , "::" ,
10864                stringify ! ( sigman ) ));
10865    assert_eq! (unsafe {
10866                & ( * ( 0 as * const _VlSiftFilt ) ) . sigma0 as * const _ as
10867                usize } , 8usize , concat ! (
10868                "Alignment of field: " , stringify ! ( _VlSiftFilt ) , "::" ,
10869                stringify ! ( sigma0 ) ));
10870    assert_eq! (unsafe {
10871                & ( * ( 0 as * const _VlSiftFilt ) ) . sigmak as * const _ as
10872                usize } , 16usize , concat ! (
10873                "Alignment of field: " , stringify ! ( _VlSiftFilt ) , "::" ,
10874                stringify ! ( sigmak ) ));
10875    assert_eq! (unsafe {
10876                & ( * ( 0 as * const _VlSiftFilt ) ) . dsigma0 as * const _ as
10877                usize } , 24usize , concat ! (
10878                "Alignment of field: " , stringify ! ( _VlSiftFilt ) , "::" ,
10879                stringify ! ( dsigma0 ) ));
10880    assert_eq! (unsafe {
10881                & ( * ( 0 as * const _VlSiftFilt ) ) . width as * const _ as
10882                usize } , 32usize , concat ! (
10883                "Alignment of field: " , stringify ! ( _VlSiftFilt ) , "::" ,
10884                stringify ! ( width ) ));
10885    assert_eq! (unsafe {
10886                & ( * ( 0 as * const _VlSiftFilt ) ) . height as * const _ as
10887                usize } , 36usize , concat ! (
10888                "Alignment of field: " , stringify ! ( _VlSiftFilt ) , "::" ,
10889                stringify ! ( height ) ));
10890    assert_eq! (unsafe {
10891                & ( * ( 0 as * const _VlSiftFilt ) ) . O as * const _ as usize
10892                } , 40usize , concat ! (
10893                "Alignment of field: " , stringify ! ( _VlSiftFilt ) , "::" ,
10894                stringify ! ( O ) ));
10895    assert_eq! (unsafe {
10896                & ( * ( 0 as * const _VlSiftFilt ) ) . S as * const _ as usize
10897                } , 44usize , concat ! (
10898                "Alignment of field: " , stringify ! ( _VlSiftFilt ) , "::" ,
10899                stringify ! ( S ) ));
10900    assert_eq! (unsafe {
10901                & ( * ( 0 as * const _VlSiftFilt ) ) . o_min as * const _ as
10902                usize } , 48usize , concat ! (
10903                "Alignment of field: " , stringify ! ( _VlSiftFilt ) , "::" ,
10904                stringify ! ( o_min ) ));
10905    assert_eq! (unsafe {
10906                & ( * ( 0 as * const _VlSiftFilt ) ) . s_min as * const _ as
10907                usize } , 52usize , concat ! (
10908                "Alignment of field: " , stringify ! ( _VlSiftFilt ) , "::" ,
10909                stringify ! ( s_min ) ));
10910    assert_eq! (unsafe {
10911                & ( * ( 0 as * const _VlSiftFilt ) ) . s_max as * const _ as
10912                usize } , 56usize , concat ! (
10913                "Alignment of field: " , stringify ! ( _VlSiftFilt ) , "::" ,
10914                stringify ! ( s_max ) ));
10915    assert_eq! (unsafe {
10916                & ( * ( 0 as * const _VlSiftFilt ) ) . o_cur as * const _ as
10917                usize } , 60usize , concat ! (
10918                "Alignment of field: " , stringify ! ( _VlSiftFilt ) , "::" ,
10919                stringify ! ( o_cur ) ));
10920    assert_eq! (unsafe {
10921                & ( * ( 0 as * const _VlSiftFilt ) ) . temp as * const _ as
10922                usize } , 64usize , concat ! (
10923                "Alignment of field: " , stringify ! ( _VlSiftFilt ) , "::" ,
10924                stringify ! ( temp ) ));
10925    assert_eq! (unsafe {
10926                & ( * ( 0 as * const _VlSiftFilt ) ) . octave as * const _ as
10927                usize } , 72usize , concat ! (
10928                "Alignment of field: " , stringify ! ( _VlSiftFilt ) , "::" ,
10929                stringify ! ( octave ) ));
10930    assert_eq! (unsafe {
10931                & ( * ( 0 as * const _VlSiftFilt ) ) . dog as * const _ as
10932                usize } , 80usize , concat ! (
10933                "Alignment of field: " , stringify ! ( _VlSiftFilt ) , "::" ,
10934                stringify ! ( dog ) ));
10935    assert_eq! (unsafe {
10936                & ( * ( 0 as * const _VlSiftFilt ) ) . octave_width as * const
10937                _ as usize } , 88usize , concat ! (
10938                "Alignment of field: " , stringify ! ( _VlSiftFilt ) , "::" ,
10939                stringify ! ( octave_width ) ));
10940    assert_eq! (unsafe {
10941                & ( * ( 0 as * const _VlSiftFilt ) ) . octave_height as *
10942                const _ as usize } , 92usize , concat ! (
10943                "Alignment of field: " , stringify ! ( _VlSiftFilt ) , "::" ,
10944                stringify ! ( octave_height ) ));
10945    assert_eq! (unsafe {
10946                & ( * ( 0 as * const _VlSiftFilt ) ) . gaussFilter as * const
10947                _ as usize } , 96usize , concat ! (
10948                "Alignment of field: " , stringify ! ( _VlSiftFilt ) , "::" ,
10949                stringify ! ( gaussFilter ) ));
10950    assert_eq! (unsafe {
10951                & ( * ( 0 as * const _VlSiftFilt ) ) . gaussFilterSigma as *
10952                const _ as usize } , 104usize , concat ! (
10953                "Alignment of field: " , stringify ! ( _VlSiftFilt ) , "::" ,
10954                stringify ! ( gaussFilterSigma ) ));
10955    assert_eq! (unsafe {
10956                & ( * ( 0 as * const _VlSiftFilt ) ) . gaussFilterWidth as *
10957                const _ as usize } , 112usize , concat ! (
10958                "Alignment of field: " , stringify ! ( _VlSiftFilt ) , "::" ,
10959                stringify ! ( gaussFilterWidth ) ));
10960    assert_eq! (unsafe {
10961                & ( * ( 0 as * const _VlSiftFilt ) ) . keys as * const _ as
10962                usize } , 120usize , concat ! (
10963                "Alignment of field: " , stringify ! ( _VlSiftFilt ) , "::" ,
10964                stringify ! ( keys ) ));
10965    assert_eq! (unsafe {
10966                & ( * ( 0 as * const _VlSiftFilt ) ) . nkeys as * const _ as
10967                usize } , 128usize , concat ! (
10968                "Alignment of field: " , stringify ! ( _VlSiftFilt ) , "::" ,
10969                stringify ! ( nkeys ) ));
10970    assert_eq! (unsafe {
10971                & ( * ( 0 as * const _VlSiftFilt ) ) . keys_res as * const _
10972                as usize } , 132usize , concat ! (
10973                "Alignment of field: " , stringify ! ( _VlSiftFilt ) , "::" ,
10974                stringify ! ( keys_res ) ));
10975    assert_eq! (unsafe {
10976                & ( * ( 0 as * const _VlSiftFilt ) ) . peak_thresh as * const
10977                _ as usize } , 136usize , concat ! (
10978                "Alignment of field: " , stringify ! ( _VlSiftFilt ) , "::" ,
10979                stringify ! ( peak_thresh ) ));
10980    assert_eq! (unsafe {
10981                & ( * ( 0 as * const _VlSiftFilt ) ) . edge_thresh as * const
10982                _ as usize } , 144usize , concat ! (
10983                "Alignment of field: " , stringify ! ( _VlSiftFilt ) , "::" ,
10984                stringify ! ( edge_thresh ) ));
10985    assert_eq! (unsafe {
10986                & ( * ( 0 as * const _VlSiftFilt ) ) . norm_thresh as * const
10987                _ as usize } , 152usize , concat ! (
10988                "Alignment of field: " , stringify ! ( _VlSiftFilt ) , "::" ,
10989                stringify ! ( norm_thresh ) ));
10990    assert_eq! (unsafe {
10991                & ( * ( 0 as * const _VlSiftFilt ) ) . magnif as * const _ as
10992                usize } , 160usize , concat ! (
10993                "Alignment of field: " , stringify ! ( _VlSiftFilt ) , "::" ,
10994                stringify ! ( magnif ) ));
10995    assert_eq! (unsafe {
10996                & ( * ( 0 as * const _VlSiftFilt ) ) . windowSize as * const _
10997                as usize } , 168usize , concat ! (
10998                "Alignment of field: " , stringify ! ( _VlSiftFilt ) , "::" ,
10999                stringify ! ( windowSize ) ));
11000    assert_eq! (unsafe {
11001                & ( * ( 0 as * const _VlSiftFilt ) ) . grad as * const _ as
11002                usize } , 176usize , concat ! (
11003                "Alignment of field: " , stringify ! ( _VlSiftFilt ) , "::" ,
11004                stringify ! ( grad ) ));
11005    assert_eq! (unsafe {
11006                & ( * ( 0 as * const _VlSiftFilt ) ) . grad_o as * const _ as
11007                usize } , 184usize , concat ! (
11008                "Alignment of field: " , stringify ! ( _VlSiftFilt ) , "::" ,
11009                stringify ! ( grad_o ) ));
11010}
11011impl Clone for _VlSiftFilt {
11012    fn clone(&self) -> Self { *self }
11013}
11014pub type VlSiftFilt = _VlSiftFilt;
11015extern "C" {
11016    /** @name Create and destroy
11017 ** @{
11018 **/
11019    pub fn vl_sift_new(width: ::std::os::raw::c_int,
11020                       height: ::std::os::raw::c_int,
11021                       noctaves: ::std::os::raw::c_int,
11022                       nlevels: ::std::os::raw::c_int,
11023                       o_min: ::std::os::raw::c_int) -> *mut VlSiftFilt;
11024}
11025extern "C" {
11026    pub fn vl_sift_delete(f: *mut VlSiftFilt);
11027}
11028extern "C" {
11029    /** @name Process data
11030 ** @{
11031 **/
11032    pub fn vl_sift_process_first_octave(f: *mut VlSiftFilt,
11033                                        im: *const vl_sift_pix)
11034     -> ::std::os::raw::c_int;
11035}
11036extern "C" {
11037    pub fn vl_sift_process_next_octave(f: *mut VlSiftFilt)
11038     -> ::std::os::raw::c_int;
11039}
11040extern "C" {
11041    pub fn vl_sift_detect(f: *mut VlSiftFilt);
11042}
11043extern "C" {
11044    pub fn vl_sift_calc_keypoint_orientations(f: *mut VlSiftFilt,
11045                                              angles: *mut f64,
11046                                              k: *const VlSiftKeypoint)
11047     -> ::std::os::raw::c_int;
11048}
11049extern "C" {
11050    pub fn vl_sift_calc_keypoint_descriptor(f: *mut VlSiftFilt,
11051                                            descr: *mut vl_sift_pix,
11052                                            k: *const VlSiftKeypoint,
11053                                            angle: f64);
11054}
11055extern "C" {
11056    pub fn vl_sift_calc_raw_descriptor(f: *const VlSiftFilt,
11057                                       image: *const vl_sift_pix,
11058                                       descr: *mut vl_sift_pix,
11059                                       widht: ::std::os::raw::c_int,
11060                                       height: ::std::os::raw::c_int, x: f64,
11061                                       y: f64, s: f64, angle0: f64);
11062}
11063extern "C" {
11064    pub fn vl_sift_keypoint_init(f: *const VlSiftFilt, k: *mut VlSiftKeypoint,
11065                                 x: f64, y: f64, sigma: f64);
11066}
11067extern "C" {
11068    pub fn vl_slic_segment(segmentation: *mut vl_uint32, image: *const f32,
11069                           width: vl_size, height: vl_size,
11070                           numChannels: vl_size, regionSize: vl_size,
11071                           regularization: f32, minRegionSize: vl_size);
11072}
11073#[repr(C)]
11074#[derive(Debug, Copy, Clone)]
11075pub struct VlSvm_([u8; 0]);
11076#[repr(C)]
11077#[derive(Debug, Copy, Clone)]
11078pub struct VlSvmDataset_([u8; 0]);
11079pub type VlSvmDataset = VlSvmDataset_;
11080/** @name SVM callbacks
11081 ** @{ */
11082pub type VlSvmDiagnosticFunction =
11083    ::std::option::Option<unsafe extern "C" fn(svm: *mut VlSvm_,
11084                                               data:
11085                                                   *mut ::std::os::raw::c_void)>;
11086pub type VlSvmLossFunction =
11087    ::std::option::Option<unsafe extern "C" fn(inner: f64, label: f64)
11088                              -> f64>;
11089pub type VlSvmDcaUpdateFunction =
11090    ::std::option::Option<unsafe extern "C" fn(alpha: f64, inner: f64,
11091                                               norm2: f64, label: f64)
11092                              -> f64>;
11093pub type VlSvmInnerProductFunction =
11094    ::std::option::Option<unsafe extern "C" fn(data:
11095                                                   *const ::std::os::raw::c_void,
11096                                               element: vl_uindex,
11097                                               model: *mut f64) -> f64>;
11098pub type VlSvmAccumulateFunction =
11099    ::std::option::Option<unsafe extern "C" fn(data:
11100                                                   *const ::std::os::raw::c_void,
11101                                               element: vl_uindex,
11102                                               model: *mut f64,
11103                                               multiplier: f64)>;
11104extern "C" {
11105    /** @name Create and destroy
11106 ** @{
11107 **/
11108    pub fn vl_svmdataset_new(dataType: vl_type,
11109                             data: *mut ::std::os::raw::c_void,
11110                             dimension: vl_size, numData: vl_size)
11111     -> *mut VlSvmDataset;
11112}
11113extern "C" {
11114    pub fn vl_svmdataset_delete(dataset: *mut VlSvmDataset);
11115}
11116extern "C" {
11117    /** @name Set parameters
11118 ** @{
11119 **/
11120    pub fn vl_svmdataset_set_homogeneous_kernel_map(self_: *mut VlSvmDataset,
11121                                                    hom:
11122                                                        *mut VlHomogeneousKernelMap);
11123}
11124extern "C" {
11125    /** @name Get data and parameters
11126 ** @{
11127 **/
11128    pub fn vl_svmdataset_get_data(self_: *const VlSvmDataset)
11129     -> *mut ::std::os::raw::c_void;
11130}
11131extern "C" {
11132    pub fn vl_svmdataset_get_num_data(self_: *const VlSvmDataset) -> vl_size;
11133}
11134extern "C" {
11135    pub fn vl_svmdataset_get_dimension(self_: *const VlSvmDataset) -> vl_size;
11136}
11137extern "C" {
11138    pub fn vl_svmdataset_get_map(self_: *const VlSvmDataset)
11139     -> *mut ::std::os::raw::c_void;
11140}
11141extern "C" {
11142    pub fn vl_svmdataset_get_mapDim(self_: *const VlSvmDataset) -> vl_size;
11143}
11144extern "C" {
11145    pub fn vl_svmdataset_get_accumulate_function(self_: *const VlSvmDataset)
11146     -> VlSvmAccumulateFunction;
11147}
11148extern "C" {
11149    pub fn vl_svmdataset_get_inner_product_function(self_:
11150                                                        *const VlSvmDataset)
11151     -> VlSvmInnerProductFunction;
11152}
11153extern "C" {
11154    pub fn vl_svmdataset_get_homogeneous_kernel_map(self_:
11155                                                        *const VlSvmDataset)
11156     -> *mut VlHomogeneousKernelMap;
11157}
11158pub type VlSvm = VlSvm_;
11159#[repr(u32)]
11160/** @brief Type of SVM solver */
11161#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
11162pub enum VlSvmSolverType {
11163    VlSvmSolverNone = 0,
11164    VlSvmSolverSgd = 1,
11165    VlSvmSolverSdca = 2,
11166}
11167#[repr(u32)]
11168/** @brief Type of SVM loss
11169 **
11170 ** Default SVM loss types. The loss can be set by using ::vl_svm_set_loss.
11171 ** Note that custom losses can be used too by using ::vl_svm_set_loss_function,
11172 ** ::vl_svm_set_loss_derivative_function, etc.
11173 **
11174 ** @sa svm-loss-functions
11175 **/
11176#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
11177pub enum VlSvmLossType {
11178    VlSvmLossHinge = 0,
11179    VlSvmLossHinge2 = 1,
11180    VlSvmLossL1 = 2,
11181    VlSvmLossL2 = 3,
11182    VlSvmLossLogistic = 4,
11183}
11184#[repr(u32)]
11185/** @brief Solver status */
11186#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
11187pub enum VlSvmSolverStatus {
11188    VlSvmStatusTraining = 1,
11189    VlSvmStatusConverged = 2,
11190    VlSvmStatusMaxNumIterationsReached = 3,
11191}
11192/** @brief SVM statistics
11193 ** This structure contains statistics characterising the state of
11194 ** the SVM solver, such as the current value of the objective function.
11195 **
11196 ** Not all fields are used by all solvers.
11197 **/
11198#[repr(C)]
11199#[derive(Debug, Copy)]
11200pub struct VlSvmStatistics_ {
11201    /**< Solver status. */
11202    pub status: VlSvmSolverStatus,
11203    /**< Solver iteration. */
11204    pub iteration: vl_size,
11205    /**< Solver epoch (iteration / num samples). */
11206    pub epoch: vl_size,
11207    /**< Objective function value. */
11208    pub objective: f64,
11209    /**< Regularizer value. */
11210    pub regularizer: f64,
11211    /**< Loss value. */
11212    pub loss: f64,
11213    /**< Dual objective value. */
11214    pub dualObjective: f64,
11215    /**< Dual loss value. */
11216    pub dualLoss: f64,
11217    /**< Duality gap = objective - dualObjective. */
11218    pub dualityGap: f64,
11219    /**< Variance of the score updates. */
11220    pub scoresVariation: f64,
11221    /**< Time elapsed from the start of training. */
11222    pub elapsedTime: f64,
11223}
11224#[test]
11225fn bindgen_test_layout_VlSvmStatistics_() {
11226    assert_eq!(::std::mem::size_of::<VlSvmStatistics_>() , 88usize , concat !
11227               ( "Size of: " , stringify ! ( VlSvmStatistics_ ) ));
11228    assert_eq! (::std::mem::align_of::<VlSvmStatistics_>() , 8usize , concat !
11229                ( "Alignment of " , stringify ! ( VlSvmStatistics_ ) ));
11230    assert_eq! (unsafe {
11231                & ( * ( 0 as * const VlSvmStatistics_ ) ) . status as * const
11232                _ as usize } , 0usize , concat ! (
11233                "Alignment of field: " , stringify ! ( VlSvmStatistics_ ) ,
11234                "::" , stringify ! ( status ) ));
11235    assert_eq! (unsafe {
11236                & ( * ( 0 as * const VlSvmStatistics_ ) ) . iteration as *
11237                const _ as usize } , 8usize , concat ! (
11238                "Alignment of field: " , stringify ! ( VlSvmStatistics_ ) ,
11239                "::" , stringify ! ( iteration ) ));
11240    assert_eq! (unsafe {
11241                & ( * ( 0 as * const VlSvmStatistics_ ) ) . epoch as * const _
11242                as usize } , 16usize , concat ! (
11243                "Alignment of field: " , stringify ! ( VlSvmStatistics_ ) ,
11244                "::" , stringify ! ( epoch ) ));
11245    assert_eq! (unsafe {
11246                & ( * ( 0 as * const VlSvmStatistics_ ) ) . objective as *
11247                const _ as usize } , 24usize , concat ! (
11248                "Alignment of field: " , stringify ! ( VlSvmStatistics_ ) ,
11249                "::" , stringify ! ( objective ) ));
11250    assert_eq! (unsafe {
11251                & ( * ( 0 as * const VlSvmStatistics_ ) ) . regularizer as *
11252                const _ as usize } , 32usize , concat ! (
11253                "Alignment of field: " , stringify ! ( VlSvmStatistics_ ) ,
11254                "::" , stringify ! ( regularizer ) ));
11255    assert_eq! (unsafe {
11256                & ( * ( 0 as * const VlSvmStatistics_ ) ) . loss as * const _
11257                as usize } , 40usize , concat ! (
11258                "Alignment of field: " , stringify ! ( VlSvmStatistics_ ) ,
11259                "::" , stringify ! ( loss ) ));
11260    assert_eq! (unsafe {
11261                & ( * ( 0 as * const VlSvmStatistics_ ) ) . dualObjective as *
11262                const _ as usize } , 48usize , concat ! (
11263                "Alignment of field: " , stringify ! ( VlSvmStatistics_ ) ,
11264                "::" , stringify ! ( dualObjective ) ));
11265    assert_eq! (unsafe {
11266                & ( * ( 0 as * const VlSvmStatistics_ ) ) . dualLoss as *
11267                const _ as usize } , 56usize , concat ! (
11268                "Alignment of field: " , stringify ! ( VlSvmStatistics_ ) ,
11269                "::" , stringify ! ( dualLoss ) ));
11270    assert_eq! (unsafe {
11271                & ( * ( 0 as * const VlSvmStatistics_ ) ) . dualityGap as *
11272                const _ as usize } , 64usize , concat ! (
11273                "Alignment of field: " , stringify ! ( VlSvmStatistics_ ) ,
11274                "::" , stringify ! ( dualityGap ) ));
11275    assert_eq! (unsafe {
11276                & ( * ( 0 as * const VlSvmStatistics_ ) ) . scoresVariation as
11277                * const _ as usize } , 72usize , concat ! (
11278                "Alignment of field: " , stringify ! ( VlSvmStatistics_ ) ,
11279                "::" , stringify ! ( scoresVariation ) ));
11280    assert_eq! (unsafe {
11281                & ( * ( 0 as * const VlSvmStatistics_ ) ) . elapsedTime as *
11282                const _ as usize } , 80usize , concat ! (
11283                "Alignment of field: " , stringify ! ( VlSvmStatistics_ ) ,
11284                "::" , stringify ! ( elapsedTime ) ));
11285}
11286impl Clone for VlSvmStatistics_ {
11287    fn clone(&self) -> Self { *self }
11288}
11289pub type VlSvmStatistics = VlSvmStatistics_;
11290extern "C" {
11291    /** @name Create and destroy
11292 ** @{ */
11293    pub fn vl_svm_new(type_: VlSvmSolverType, data: *const f64,
11294                      dimension: vl_size, numData: vl_size,
11295                      labels: *const f64, lambda: f64) -> *mut VlSvm;
11296}
11297extern "C" {
11298    pub fn vl_svm_new_with_dataset(type_: VlSvmSolverType,
11299                                   dataset: *mut VlSvmDataset,
11300                                   labels: *const f64, lambda: f64)
11301     -> *mut VlSvm;
11302}
11303extern "C" {
11304    pub fn vl_svm_new_with_abstract_data(type_: VlSvmSolverType,
11305                                         data: *mut ::std::os::raw::c_void,
11306                                         dimension: vl_size, numData: vl_size,
11307                                         labels: *const f64, lambda: f64)
11308     -> *mut VlSvm;
11309}
11310extern "C" {
11311    pub fn vl_svm_delete(self_: *mut VlSvm);
11312}
11313extern "C" {
11314    /** @name Retrieve parameters and data
11315 ** @{ */
11316    pub fn vl_svm_get_statistics(self_: *const VlSvm)
11317     -> *const VlSvmStatistics;
11318}
11319extern "C" {
11320    pub fn vl_svm_get_model(self_: *const VlSvm) -> *const f64;
11321}
11322extern "C" {
11323    pub fn vl_svm_get_bias(self_: *const VlSvm) -> f64;
11324}
11325extern "C" {
11326    pub fn vl_svm_get_dimension(self_: *mut VlSvm) -> vl_size;
11327}
11328extern "C" {
11329    pub fn vl_svm_get_num_data(self_: *mut VlSvm) -> vl_size;
11330}
11331extern "C" {
11332    pub fn vl_svm_get_epsilon(self_: *const VlSvm) -> f64;
11333}
11334extern "C" {
11335    pub fn vl_svm_get_bias_learning_rate(self_: *const VlSvm) -> f64;
11336}
11337extern "C" {
11338    pub fn vl_svm_get_max_num_iterations(self_: *const VlSvm) -> vl_size;
11339}
11340extern "C" {
11341    pub fn vl_svm_get_diagnostic_frequency(self_: *const VlSvm) -> vl_size;
11342}
11343extern "C" {
11344    pub fn vl_svm_get_solver(self_: *const VlSvm) -> VlSvmSolverType;
11345}
11346extern "C" {
11347    pub fn vl_svm_get_bias_multiplier(self_: *const VlSvm) -> f64;
11348}
11349extern "C" {
11350    pub fn vl_svm_get_lambda(self_: *const VlSvm) -> f64;
11351}
11352extern "C" {
11353    pub fn vl_svm_get_iteration_number(self_: *const VlSvm) -> vl_size;
11354}
11355extern "C" {
11356    pub fn vl_svm_get_scores(self_: *const VlSvm) -> *const f64;
11357}
11358extern "C" {
11359    pub fn vl_svm_get_weights(self_: *const VlSvm) -> *const f64;
11360}
11361extern "C" {
11362    /** @name Set parameters
11363 ** @{ */
11364    pub fn vl_svm_set_epsilon(self_: *mut VlSvm, epsilon: f64);
11365}
11366extern "C" {
11367    pub fn vl_svm_set_bias_learning_rate(self_: *mut VlSvm, rate: f64);
11368}
11369extern "C" {
11370    pub fn vl_svm_set_max_num_iterations(self_: *mut VlSvm,
11371                                         maxNumIterations: vl_size);
11372}
11373extern "C" {
11374    pub fn vl_svm_set_diagnostic_frequency(self_: *mut VlSvm, f: vl_size);
11375}
11376extern "C" {
11377    pub fn vl_svm_set_bias_multiplier(self_: *mut VlSvm, b: f64);
11378}
11379extern "C" {
11380    pub fn vl_svm_set_model(self_: *mut VlSvm, model: *const f64);
11381}
11382extern "C" {
11383    pub fn vl_svm_set_bias(self_: *mut VlSvm, b: f64);
11384}
11385extern "C" {
11386    pub fn vl_svm_set_iteration_number(self_: *mut VlSvm, n: vl_uindex);
11387}
11388extern "C" {
11389    pub fn vl_svm_set_weights(self_: *mut VlSvm, weights: *const f64);
11390}
11391extern "C" {
11392    pub fn vl_svm_set_diagnostic_function(self_: *mut VlSvm,
11393                                          f: VlSvmDiagnosticFunction,
11394                                          data: *mut ::std::os::raw::c_void);
11395}
11396extern "C" {
11397    pub fn vl_svm_set_loss_function(self_: *mut VlSvm, f: VlSvmLossFunction);
11398}
11399extern "C" {
11400    pub fn vl_svm_set_loss_derivative_function(self_: *mut VlSvm,
11401                                               f: VlSvmLossFunction);
11402}
11403extern "C" {
11404    pub fn vl_svm_set_conjugate_loss_function(self_: *mut VlSvm,
11405                                              f: VlSvmLossFunction);
11406}
11407extern "C" {
11408    pub fn vl_svm_set_dca_update_function(self_: *mut VlSvm,
11409                                          f: VlSvmDcaUpdateFunction);
11410}
11411extern "C" {
11412    pub fn vl_svm_set_data_functions(self_: *mut VlSvm,
11413                                     inner: VlSvmInnerProductFunction,
11414                                     acc: VlSvmAccumulateFunction);
11415}
11416extern "C" {
11417    pub fn vl_svm_set_loss(self_: *mut VlSvm, loss: VlSvmLossType);
11418}
11419extern "C" {
11420    /** @name Process data
11421 ** @{ */
11422    pub fn vl_svm_train(self_: *mut VlSvm);
11423}
11424extern "C" {
11425    /** @name Loss functions
11426 ** @sa @ref svm-advanced
11427 ** @{ */
11428    pub fn vl_svm_hinge_loss(label: f64, inner: f64) -> f64;
11429}
11430extern "C" {
11431    pub fn vl_svm_hinge_loss_derivative(label: f64, inner: f64) -> f64;
11432}
11433extern "C" {
11434    pub fn vl_svm_hinge_conjugate_loss(label: f64, u: f64) -> f64;
11435}
11436extern "C" {
11437    pub fn vl_svm_hinge_dca_update(alpha: f64, inner: f64, norm2: f64,
11438                                   label: f64) -> f64;
11439}
11440extern "C" {
11441    pub fn vl_svm_hinge2_loss(label: f64, inner: f64) -> f64;
11442}
11443extern "C" {
11444    pub fn vl_svm_hinge2_loss_derivative(label: f64, inner: f64) -> f64;
11445}
11446extern "C" {
11447    pub fn vl_svm_hinge2_conjugate_loss(label: f64, u: f64) -> f64;
11448}
11449extern "C" {
11450    pub fn vl_svm_hinge2_dca_update(alpha: f64, inner: f64, norm2: f64,
11451                                    label: f64) -> f64;
11452}
11453extern "C" {
11454    pub fn vl_svm_l1_loss(label: f64, inner: f64) -> f64;
11455}
11456extern "C" {
11457    pub fn vl_svm_l1_loss_derivative(label: f64, inner: f64) -> f64;
11458}
11459extern "C" {
11460    pub fn vl_svm_l1_conjugate_loss(label: f64, u: f64) -> f64;
11461}
11462extern "C" {
11463    pub fn vl_svm_l1_dca_update(alpha: f64, inner: f64, norm2: f64,
11464                                label: f64) -> f64;
11465}
11466extern "C" {
11467    pub fn vl_svm_l2_loss(label: f64, inner: f64) -> f64;
11468}
11469extern "C" {
11470    pub fn vl_svm_l2_loss_derivative(label: f64, inner: f64) -> f64;
11471}
11472extern "C" {
11473    pub fn vl_svm_l2_conjugate_loss(label: f64, u: f64) -> f64;
11474}
11475extern "C" {
11476    pub fn vl_svm_l2_dca_update(alpha: f64, inner: f64, norm2: f64,
11477                                label: f64) -> f64;
11478}
11479extern "C" {
11480    pub fn vl_svm_logistic_loss(label: f64, inner: f64) -> f64;
11481}
11482extern "C" {
11483    pub fn vl_svm_logistic_loss_derivative(label: f64, inner: f64) -> f64;
11484}
11485extern "C" {
11486    pub fn vl_svm_logistic_conjugate_loss(label: f64, u: f64) -> f64;
11487}
11488extern "C" {
11489    pub fn vl_svm_logistic_dca_update(alpha: f64, inner: f64, norm2: f64,
11490                                      label: f64) -> f64;
11491}
11492extern "C" {
11493    /** @def VL_VLAD_FLAG_NORMALIZE_MASS
11494 ** @brief Normalize each component by the number of features assigned to it.
11495 **/
11496/** @} */
11497    pub fn vl_vlad_encode(enc: *mut ::std::os::raw::c_void, dataType: vl_type,
11498                          means: *const ::std::os::raw::c_void,
11499                          dimension: vl_size, numClusters: vl_size,
11500                          data: *const ::std::os::raw::c_void,
11501                          numData: vl_size,
11502                          assignments: *const ::std::os::raw::c_void,
11503                          flags: ::std::os::raw::c_int);
11504}
11505#[repr(C)]
11506#[derive(Debug, Copy)]
11507pub struct __va_list_tag {
11508    pub gp_offset: ::std::os::raw::c_uint,
11509    pub fp_offset: ::std::os::raw::c_uint,
11510    pub overflow_arg_area: *mut ::std::os::raw::c_void,
11511    pub reg_save_area: *mut ::std::os::raw::c_void,
11512}
11513#[test]
11514fn bindgen_test_layout___va_list_tag() {
11515    assert_eq!(::std::mem::size_of::<__va_list_tag>() , 24usize , concat ! (
11516               "Size of: " , stringify ! ( __va_list_tag ) ));
11517    assert_eq! (::std::mem::align_of::<__va_list_tag>() , 8usize , concat ! (
11518                "Alignment of " , stringify ! ( __va_list_tag ) ));
11519    assert_eq! (unsafe {
11520                & ( * ( 0 as * const __va_list_tag ) ) . gp_offset as * const
11521                _ as usize } , 0usize , concat ! (
11522                "Alignment of field: " , stringify ! ( __va_list_tag ) , "::"
11523                , stringify ! ( gp_offset ) ));
11524    assert_eq! (unsafe {
11525                & ( * ( 0 as * const __va_list_tag ) ) . fp_offset as * const
11526                _ as usize } , 4usize , concat ! (
11527                "Alignment of field: " , stringify ! ( __va_list_tag ) , "::"
11528                , stringify ! ( fp_offset ) ));
11529    assert_eq! (unsafe {
11530                & ( * ( 0 as * const __va_list_tag ) ) . overflow_arg_area as
11531                * const _ as usize } , 8usize , concat ! (
11532                "Alignment of field: " , stringify ! ( __va_list_tag ) , "::"
11533                , stringify ! ( overflow_arg_area ) ));
11534    assert_eq! (unsafe {
11535                & ( * ( 0 as * const __va_list_tag ) ) . reg_save_area as *
11536                const _ as usize } , 16usize , concat ! (
11537                "Alignment of field: " , stringify ! ( __va_list_tag ) , "::"
11538                , stringify ! ( reg_save_area ) ));
11539}
11540impl Clone for __va_list_tag {
11541    fn clone(&self) -> Self { *self }
11542}
11543pub type __builtin_va_list = [__va_list_tag; 1usize];