ode_base/ode/
ode_bindings.rs

1/* automatically generated by rust-bindgen 0.65.1 */
2
3pub const _VCRT_COMPILER_PREPROCESSOR: u32 = 1;
4pub const _SAL_VERSION: u32 = 20;
5pub const __SAL_H_VERSION: u32 = 180000000;
6pub const _USE_DECLSPECS_FOR_SAL: u32 = 0;
7pub const _USE_ATTRIBUTES_FOR_SAL: u32 = 0;
8pub const _CRT_PACKING: u32 = 8;
9pub const _HAS_EXCEPTIONS: u32 = 1;
10pub const NULL: u32 = 0;
11pub const _HAS_CXX17: u32 = 0;
12pub const _HAS_CXX20: u32 = 0;
13pub const _HAS_CXX23: u32 = 0;
14pub const _HAS_NODISCARD: u32 = 1;
15pub const _ARGMAX: u32 = 100;
16pub const _CRT_INT_MAX: u32 = 2147483647;
17pub const _CRT_FUNCTIONS_REQUIRED: u32 = 1;
18pub const _CRT_HAS_CXX17: u32 = 0;
19pub const _ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE: u32 = 1;
20pub const _CRT_BUILD_DESKTOP_APP: u32 = 1;
21pub const _CRT_INTERNAL_NONSTDC_NAMES: u32 = 1;
22pub const __STDC_SECURE_LIB__: u32 = 200411;
23pub const __GOT_SECURE_LIB__: u32 = 200411;
24pub const __STDC_WANT_SECURE_LIB__: u32 = 1;
25pub const _SECURECRT_FILL_BUFFER_PATTERN: u32 = 254;
26pub const _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES: u32 = 0;
27pub const _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT: u32 = 0;
28pub const _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES: u32 = 1;
29pub const _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_MEMORY: u32 = 0;
30pub const _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES_MEMORY: u32 = 0;
31pub const _CRT_INTERNAL_STDIO_SYMBOL_PREFIX: &[u8; 1usize] = b"\0";
32pub const _CRT_INTERNAL_PRINTF_LEGACY_VSPRINTF_NULL_TERMINATION: u32 = 1;
33pub const _CRT_INTERNAL_PRINTF_STANDARD_SNPRINTF_BEHAVIOR: u32 = 2;
34pub const _CRT_INTERNAL_PRINTF_LEGACY_WIDE_SPECIFIERS: u32 = 4;
35pub const _CRT_INTERNAL_PRINTF_LEGACY_MSVCRT_COMPATIBILITY: u32 = 8;
36pub const _CRT_INTERNAL_PRINTF_LEGACY_THREE_DIGIT_EXPONENTS: u32 = 16;
37pub const _CRT_INTERNAL_PRINTF_STANDARD_ROUNDING: u32 = 32;
38pub const _CRT_INTERNAL_SCANF_SECURECRT: u32 = 1;
39pub const _CRT_INTERNAL_SCANF_LEGACY_WIDE_SPECIFIERS: u32 = 2;
40pub const _CRT_INTERNAL_SCANF_LEGACY_MSVCRT_COMPATIBILITY: u32 = 4;
41pub const BUFSIZ: u32 = 512;
42pub const _NSTREAM_: u32 = 512;
43pub const _IOB_ENTRIES: u32 = 3;
44pub const EOF: i32 = -1;
45pub const _IOFBF: u32 = 0;
46pub const _IOLBF: u32 = 64;
47pub const _IONBF: u32 = 4;
48pub const L_tmpnam: u32 = 260;
49pub const L_tmpnam_s: u32 = 260;
50pub const SEEK_CUR: u32 = 1;
51pub const SEEK_END: u32 = 2;
52pub const SEEK_SET: u32 = 0;
53pub const FILENAME_MAX: u32 = 260;
54pub const FOPEN_MAX: u32 = 20;
55pub const _SYS_OPEN: u32 = 20;
56pub const TMP_MAX: u32 = 2147483647;
57pub const TMP_MAX_S: u32 = 2147483647;
58pub const _TMP_MAX_S: u32 = 2147483647;
59pub const SYS_OPEN: u32 = 20;
60pub const _DOMAIN: u32 = 1;
61pub const _SING: u32 = 2;
62pub const _OVERFLOW: u32 = 3;
63pub const _UNDERFLOW: u32 = 4;
64pub const _TLOSS: u32 = 5;
65pub const _PLOSS: u32 = 6;
66pub const _HUGE_ENUF : f64 = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0 ;
67pub const _DENORM: i32 = -2;
68pub const _FINITE: i32 = -1;
69pub const _INFCODE: u32 = 1;
70pub const _NANCODE: u32 = 2;
71pub const FP_INFINITE: u32 = 1;
72pub const FP_NAN: u32 = 2;
73pub const FP_NORMAL: i32 = -1;
74pub const FP_SUBNORMAL: i32 = -2;
75pub const FP_ZERO: u32 = 0;
76pub const _C2: u32 = 1;
77pub const FP_ILOGB0: i32 = -2147483648;
78pub const FP_ILOGBNAN: u32 = 2147483647;
79pub const MATH_ERRNO: u32 = 1;
80pub const MATH_ERREXCEPT: u32 = 2;
81pub const math_errhandling: u32 = 3;
82pub const _FE_DIVBYZERO: u32 = 4;
83pub const _FE_INEXACT: u32 = 32;
84pub const _FE_INVALID: u32 = 1;
85pub const _FE_OVERFLOW: u32 = 8;
86pub const _FE_UNDERFLOW: u32 = 16;
87pub const _D0_C: u32 = 3;
88pub const _D1_C: u32 = 2;
89pub const _D2_C: u32 = 1;
90pub const _D3_C: u32 = 0;
91pub const _DBIAS: u32 = 1022;
92pub const _DOFF: u32 = 4;
93pub const _F0_C: u32 = 1;
94pub const _F1_C: u32 = 0;
95pub const _FBIAS: u32 = 126;
96pub const _FOFF: u32 = 7;
97pub const _FRND: u32 = 1;
98pub const _L0_C: u32 = 3;
99pub const _L1_C: u32 = 2;
100pub const _L2_C: u32 = 1;
101pub const _L3_C: u32 = 0;
102pub const _LBIAS: u32 = 1022;
103pub const _LOFF: u32 = 4;
104pub const _FP_LT: u32 = 1;
105pub const _FP_EQ: u32 = 2;
106pub const _FP_GT: u32 = 4;
107pub const DOMAIN: u32 = 1;
108pub const SING: u32 = 2;
109pub const OVERFLOW: u32 = 3;
110pub const UNDERFLOW: u32 = 4;
111pub const TLOSS: u32 = 5;
112pub const PLOSS: u32 = 6;
113pub const TIME_UTC: u32 = 1;
114pub type va_list = *mut ::std::os::raw::c_char;
115extern "C" {
116    pub fn __va_start(arg1: *mut va_list, ...);
117}
118#[repr(C)]
119#[derive(Debug, Copy, Clone)]
120pub struct __vcrt_va_list_is_reference {
121    pub _address: u8,
122}
123pub const __vcrt_va_list_is_reference___the_value: __vcrt_va_list_is_reference__bindgen_ty_1 =
124    false;
125pub type __vcrt_va_list_is_reference__bindgen_ty_1 = bool;
126#[repr(C)]
127#[derive(Debug, Copy, Clone)]
128pub struct __vcrt_assert_va_start_is_not_reference {
129    pub _address: u8,
130}
131pub type __vcrt_bool = bool;
132extern "C" {
133    pub fn __security_init_cookie();
134}
135extern "C" {
136    pub fn __security_check_cookie(_StackCookie: usize);
137}
138extern "C" {
139    pub fn __report_gsfailure(_StackCookie: usize) -> !;
140}
141extern "C" {
142    pub static mut __security_cookie: usize;
143}
144pub type __crt_bool = bool;
145extern "C" {
146    pub fn _invalid_parameter_noinfo();
147}
148extern "C" {
149    pub fn _invalid_parameter_noinfo_noreturn() -> !;
150}
151extern "C" {
152    pub fn _invoke_watson(
153        _Expression: *const u16,
154        _FunctionName: *const u16,
155        _FileName: *const u16,
156        _LineNo: ::std::os::raw::c_uint,
157        _Reserved: usize,
158    ) -> !;
159}
160pub type errno_t = ::std::os::raw::c_int;
161pub type wint_t = ::std::os::raw::c_ushort;
162pub type wctype_t = ::std::os::raw::c_ushort;
163pub type __time32_t = ::std::os::raw::c_long;
164pub type __time64_t = ::std::os::raw::c_longlong;
165#[repr(C)]
166#[derive(Debug, Copy, Clone)]
167pub struct __crt_locale_data_public {
168    pub _locale_pctype: *const ::std::os::raw::c_ushort,
169    pub _locale_mb_cur_max: ::std::os::raw::c_int,
170    pub _locale_lc_codepage: ::std::os::raw::c_uint,
171}
172#[test]
173fn bindgen_test_layout___crt_locale_data_public() {
174    const UNINIT: ::std::mem::MaybeUninit<__crt_locale_data_public> =
175        ::std::mem::MaybeUninit::uninit();
176    let ptr = UNINIT.as_ptr();
177    assert_eq!(
178        ::std::mem::size_of::<__crt_locale_data_public>(),
179        16usize,
180        concat!("Size of: ", stringify!(__crt_locale_data_public))
181    );
182    assert_eq!(
183        ::std::mem::align_of::<__crt_locale_data_public>(),
184        8usize,
185        concat!("Alignment of ", stringify!(__crt_locale_data_public))
186    );
187    assert_eq!(
188        unsafe { ::std::ptr::addr_of!((*ptr)._locale_pctype) as usize - ptr as usize },
189        0usize,
190        concat!(
191            "Offset of field: ",
192            stringify!(__crt_locale_data_public),
193            "::",
194            stringify!(_locale_pctype)
195        )
196    );
197    assert_eq!(
198        unsafe { ::std::ptr::addr_of!((*ptr)._locale_mb_cur_max) as usize - ptr as usize },
199        8usize,
200        concat!(
201            "Offset of field: ",
202            stringify!(__crt_locale_data_public),
203            "::",
204            stringify!(_locale_mb_cur_max)
205        )
206    );
207    assert_eq!(
208        unsafe { ::std::ptr::addr_of!((*ptr)._locale_lc_codepage) as usize - ptr as usize },
209        12usize,
210        concat!(
211            "Offset of field: ",
212            stringify!(__crt_locale_data_public),
213            "::",
214            stringify!(_locale_lc_codepage)
215        )
216    );
217}
218#[repr(C)]
219#[derive(Debug, Copy, Clone)]
220pub struct __crt_locale_pointers {
221    pub locinfo: *mut __crt_locale_data,
222    pub mbcinfo: *mut __crt_multibyte_data,
223}
224#[test]
225fn bindgen_test_layout___crt_locale_pointers() {
226    const UNINIT: ::std::mem::MaybeUninit<__crt_locale_pointers> =
227        ::std::mem::MaybeUninit::uninit();
228    let ptr = UNINIT.as_ptr();
229    assert_eq!(
230        ::std::mem::size_of::<__crt_locale_pointers>(),
231        16usize,
232        concat!("Size of: ", stringify!(__crt_locale_pointers))
233    );
234    assert_eq!(
235        ::std::mem::align_of::<__crt_locale_pointers>(),
236        8usize,
237        concat!("Alignment of ", stringify!(__crt_locale_pointers))
238    );
239    assert_eq!(
240        unsafe { ::std::ptr::addr_of!((*ptr).locinfo) as usize - ptr as usize },
241        0usize,
242        concat!(
243            "Offset of field: ",
244            stringify!(__crt_locale_pointers),
245            "::",
246            stringify!(locinfo)
247        )
248    );
249    assert_eq!(
250        unsafe { ::std::ptr::addr_of!((*ptr).mbcinfo) as usize - ptr as usize },
251        8usize,
252        concat!(
253            "Offset of field: ",
254            stringify!(__crt_locale_pointers),
255            "::",
256            stringify!(mbcinfo)
257        )
258    );
259}
260pub type _locale_t = *mut __crt_locale_pointers;
261#[repr(C)]
262#[derive(Debug, Copy, Clone)]
263pub struct _Mbstatet {
264    pub _Wchar: ::std::os::raw::c_ulong,
265    pub _Byte: ::std::os::raw::c_ushort,
266    pub _State: ::std::os::raw::c_ushort,
267}
268#[test]
269fn bindgen_test_layout__Mbstatet() {
270    const UNINIT: ::std::mem::MaybeUninit<_Mbstatet> = ::std::mem::MaybeUninit::uninit();
271    let ptr = UNINIT.as_ptr();
272    assert_eq!(
273        ::std::mem::size_of::<_Mbstatet>(),
274        8usize,
275        concat!("Size of: ", stringify!(_Mbstatet))
276    );
277    assert_eq!(
278        ::std::mem::align_of::<_Mbstatet>(),
279        4usize,
280        concat!("Alignment of ", stringify!(_Mbstatet))
281    );
282    assert_eq!(
283        unsafe { ::std::ptr::addr_of!((*ptr)._Wchar) as usize - ptr as usize },
284        0usize,
285        concat!(
286            "Offset of field: ",
287            stringify!(_Mbstatet),
288            "::",
289            stringify!(_Wchar)
290        )
291    );
292    assert_eq!(
293        unsafe { ::std::ptr::addr_of!((*ptr)._Byte) as usize - ptr as usize },
294        4usize,
295        concat!(
296            "Offset of field: ",
297            stringify!(_Mbstatet),
298            "::",
299            stringify!(_Byte)
300        )
301    );
302    assert_eq!(
303        unsafe { ::std::ptr::addr_of!((*ptr)._State) as usize - ptr as usize },
304        6usize,
305        concat!(
306            "Offset of field: ",
307            stringify!(_Mbstatet),
308            "::",
309            stringify!(_State)
310        )
311    );
312}
313pub type mbstate_t = _Mbstatet;
314pub type time_t = __time64_t;
315pub type rsize_t = usize;
316#[repr(C)]
317#[derive(Debug, Copy, Clone)]
318pub struct _iobuf {
319    pub _Placeholder: *mut ::std::os::raw::c_void,
320}
321#[test]
322fn bindgen_test_layout__iobuf() {
323    const UNINIT: ::std::mem::MaybeUninit<_iobuf> = ::std::mem::MaybeUninit::uninit();
324    let ptr = UNINIT.as_ptr();
325    assert_eq!(
326        ::std::mem::size_of::<_iobuf>(),
327        8usize,
328        concat!("Size of: ", stringify!(_iobuf))
329    );
330    assert_eq!(
331        ::std::mem::align_of::<_iobuf>(),
332        8usize,
333        concat!("Alignment of ", stringify!(_iobuf))
334    );
335    assert_eq!(
336        unsafe { ::std::ptr::addr_of!((*ptr)._Placeholder) as usize - ptr as usize },
337        0usize,
338        concat!(
339            "Offset of field: ",
340            stringify!(_iobuf),
341            "::",
342            stringify!(_Placeholder)
343        )
344    );
345}
346pub type FILE = _iobuf;
347extern "C" {
348    pub fn __acrt_iob_func(_Ix: ::std::os::raw::c_uint) -> *mut FILE;
349}
350extern "C" {
351    pub fn fgetwc(_Stream: *mut FILE) -> wint_t;
352}
353extern "C" {
354    pub fn _fgetwchar() -> wint_t;
355}
356extern "C" {
357    pub fn fputwc(_Character: u16, _Stream: *mut FILE) -> wint_t;
358}
359extern "C" {
360    pub fn _fputwchar(_Character: u16) -> wint_t;
361}
362extern "C" {
363    pub fn getwc(_Stream: *mut FILE) -> wint_t;
364}
365extern "C" {
366    pub fn getwchar() -> wint_t;
367}
368extern "C" {
369    pub fn fgetws(
370        _Buffer: *mut u16,
371        _BufferCount: ::std::os::raw::c_int,
372        _Stream: *mut FILE,
373    ) -> *mut u16;
374}
375extern "C" {
376    pub fn fputws(_Buffer: *const u16, _Stream: *mut FILE) -> ::std::os::raw::c_int;
377}
378extern "C" {
379    pub fn _getws_s(_Buffer: *mut u16, _BufferCount: usize) -> *mut u16;
380}
381extern "C" {
382    pub fn putwc(_Character: u16, _Stream: *mut FILE) -> wint_t;
383}
384extern "C" {
385    pub fn putwchar(_Character: u16) -> wint_t;
386}
387extern "C" {
388    pub fn _putws(_Buffer: *const u16) -> ::std::os::raw::c_int;
389}
390extern "C" {
391    pub fn ungetwc(_Character: wint_t, _Stream: *mut FILE) -> wint_t;
392}
393extern "C" {
394    pub fn _wfdopen(_FileHandle: ::std::os::raw::c_int, _Mode: *const u16) -> *mut FILE;
395}
396extern "C" {
397    pub fn _wfopen(_FileName: *const u16, _Mode: *const u16) -> *mut FILE;
398}
399extern "C" {
400    pub fn _wfopen_s(_Stream: *mut *mut FILE, _FileName: *const u16, _Mode: *const u16) -> errno_t;
401}
402extern "C" {
403    pub fn _wfreopen(_FileName: *const u16, _Mode: *const u16, _OldStream: *mut FILE) -> *mut FILE;
404}
405extern "C" {
406    pub fn _wfreopen_s(
407        _Stream: *mut *mut FILE,
408        _FileName: *const u16,
409        _Mode: *const u16,
410        _OldStream: *mut FILE,
411    ) -> errno_t;
412}
413extern "C" {
414    pub fn _wfsopen(
415        _FileName: *const u16,
416        _Mode: *const u16,
417        _ShFlag: ::std::os::raw::c_int,
418    ) -> *mut FILE;
419}
420extern "C" {
421    pub fn _wperror(_ErrorMessage: *const u16);
422}
423extern "C" {
424    pub fn _wpopen(_Command: *const u16, _Mode: *const u16) -> *mut FILE;
425}
426extern "C" {
427    pub fn _wremove(_FileName: *const u16) -> ::std::os::raw::c_int;
428}
429extern "C" {
430    pub fn _wtempnam(_Directory: *const u16, _FilePrefix: *const u16) -> *mut u16;
431}
432extern "C" {
433    pub fn _wtmpnam_s(_Buffer: *mut u16, _BufferCount: usize) -> errno_t;
434}
435extern "C" {
436    pub fn _wtmpnam(_Buffer: *mut u16) -> *mut u16;
437}
438extern "C" {
439    pub fn _fgetwc_nolock(_Stream: *mut FILE) -> wint_t;
440}
441extern "C" {
442    pub fn _fputwc_nolock(_Character: u16, _Stream: *mut FILE) -> wint_t;
443}
444extern "C" {
445    pub fn _getwc_nolock(_Stream: *mut FILE) -> wint_t;
446}
447extern "C" {
448    pub fn _putwc_nolock(_Character: u16, _Stream: *mut FILE) -> wint_t;
449}
450extern "C" {
451    pub fn _ungetwc_nolock(_Character: wint_t, _Stream: *mut FILE) -> wint_t;
452}
453extern "C" {
454    pub fn __stdio_common_vfwprintf(
455        _Options: ::std::os::raw::c_ulonglong,
456        _Stream: *mut FILE,
457        _Format: *const u16,
458        _Locale: _locale_t,
459        _ArgList: va_list,
460    ) -> ::std::os::raw::c_int;
461}
462extern "C" {
463    pub fn __stdio_common_vfwprintf_s(
464        _Options: ::std::os::raw::c_ulonglong,
465        _Stream: *mut FILE,
466        _Format: *const u16,
467        _Locale: _locale_t,
468        _ArgList: va_list,
469    ) -> ::std::os::raw::c_int;
470}
471extern "C" {
472    pub fn __stdio_common_vfwprintf_p(
473        _Options: ::std::os::raw::c_ulonglong,
474        _Stream: *mut FILE,
475        _Format: *const u16,
476        _Locale: _locale_t,
477        _ArgList: va_list,
478    ) -> ::std::os::raw::c_int;
479}
480extern "C" {
481    pub fn __stdio_common_vfwscanf(
482        _Options: ::std::os::raw::c_ulonglong,
483        _Stream: *mut FILE,
484        _Format: *const u16,
485        _Locale: _locale_t,
486        _ArgList: va_list,
487    ) -> ::std::os::raw::c_int;
488}
489extern "C" {
490    pub fn __stdio_common_vswprintf(
491        _Options: ::std::os::raw::c_ulonglong,
492        _Buffer: *mut u16,
493        _BufferCount: usize,
494        _Format: *const u16,
495        _Locale: _locale_t,
496        _ArgList: va_list,
497    ) -> ::std::os::raw::c_int;
498}
499extern "C" {
500    pub fn __stdio_common_vswprintf_s(
501        _Options: ::std::os::raw::c_ulonglong,
502        _Buffer: *mut u16,
503        _BufferCount: usize,
504        _Format: *const u16,
505        _Locale: _locale_t,
506        _ArgList: va_list,
507    ) -> ::std::os::raw::c_int;
508}
509extern "C" {
510    pub fn __stdio_common_vsnwprintf_s(
511        _Options: ::std::os::raw::c_ulonglong,
512        _Buffer: *mut u16,
513        _BufferCount: usize,
514        _MaxCount: usize,
515        _Format: *const u16,
516        _Locale: _locale_t,
517        _ArgList: va_list,
518    ) -> ::std::os::raw::c_int;
519}
520extern "C" {
521    pub fn __stdio_common_vswprintf_p(
522        _Options: ::std::os::raw::c_ulonglong,
523        _Buffer: *mut u16,
524        _BufferCount: usize,
525        _Format: *const u16,
526        _Locale: _locale_t,
527        _ArgList: va_list,
528    ) -> ::std::os::raw::c_int;
529}
530extern "C" {
531    pub fn __stdio_common_vswscanf(
532        _Options: ::std::os::raw::c_ulonglong,
533        _Buffer: *const u16,
534        _BufferCount: usize,
535        _Format: *const u16,
536        _Locale: _locale_t,
537        _ArgList: va_list,
538    ) -> ::std::os::raw::c_int;
539}
540pub type fpos_t = ::std::os::raw::c_longlong;
541extern "C" {
542    pub fn _get_stream_buffer_pointers(
543        _Stream: *mut FILE,
544        _Base: *mut *mut *mut ::std::os::raw::c_char,
545        _Pointer: *mut *mut *mut ::std::os::raw::c_char,
546        _Count: *mut *mut ::std::os::raw::c_int,
547    ) -> errno_t;
548}
549extern "C" {
550    pub fn clearerr_s(_Stream: *mut FILE) -> errno_t;
551}
552extern "C" {
553    pub fn fopen_s(
554        _Stream: *mut *mut FILE,
555        _FileName: *const ::std::os::raw::c_char,
556        _Mode: *const ::std::os::raw::c_char,
557    ) -> errno_t;
558}
559extern "C" {
560    pub fn fread_s(
561        _Buffer: *mut ::std::os::raw::c_void,
562        _BufferSize: usize,
563        _ElementSize: usize,
564        _ElementCount: usize,
565        _Stream: *mut FILE,
566    ) -> usize;
567}
568extern "C" {
569    pub fn freopen_s(
570        _Stream: *mut *mut FILE,
571        _FileName: *const ::std::os::raw::c_char,
572        _Mode: *const ::std::os::raw::c_char,
573        _OldStream: *mut FILE,
574    ) -> errno_t;
575}
576extern "C" {
577    pub fn gets_s(
578        _Buffer: *mut ::std::os::raw::c_char,
579        _Size: rsize_t,
580    ) -> *mut ::std::os::raw::c_char;
581}
582extern "C" {
583    pub fn tmpfile_s(_Stream: *mut *mut FILE) -> errno_t;
584}
585extern "C" {
586    pub fn tmpnam_s(_Buffer: *mut ::std::os::raw::c_char, _Size: rsize_t) -> errno_t;
587}
588extern "C" {
589    pub fn clearerr(_Stream: *mut FILE);
590}
591extern "C" {
592    pub fn fclose(_Stream: *mut FILE) -> ::std::os::raw::c_int;
593}
594extern "C" {
595    pub fn _fcloseall() -> ::std::os::raw::c_int;
596}
597extern "C" {
598    pub fn _fdopen(
599        _FileHandle: ::std::os::raw::c_int,
600        _Mode: *const ::std::os::raw::c_char,
601    ) -> *mut FILE;
602}
603extern "C" {
604    pub fn feof(_Stream: *mut FILE) -> ::std::os::raw::c_int;
605}
606extern "C" {
607    pub fn ferror(_Stream: *mut FILE) -> ::std::os::raw::c_int;
608}
609extern "C" {
610    pub fn fflush(_Stream: *mut FILE) -> ::std::os::raw::c_int;
611}
612extern "C" {
613    pub fn fgetc(_Stream: *mut FILE) -> ::std::os::raw::c_int;
614}
615extern "C" {
616    pub fn _fgetchar() -> ::std::os::raw::c_int;
617}
618extern "C" {
619    pub fn fgetpos(_Stream: *mut FILE, _Position: *mut fpos_t) -> ::std::os::raw::c_int;
620}
621extern "C" {
622    pub fn fgets(
623        _Buffer: *mut ::std::os::raw::c_char,
624        _MaxCount: ::std::os::raw::c_int,
625        _Stream: *mut FILE,
626    ) -> *mut ::std::os::raw::c_char;
627}
628extern "C" {
629    pub fn _fileno(_Stream: *mut FILE) -> ::std::os::raw::c_int;
630}
631extern "C" {
632    pub fn _flushall() -> ::std::os::raw::c_int;
633}
634extern "C" {
635    pub fn fopen(
636        _FileName: *const ::std::os::raw::c_char,
637        _Mode: *const ::std::os::raw::c_char,
638    ) -> *mut FILE;
639}
640extern "C" {
641    pub fn fputc(_Character: ::std::os::raw::c_int, _Stream: *mut FILE) -> ::std::os::raw::c_int;
642}
643extern "C" {
644    pub fn _fputchar(_Character: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
645}
646extern "C" {
647    pub fn fputs(
648        _Buffer: *const ::std::os::raw::c_char,
649        _Stream: *mut FILE,
650    ) -> ::std::os::raw::c_int;
651}
652extern "C" {
653    pub fn fread(
654        _Buffer: *mut ::std::os::raw::c_void,
655        _ElementSize: usize,
656        _ElementCount: usize,
657        _Stream: *mut FILE,
658    ) -> usize;
659}
660extern "C" {
661    pub fn freopen(
662        _FileName: *const ::std::os::raw::c_char,
663        _Mode: *const ::std::os::raw::c_char,
664        _Stream: *mut FILE,
665    ) -> *mut FILE;
666}
667extern "C" {
668    pub fn _fsopen(
669        _FileName: *const ::std::os::raw::c_char,
670        _Mode: *const ::std::os::raw::c_char,
671        _ShFlag: ::std::os::raw::c_int,
672    ) -> *mut FILE;
673}
674extern "C" {
675    pub fn fsetpos(_Stream: *mut FILE, _Position: *const fpos_t) -> ::std::os::raw::c_int;
676}
677extern "C" {
678    pub fn fseek(
679        _Stream: *mut FILE,
680        _Offset: ::std::os::raw::c_long,
681        _Origin: ::std::os::raw::c_int,
682    ) -> ::std::os::raw::c_int;
683}
684extern "C" {
685    pub fn _fseeki64(
686        _Stream: *mut FILE,
687        _Offset: ::std::os::raw::c_longlong,
688        _Origin: ::std::os::raw::c_int,
689    ) -> ::std::os::raw::c_int;
690}
691extern "C" {
692    pub fn ftell(_Stream: *mut FILE) -> ::std::os::raw::c_long;
693}
694extern "C" {
695    pub fn _ftelli64(_Stream: *mut FILE) -> ::std::os::raw::c_longlong;
696}
697extern "C" {
698    pub fn fwrite(
699        _Buffer: *const ::std::os::raw::c_void,
700        _ElementSize: usize,
701        _ElementCount: usize,
702        _Stream: *mut FILE,
703    ) -> usize;
704}
705extern "C" {
706    pub fn getc(_Stream: *mut FILE) -> ::std::os::raw::c_int;
707}
708extern "C" {
709    pub fn getchar() -> ::std::os::raw::c_int;
710}
711extern "C" {
712    pub fn _getmaxstdio() -> ::std::os::raw::c_int;
713}
714extern "C" {
715    pub fn _getw(_Stream: *mut FILE) -> ::std::os::raw::c_int;
716}
717extern "C" {
718    pub fn perror(_ErrorMessage: *const ::std::os::raw::c_char);
719}
720extern "C" {
721    pub fn _pclose(_Stream: *mut FILE) -> ::std::os::raw::c_int;
722}
723extern "C" {
724    pub fn _popen(
725        _Command: *const ::std::os::raw::c_char,
726        _Mode: *const ::std::os::raw::c_char,
727    ) -> *mut FILE;
728}
729extern "C" {
730    pub fn putc(_Character: ::std::os::raw::c_int, _Stream: *mut FILE) -> ::std::os::raw::c_int;
731}
732extern "C" {
733    pub fn putchar(_Character: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
734}
735extern "C" {
736    pub fn puts(_Buffer: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
737}
738extern "C" {
739    pub fn _putw(_Word: ::std::os::raw::c_int, _Stream: *mut FILE) -> ::std::os::raw::c_int;
740}
741extern "C" {
742    pub fn remove(_FileName: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
743}
744extern "C" {
745    pub fn rename(
746        _OldFileName: *const ::std::os::raw::c_char,
747        _NewFileName: *const ::std::os::raw::c_char,
748    ) -> ::std::os::raw::c_int;
749}
750extern "C" {
751    pub fn _unlink(_FileName: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
752}
753extern "C" {
754    pub fn unlink(_FileName: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
755}
756extern "C" {
757    pub fn rewind(_Stream: *mut FILE);
758}
759extern "C" {
760    pub fn _rmtmp() -> ::std::os::raw::c_int;
761}
762extern "C" {
763    pub fn setbuf(_Stream: *mut FILE, _Buffer: *mut ::std::os::raw::c_char);
764}
765extern "C" {
766    pub fn _setmaxstdio(_Maximum: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
767}
768extern "C" {
769    pub fn setvbuf(
770        _Stream: *mut FILE,
771        _Buffer: *mut ::std::os::raw::c_char,
772        _Mode: ::std::os::raw::c_int,
773        _Size: usize,
774    ) -> ::std::os::raw::c_int;
775}
776extern "C" {
777    pub fn _tempnam(
778        _DirectoryName: *const ::std::os::raw::c_char,
779        _FilePrefix: *const ::std::os::raw::c_char,
780    ) -> *mut ::std::os::raw::c_char;
781}
782extern "C" {
783    pub fn tmpfile() -> *mut FILE;
784}
785extern "C" {
786    pub fn tmpnam(_Buffer: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
787}
788extern "C" {
789    pub fn ungetc(_Character: ::std::os::raw::c_int, _Stream: *mut FILE) -> ::std::os::raw::c_int;
790}
791extern "C" {
792    pub fn _lock_file(_Stream: *mut FILE);
793}
794extern "C" {
795    pub fn _unlock_file(_Stream: *mut FILE);
796}
797extern "C" {
798    pub fn _fclose_nolock(_Stream: *mut FILE) -> ::std::os::raw::c_int;
799}
800extern "C" {
801    pub fn _fflush_nolock(_Stream: *mut FILE) -> ::std::os::raw::c_int;
802}
803extern "C" {
804    pub fn _fgetc_nolock(_Stream: *mut FILE) -> ::std::os::raw::c_int;
805}
806extern "C" {
807    pub fn _fputc_nolock(
808        _Character: ::std::os::raw::c_int,
809        _Stream: *mut FILE,
810    ) -> ::std::os::raw::c_int;
811}
812extern "C" {
813    pub fn _fread_nolock(
814        _Buffer: *mut ::std::os::raw::c_void,
815        _ElementSize: usize,
816        _ElementCount: usize,
817        _Stream: *mut FILE,
818    ) -> usize;
819}
820extern "C" {
821    pub fn _fread_nolock_s(
822        _Buffer: *mut ::std::os::raw::c_void,
823        _BufferSize: usize,
824        _ElementSize: usize,
825        _ElementCount: usize,
826        _Stream: *mut FILE,
827    ) -> usize;
828}
829extern "C" {
830    pub fn _fseek_nolock(
831        _Stream: *mut FILE,
832        _Offset: ::std::os::raw::c_long,
833        _Origin: ::std::os::raw::c_int,
834    ) -> ::std::os::raw::c_int;
835}
836extern "C" {
837    pub fn _fseeki64_nolock(
838        _Stream: *mut FILE,
839        _Offset: ::std::os::raw::c_longlong,
840        _Origin: ::std::os::raw::c_int,
841    ) -> ::std::os::raw::c_int;
842}
843extern "C" {
844    pub fn _ftell_nolock(_Stream: *mut FILE) -> ::std::os::raw::c_long;
845}
846extern "C" {
847    pub fn _ftelli64_nolock(_Stream: *mut FILE) -> ::std::os::raw::c_longlong;
848}
849extern "C" {
850    pub fn _fwrite_nolock(
851        _Buffer: *const ::std::os::raw::c_void,
852        _ElementSize: usize,
853        _ElementCount: usize,
854        _Stream: *mut FILE,
855    ) -> usize;
856}
857extern "C" {
858    pub fn _getc_nolock(_Stream: *mut FILE) -> ::std::os::raw::c_int;
859}
860extern "C" {
861    pub fn _putc_nolock(
862        _Character: ::std::os::raw::c_int,
863        _Stream: *mut FILE,
864    ) -> ::std::os::raw::c_int;
865}
866extern "C" {
867    pub fn _ungetc_nolock(
868        _Character: ::std::os::raw::c_int,
869        _Stream: *mut FILE,
870    ) -> ::std::os::raw::c_int;
871}
872extern "C" {
873    pub fn __p__commode() -> *mut ::std::os::raw::c_int;
874}
875extern "C" {
876    pub fn __stdio_common_vfprintf(
877        _Options: ::std::os::raw::c_ulonglong,
878        _Stream: *mut FILE,
879        _Format: *const ::std::os::raw::c_char,
880        _Locale: _locale_t,
881        _ArgList: va_list,
882    ) -> ::std::os::raw::c_int;
883}
884extern "C" {
885    pub fn __stdio_common_vfprintf_s(
886        _Options: ::std::os::raw::c_ulonglong,
887        _Stream: *mut FILE,
888        _Format: *const ::std::os::raw::c_char,
889        _Locale: _locale_t,
890        _ArgList: va_list,
891    ) -> ::std::os::raw::c_int;
892}
893extern "C" {
894    pub fn __stdio_common_vfprintf_p(
895        _Options: ::std::os::raw::c_ulonglong,
896        _Stream: *mut FILE,
897        _Format: *const ::std::os::raw::c_char,
898        _Locale: _locale_t,
899        _ArgList: va_list,
900    ) -> ::std::os::raw::c_int;
901}
902extern "C" {
903    pub fn _set_printf_count_output(_Value: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
904}
905extern "C" {
906    pub fn _get_printf_count_output() -> ::std::os::raw::c_int;
907}
908extern "C" {
909    pub fn __stdio_common_vfscanf(
910        _Options: ::std::os::raw::c_ulonglong,
911        _Stream: *mut FILE,
912        _Format: *const ::std::os::raw::c_char,
913        _Locale: _locale_t,
914        _Arglist: va_list,
915    ) -> ::std::os::raw::c_int;
916}
917extern "C" {
918    pub fn __stdio_common_vsprintf(
919        _Options: ::std::os::raw::c_ulonglong,
920        _Buffer: *mut ::std::os::raw::c_char,
921        _BufferCount: usize,
922        _Format: *const ::std::os::raw::c_char,
923        _Locale: _locale_t,
924        _ArgList: va_list,
925    ) -> ::std::os::raw::c_int;
926}
927extern "C" {
928    pub fn __stdio_common_vsprintf_s(
929        _Options: ::std::os::raw::c_ulonglong,
930        _Buffer: *mut ::std::os::raw::c_char,
931        _BufferCount: usize,
932        _Format: *const ::std::os::raw::c_char,
933        _Locale: _locale_t,
934        _ArgList: va_list,
935    ) -> ::std::os::raw::c_int;
936}
937extern "C" {
938    pub fn __stdio_common_vsnprintf_s(
939        _Options: ::std::os::raw::c_ulonglong,
940        _Buffer: *mut ::std::os::raw::c_char,
941        _BufferCount: usize,
942        _MaxCount: usize,
943        _Format: *const ::std::os::raw::c_char,
944        _Locale: _locale_t,
945        _ArgList: va_list,
946    ) -> ::std::os::raw::c_int;
947}
948extern "C" {
949    pub fn __stdio_common_vsprintf_p(
950        _Options: ::std::os::raw::c_ulonglong,
951        _Buffer: *mut ::std::os::raw::c_char,
952        _BufferCount: usize,
953        _Format: *const ::std::os::raw::c_char,
954        _Locale: _locale_t,
955        _ArgList: va_list,
956    ) -> ::std::os::raw::c_int;
957}
958extern "C" {
959    pub fn __stdio_common_vsscanf(
960        _Options: ::std::os::raw::c_ulonglong,
961        _Buffer: *const ::std::os::raw::c_char,
962        _BufferCount: usize,
963        _Format: *const ::std::os::raw::c_char,
964        _Locale: _locale_t,
965        _ArgList: va_list,
966    ) -> ::std::os::raw::c_int;
967}
968extern "C" {
969    pub fn tempnam(
970        _Directory: *const ::std::os::raw::c_char,
971        _FilePrefix: *const ::std::os::raw::c_char,
972    ) -> *mut ::std::os::raw::c_char;
973}
974extern "C" {
975    pub fn fcloseall() -> ::std::os::raw::c_int;
976}
977extern "C" {
978    pub fn fdopen(
979        _FileHandle: ::std::os::raw::c_int,
980        _Format: *const ::std::os::raw::c_char,
981    ) -> *mut FILE;
982}
983extern "C" {
984    pub fn fgetchar() -> ::std::os::raw::c_int;
985}
986extern "C" {
987    pub fn fileno(_Stream: *mut FILE) -> ::std::os::raw::c_int;
988}
989extern "C" {
990    pub fn flushall() -> ::std::os::raw::c_int;
991}
992extern "C" {
993    pub fn fputchar(_Ch: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
994}
995extern "C" {
996    pub fn getw(_Stream: *mut FILE) -> ::std::os::raw::c_int;
997}
998extern "C" {
999    pub fn putw(_Ch: ::std::os::raw::c_int, _Stream: *mut FILE) -> ::std::os::raw::c_int;
1000}
1001extern "C" {
1002    pub fn rmtmp() -> ::std::os::raw::c_int;
1003}
1004#[repr(C)]
1005#[derive(Debug, Copy, Clone)]
1006pub struct _exception {
1007    pub type_: ::std::os::raw::c_int,
1008    pub name: *mut ::std::os::raw::c_char,
1009    pub arg1: f64,
1010    pub arg2: f64,
1011    pub retval: f64,
1012}
1013#[test]
1014fn bindgen_test_layout__exception() {
1015    const UNINIT: ::std::mem::MaybeUninit<_exception> = ::std::mem::MaybeUninit::uninit();
1016    let ptr = UNINIT.as_ptr();
1017    assert_eq!(
1018        ::std::mem::size_of::<_exception>(),
1019        40usize,
1020        concat!("Size of: ", stringify!(_exception))
1021    );
1022    assert_eq!(
1023        ::std::mem::align_of::<_exception>(),
1024        8usize,
1025        concat!("Alignment of ", stringify!(_exception))
1026    );
1027    assert_eq!(
1028        unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize },
1029        0usize,
1030        concat!(
1031            "Offset of field: ",
1032            stringify!(_exception),
1033            "::",
1034            stringify!(type_)
1035        )
1036    );
1037    assert_eq!(
1038        unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize },
1039        8usize,
1040        concat!(
1041            "Offset of field: ",
1042            stringify!(_exception),
1043            "::",
1044            stringify!(name)
1045        )
1046    );
1047    assert_eq!(
1048        unsafe { ::std::ptr::addr_of!((*ptr).arg1) as usize - ptr as usize },
1049        16usize,
1050        concat!(
1051            "Offset of field: ",
1052            stringify!(_exception),
1053            "::",
1054            stringify!(arg1)
1055        )
1056    );
1057    assert_eq!(
1058        unsafe { ::std::ptr::addr_of!((*ptr).arg2) as usize - ptr as usize },
1059        24usize,
1060        concat!(
1061            "Offset of field: ",
1062            stringify!(_exception),
1063            "::",
1064            stringify!(arg2)
1065        )
1066    );
1067    assert_eq!(
1068        unsafe { ::std::ptr::addr_of!((*ptr).retval) as usize - ptr as usize },
1069        32usize,
1070        concat!(
1071            "Offset of field: ",
1072            stringify!(_exception),
1073            "::",
1074            stringify!(retval)
1075        )
1076    );
1077}
1078#[repr(C)]
1079#[derive(Debug, Copy, Clone)]
1080pub struct _complex {
1081    pub x: f64,
1082    pub y: f64,
1083}
1084#[test]
1085fn bindgen_test_layout__complex() {
1086    const UNINIT: ::std::mem::MaybeUninit<_complex> = ::std::mem::MaybeUninit::uninit();
1087    let ptr = UNINIT.as_ptr();
1088    assert_eq!(
1089        ::std::mem::size_of::<_complex>(),
1090        16usize,
1091        concat!("Size of: ", stringify!(_complex))
1092    );
1093    assert_eq!(
1094        ::std::mem::align_of::<_complex>(),
1095        8usize,
1096        concat!("Alignment of ", stringify!(_complex))
1097    );
1098    assert_eq!(
1099        unsafe { ::std::ptr::addr_of!((*ptr).x) as usize - ptr as usize },
1100        0usize,
1101        concat!(
1102            "Offset of field: ",
1103            stringify!(_complex),
1104            "::",
1105            stringify!(x)
1106        )
1107    );
1108    assert_eq!(
1109        unsafe { ::std::ptr::addr_of!((*ptr).y) as usize - ptr as usize },
1110        8usize,
1111        concat!(
1112            "Offset of field: ",
1113            stringify!(_complex),
1114            "::",
1115            stringify!(y)
1116        )
1117    );
1118}
1119pub type float_t = f32;
1120pub type double_t = f64;
1121extern "C" {
1122    pub static _HUGE: f64;
1123}
1124extern "C" {
1125    pub fn _fperrraise(_Except: ::std::os::raw::c_int);
1126}
1127extern "C" {
1128    pub fn _dclass(_X: f64) -> ::std::os::raw::c_short;
1129}
1130extern "C" {
1131    pub fn _ldclass(_X: f64) -> ::std::os::raw::c_short;
1132}
1133extern "C" {
1134    pub fn _fdclass(_X: f32) -> ::std::os::raw::c_short;
1135}
1136extern "C" {
1137    pub fn _dsign(_X: f64) -> ::std::os::raw::c_int;
1138}
1139extern "C" {
1140    pub fn _ldsign(_X: f64) -> ::std::os::raw::c_int;
1141}
1142extern "C" {
1143    pub fn _fdsign(_X: f32) -> ::std::os::raw::c_int;
1144}
1145extern "C" {
1146    pub fn _dpcomp(_X: f64, _Y: f64) -> ::std::os::raw::c_int;
1147}
1148extern "C" {
1149    pub fn _ldpcomp(_X: f64, _Y: f64) -> ::std::os::raw::c_int;
1150}
1151extern "C" {
1152    pub fn _fdpcomp(_X: f32, _Y: f32) -> ::std::os::raw::c_int;
1153}
1154extern "C" {
1155    pub fn _dtest(_Px: *mut f64) -> ::std::os::raw::c_short;
1156}
1157extern "C" {
1158    pub fn _ldtest(_Px: *mut f64) -> ::std::os::raw::c_short;
1159}
1160extern "C" {
1161    pub fn _fdtest(_Px: *mut f32) -> ::std::os::raw::c_short;
1162}
1163extern "C" {
1164    pub fn _d_int(_Px: *mut f64, _Xexp: ::std::os::raw::c_short) -> ::std::os::raw::c_short;
1165}
1166extern "C" {
1167    pub fn _ld_int(_Px: *mut f64, _Xexp: ::std::os::raw::c_short) -> ::std::os::raw::c_short;
1168}
1169extern "C" {
1170    pub fn _fd_int(_Px: *mut f32, _Xexp: ::std::os::raw::c_short) -> ::std::os::raw::c_short;
1171}
1172extern "C" {
1173    pub fn _dscale(_Px: *mut f64, _Lexp: ::std::os::raw::c_long) -> ::std::os::raw::c_short;
1174}
1175extern "C" {
1176    pub fn _ldscale(_Px: *mut f64, _Lexp: ::std::os::raw::c_long) -> ::std::os::raw::c_short;
1177}
1178extern "C" {
1179    pub fn _fdscale(_Px: *mut f32, _Lexp: ::std::os::raw::c_long) -> ::std::os::raw::c_short;
1180}
1181extern "C" {
1182    pub fn _dunscale(_Pex: *mut ::std::os::raw::c_short, _Px: *mut f64) -> ::std::os::raw::c_short;
1183}
1184extern "C" {
1185    pub fn _ldunscale(_Pex: *mut ::std::os::raw::c_short, _Px: *mut f64)
1186        -> ::std::os::raw::c_short;
1187}
1188extern "C" {
1189    pub fn _fdunscale(_Pex: *mut ::std::os::raw::c_short, _Px: *mut f32)
1190        -> ::std::os::raw::c_short;
1191}
1192extern "C" {
1193    pub fn _dexp(_Px: *mut f64, _Y: f64, _Eoff: ::std::os::raw::c_long) -> ::std::os::raw::c_short;
1194}
1195extern "C" {
1196    pub fn _ldexp(_Px: *mut f64, _Y: f64, _Eoff: ::std::os::raw::c_long)
1197        -> ::std::os::raw::c_short;
1198}
1199extern "C" {
1200    pub fn _fdexp(_Px: *mut f32, _Y: f32, _Eoff: ::std::os::raw::c_long)
1201        -> ::std::os::raw::c_short;
1202}
1203extern "C" {
1204    pub fn _dnorm(_Ps: *mut ::std::os::raw::c_ushort) -> ::std::os::raw::c_short;
1205}
1206extern "C" {
1207    pub fn _fdnorm(_Ps: *mut ::std::os::raw::c_ushort) -> ::std::os::raw::c_short;
1208}
1209extern "C" {
1210    pub fn _dpoly(_X: f64, _Tab: *const f64, _N: ::std::os::raw::c_int) -> f64;
1211}
1212extern "C" {
1213    pub fn _ldpoly(_X: f64, _Tab: *const f64, _N: ::std::os::raw::c_int) -> f64;
1214}
1215extern "C" {
1216    pub fn _fdpoly(_X: f32, _Tab: *const f32, _N: ::std::os::raw::c_int) -> f32;
1217}
1218extern "C" {
1219    pub fn _dlog(_X: f64, _Baseflag: ::std::os::raw::c_int) -> f64;
1220}
1221extern "C" {
1222    pub fn _ldlog(_X: f64, _Baseflag: ::std::os::raw::c_int) -> f64;
1223}
1224extern "C" {
1225    pub fn _fdlog(_X: f32, _Baseflag: ::std::os::raw::c_int) -> f32;
1226}
1227extern "C" {
1228    pub fn _dsin(_X: f64, _Qoff: ::std::os::raw::c_uint) -> f64;
1229}
1230extern "C" {
1231    pub fn _ldsin(_X: f64, _Qoff: ::std::os::raw::c_uint) -> f64;
1232}
1233extern "C" {
1234    pub fn _fdsin(_X: f32, _Qoff: ::std::os::raw::c_uint) -> f32;
1235}
1236#[repr(C)]
1237#[derive(Copy, Clone)]
1238pub union _double_val {
1239    pub _Sh: [::std::os::raw::c_ushort; 4usize],
1240    pub _Val: f64,
1241}
1242#[test]
1243fn bindgen_test_layout__double_val() {
1244    const UNINIT: ::std::mem::MaybeUninit<_double_val> = ::std::mem::MaybeUninit::uninit();
1245    let ptr = UNINIT.as_ptr();
1246    assert_eq!(
1247        ::std::mem::size_of::<_double_val>(),
1248        8usize,
1249        concat!("Size of: ", stringify!(_double_val))
1250    );
1251    assert_eq!(
1252        ::std::mem::align_of::<_double_val>(),
1253        8usize,
1254        concat!("Alignment of ", stringify!(_double_val))
1255    );
1256    assert_eq!(
1257        unsafe { ::std::ptr::addr_of!((*ptr)._Sh) as usize - ptr as usize },
1258        0usize,
1259        concat!(
1260            "Offset of field: ",
1261            stringify!(_double_val),
1262            "::",
1263            stringify!(_Sh)
1264        )
1265    );
1266    assert_eq!(
1267        unsafe { ::std::ptr::addr_of!((*ptr)._Val) as usize - ptr as usize },
1268        0usize,
1269        concat!(
1270            "Offset of field: ",
1271            stringify!(_double_val),
1272            "::",
1273            stringify!(_Val)
1274        )
1275    );
1276}
1277#[repr(C)]
1278#[derive(Copy, Clone)]
1279pub union _float_val {
1280    pub _Sh: [::std::os::raw::c_ushort; 2usize],
1281    pub _Val: f32,
1282}
1283#[test]
1284fn bindgen_test_layout__float_val() {
1285    const UNINIT: ::std::mem::MaybeUninit<_float_val> = ::std::mem::MaybeUninit::uninit();
1286    let ptr = UNINIT.as_ptr();
1287    assert_eq!(
1288        ::std::mem::size_of::<_float_val>(),
1289        4usize,
1290        concat!("Size of: ", stringify!(_float_val))
1291    );
1292    assert_eq!(
1293        ::std::mem::align_of::<_float_val>(),
1294        4usize,
1295        concat!("Alignment of ", stringify!(_float_val))
1296    );
1297    assert_eq!(
1298        unsafe { ::std::ptr::addr_of!((*ptr)._Sh) as usize - ptr as usize },
1299        0usize,
1300        concat!(
1301            "Offset of field: ",
1302            stringify!(_float_val),
1303            "::",
1304            stringify!(_Sh)
1305        )
1306    );
1307    assert_eq!(
1308        unsafe { ::std::ptr::addr_of!((*ptr)._Val) as usize - ptr as usize },
1309        0usize,
1310        concat!(
1311            "Offset of field: ",
1312            stringify!(_float_val),
1313            "::",
1314            stringify!(_Val)
1315        )
1316    );
1317}
1318#[repr(C)]
1319#[derive(Copy, Clone)]
1320pub union _ldouble_val {
1321    pub _Sh: [::std::os::raw::c_ushort; 4usize],
1322    pub _Val: f64,
1323}
1324#[test]
1325fn bindgen_test_layout__ldouble_val() {
1326    const UNINIT: ::std::mem::MaybeUninit<_ldouble_val> = ::std::mem::MaybeUninit::uninit();
1327    let ptr = UNINIT.as_ptr();
1328    assert_eq!(
1329        ::std::mem::size_of::<_ldouble_val>(),
1330        8usize,
1331        concat!("Size of: ", stringify!(_ldouble_val))
1332    );
1333    assert_eq!(
1334        ::std::mem::align_of::<_ldouble_val>(),
1335        8usize,
1336        concat!("Alignment of ", stringify!(_ldouble_val))
1337    );
1338    assert_eq!(
1339        unsafe { ::std::ptr::addr_of!((*ptr)._Sh) as usize - ptr as usize },
1340        0usize,
1341        concat!(
1342            "Offset of field: ",
1343            stringify!(_ldouble_val),
1344            "::",
1345            stringify!(_Sh)
1346        )
1347    );
1348    assert_eq!(
1349        unsafe { ::std::ptr::addr_of!((*ptr)._Val) as usize - ptr as usize },
1350        0usize,
1351        concat!(
1352            "Offset of field: ",
1353            stringify!(_ldouble_val),
1354            "::",
1355            stringify!(_Val)
1356        )
1357    );
1358}
1359#[repr(C)]
1360#[derive(Copy, Clone)]
1361pub union _float_const {
1362    pub _Word: [::std::os::raw::c_ushort; 4usize],
1363    pub _Float: f32,
1364    pub _Double: f64,
1365    pub _Long_double: f64,
1366}
1367#[test]
1368fn bindgen_test_layout__float_const() {
1369    const UNINIT: ::std::mem::MaybeUninit<_float_const> = ::std::mem::MaybeUninit::uninit();
1370    let ptr = UNINIT.as_ptr();
1371    assert_eq!(
1372        ::std::mem::size_of::<_float_const>(),
1373        8usize,
1374        concat!("Size of: ", stringify!(_float_const))
1375    );
1376    assert_eq!(
1377        ::std::mem::align_of::<_float_const>(),
1378        8usize,
1379        concat!("Alignment of ", stringify!(_float_const))
1380    );
1381    assert_eq!(
1382        unsafe { ::std::ptr::addr_of!((*ptr)._Word) as usize - ptr as usize },
1383        0usize,
1384        concat!(
1385            "Offset of field: ",
1386            stringify!(_float_const),
1387            "::",
1388            stringify!(_Word)
1389        )
1390    );
1391    assert_eq!(
1392        unsafe { ::std::ptr::addr_of!((*ptr)._Float) as usize - ptr as usize },
1393        0usize,
1394        concat!(
1395            "Offset of field: ",
1396            stringify!(_float_const),
1397            "::",
1398            stringify!(_Float)
1399        )
1400    );
1401    assert_eq!(
1402        unsafe { ::std::ptr::addr_of!((*ptr)._Double) as usize - ptr as usize },
1403        0usize,
1404        concat!(
1405            "Offset of field: ",
1406            stringify!(_float_const),
1407            "::",
1408            stringify!(_Double)
1409        )
1410    );
1411    assert_eq!(
1412        unsafe { ::std::ptr::addr_of!((*ptr)._Long_double) as usize - ptr as usize },
1413        0usize,
1414        concat!(
1415            "Offset of field: ",
1416            stringify!(_float_const),
1417            "::",
1418            stringify!(_Long_double)
1419        )
1420    );
1421}
1422extern "C" {
1423    pub static _Denorm_C: _float_const;
1424}
1425extern "C" {
1426    pub static _Inf_C: _float_const;
1427}
1428extern "C" {
1429    pub static _Nan_C: _float_const;
1430}
1431extern "C" {
1432    pub static _Snan_C: _float_const;
1433}
1434extern "C" {
1435    pub static _Hugeval_C: _float_const;
1436}
1437extern "C" {
1438    pub static _FDenorm_C: _float_const;
1439}
1440extern "C" {
1441    pub static _FInf_C: _float_const;
1442}
1443extern "C" {
1444    pub static _FNan_C: _float_const;
1445}
1446extern "C" {
1447    pub static _FSnan_C: _float_const;
1448}
1449extern "C" {
1450    pub static _LDenorm_C: _float_const;
1451}
1452extern "C" {
1453    pub static _LInf_C: _float_const;
1454}
1455extern "C" {
1456    pub static _LNan_C: _float_const;
1457}
1458extern "C" {
1459    pub static _LSnan_C: _float_const;
1460}
1461extern "C" {
1462    pub static _Eps_C: _float_const;
1463}
1464extern "C" {
1465    pub static _Rteps_C: _float_const;
1466}
1467extern "C" {
1468    pub static _FEps_C: _float_const;
1469}
1470extern "C" {
1471    pub static _FRteps_C: _float_const;
1472}
1473extern "C" {
1474    pub static _LEps_C: _float_const;
1475}
1476extern "C" {
1477    pub static _LRteps_C: _float_const;
1478}
1479extern "C" {
1480    pub static _Zero_C: f64;
1481}
1482extern "C" {
1483    pub static _Xbig_C: f64;
1484}
1485extern "C" {
1486    pub static _FZero_C: f32;
1487}
1488extern "C" {
1489    pub static _FXbig_C: f32;
1490}
1491extern "C" {
1492    pub static _LZero_C: f64;
1493}
1494extern "C" {
1495    pub static _LXbig_C: f64;
1496}
1497#[repr(C)]
1498#[derive(Debug, Copy, Clone)]
1499pub struct _Combined_type {
1500    pub _address: u8,
1501}
1502pub type _Combined_type__Type = f32;
1503#[test]
1504fn __bindgen_test_layout__Combined_type_open0_float_double_close0_instantiation() {
1505    assert_eq!(
1506        ::std::mem::size_of::<_Combined_type>(),
1507        1usize,
1508        concat!(
1509            "Size of template specialization: ",
1510            stringify!(_Combined_type)
1511        )
1512    );
1513    assert_eq!(
1514        ::std::mem::align_of::<_Combined_type>(),
1515        1usize,
1516        concat!(
1517            "Alignment of template specialization: ",
1518            stringify!(_Combined_type)
1519        )
1520    );
1521}
1522#[test]
1523fn __bindgen_test_layout__Combined_type_open0_float_long_double_close0_instantiation() {
1524    assert_eq!(
1525        ::std::mem::size_of::<_Combined_type>(),
1526        1usize,
1527        concat!(
1528            "Size of template specialization: ",
1529            stringify!(_Combined_type)
1530        )
1531    );
1532    assert_eq!(
1533        ::std::mem::align_of::<_Combined_type>(),
1534        1usize,
1535        concat!(
1536            "Alignment of template specialization: ",
1537            stringify!(_Combined_type)
1538        )
1539    );
1540}
1541#[repr(C)]
1542#[derive(Debug, Copy, Clone)]
1543pub struct _Real_widened {
1544    pub _address: u8,
1545}
1546pub type _Real_widened__Type = f64;
1547#[test]
1548fn __bindgen_test_layout__Real_widened_open0_float_float_close0_instantiation() {
1549    assert_eq!(
1550        ::std::mem::size_of::<_Real_widened>(),
1551        1usize,
1552        concat!(
1553            "Size of template specialization: ",
1554            stringify!(_Real_widened)
1555        )
1556    );
1557    assert_eq!(
1558        ::std::mem::align_of::<_Real_widened>(),
1559        1usize,
1560        concat!(
1561            "Alignment of template specialization: ",
1562            stringify!(_Real_widened)
1563        )
1564    );
1565}
1566#[test]
1567fn __bindgen_test_layout__Real_widened_open0_float_double_close0_instantiation() {
1568    assert_eq!(
1569        ::std::mem::size_of::<_Real_widened>(),
1570        1usize,
1571        concat!(
1572            "Size of template specialization: ",
1573            stringify!(_Real_widened)
1574        )
1575    );
1576    assert_eq!(
1577        ::std::mem::align_of::<_Real_widened>(),
1578        1usize,
1579        concat!(
1580            "Alignment of template specialization: ",
1581            stringify!(_Real_widened)
1582        )
1583    );
1584}
1585#[test]
1586fn __bindgen_test_layout__Real_widened_open0_double_float_close0_instantiation() {
1587    assert_eq!(
1588        ::std::mem::size_of::<_Real_widened>(),
1589        1usize,
1590        concat!(
1591            "Size of template specialization: ",
1592            stringify!(_Real_widened)
1593        )
1594    );
1595    assert_eq!(
1596        ::std::mem::align_of::<_Real_widened>(),
1597        1usize,
1598        concat!(
1599            "Alignment of template specialization: ",
1600            stringify!(_Real_widened)
1601        )
1602    );
1603}
1604#[test]
1605fn __bindgen_test_layout__Real_widened_open0_double_double_close0_instantiation() {
1606    assert_eq!(
1607        ::std::mem::size_of::<_Real_widened>(),
1608        1usize,
1609        concat!(
1610            "Size of template specialization: ",
1611            stringify!(_Real_widened)
1612        )
1613    );
1614    assert_eq!(
1615        ::std::mem::align_of::<_Real_widened>(),
1616        1usize,
1617        concat!(
1618            "Alignment of template specialization: ",
1619            stringify!(_Real_widened)
1620        )
1621    );
1622}
1623#[repr(C)]
1624#[derive(Debug, Copy, Clone)]
1625pub struct _Real_type {
1626    pub _address: u8,
1627}
1628pub type _Real_type__Type = f64;
1629#[test]
1630fn __bindgen_test_layout__Real_type_open0_float_close0_instantiation() {
1631    assert_eq!(
1632        ::std::mem::size_of::<_Real_type>(),
1633        1usize,
1634        concat!("Size of template specialization: ", stringify!(_Real_type))
1635    );
1636    assert_eq!(
1637        ::std::mem::align_of::<_Real_type>(),
1638        1usize,
1639        concat!(
1640            "Alignment of template specialization: ",
1641            stringify!(_Real_type)
1642        )
1643    );
1644}
1645#[test]
1646fn __bindgen_test_layout__Real_type_open0_long_double_close0_instantiation() {
1647    assert_eq!(
1648        ::std::mem::size_of::<_Real_type>(),
1649        1usize,
1650        concat!("Size of template specialization: ", stringify!(_Real_type))
1651    );
1652    assert_eq!(
1653        ::std::mem::align_of::<_Real_type>(),
1654        1usize,
1655        concat!(
1656            "Alignment of template specialization: ",
1657            stringify!(_Real_type)
1658        )
1659    );
1660}
1661extern "C" {
1662    pub fn abs(_X: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
1663}
1664extern "C" {
1665    pub fn labs(_X: ::std::os::raw::c_long) -> ::std::os::raw::c_long;
1666}
1667extern "C" {
1668    pub fn llabs(_X: ::std::os::raw::c_longlong) -> ::std::os::raw::c_longlong;
1669}
1670extern "C" {
1671    pub fn acos(_X: f64) -> f64;
1672}
1673extern "C" {
1674    pub fn asin(_X: f64) -> f64;
1675}
1676extern "C" {
1677    pub fn atan(_X: f64) -> f64;
1678}
1679extern "C" {
1680    pub fn atan2(_Y: f64, _X: f64) -> f64;
1681}
1682extern "C" {
1683    pub fn cos(_X: f64) -> f64;
1684}
1685extern "C" {
1686    pub fn cosh(_X: f64) -> f64;
1687}
1688extern "C" {
1689    pub fn exp(_X: f64) -> f64;
1690}
1691extern "C" {
1692    pub fn fabs(_X: f64) -> f64;
1693}
1694extern "C" {
1695    pub fn fmod(_X: f64, _Y: f64) -> f64;
1696}
1697extern "C" {
1698    pub fn log(_X: f64) -> f64;
1699}
1700extern "C" {
1701    pub fn log10(_X: f64) -> f64;
1702}
1703extern "C" {
1704    pub fn pow(_X: f64, _Y: f64) -> f64;
1705}
1706extern "C" {
1707    pub fn sin(_X: f64) -> f64;
1708}
1709extern "C" {
1710    pub fn sinh(_X: f64) -> f64;
1711}
1712extern "C" {
1713    pub fn sqrt(_X: f64) -> f64;
1714}
1715extern "C" {
1716    pub fn tan(_X: f64) -> f64;
1717}
1718extern "C" {
1719    pub fn tanh(_X: f64) -> f64;
1720}
1721extern "C" {
1722    pub fn acosh(_X: f64) -> f64;
1723}
1724extern "C" {
1725    pub fn asinh(_X: f64) -> f64;
1726}
1727extern "C" {
1728    pub fn atanh(_X: f64) -> f64;
1729}
1730extern "C" {
1731    pub fn atof(_String: *const ::std::os::raw::c_char) -> f64;
1732}
1733extern "C" {
1734    pub fn _atof_l(_String: *const ::std::os::raw::c_char, _Locale: _locale_t) -> f64;
1735}
1736extern "C" {
1737    pub fn _cabs(_Complex_value: _complex) -> f64;
1738}
1739extern "C" {
1740    pub fn cbrt(_X: f64) -> f64;
1741}
1742extern "C" {
1743    pub fn ceil(_X: f64) -> f64;
1744}
1745extern "C" {
1746    pub fn _chgsign(_X: f64) -> f64;
1747}
1748extern "C" {
1749    pub fn copysign(_Number: f64, _Sign: f64) -> f64;
1750}
1751extern "C" {
1752    pub fn _copysign(_Number: f64, _Sign: f64) -> f64;
1753}
1754extern "C" {
1755    pub fn erf(_X: f64) -> f64;
1756}
1757extern "C" {
1758    pub fn erfc(_X: f64) -> f64;
1759}
1760extern "C" {
1761    pub fn exp2(_X: f64) -> f64;
1762}
1763extern "C" {
1764    pub fn expm1(_X: f64) -> f64;
1765}
1766extern "C" {
1767    pub fn fdim(_X: f64, _Y: f64) -> f64;
1768}
1769extern "C" {
1770    pub fn floor(_X: f64) -> f64;
1771}
1772extern "C" {
1773    pub fn fma(_X: f64, _Y: f64, _Z: f64) -> f64;
1774}
1775extern "C" {
1776    pub fn fmax(_X: f64, _Y: f64) -> f64;
1777}
1778extern "C" {
1779    pub fn fmin(_X: f64, _Y: f64) -> f64;
1780}
1781extern "C" {
1782    pub fn frexp(_X: f64, _Y: *mut ::std::os::raw::c_int) -> f64;
1783}
1784extern "C" {
1785    pub fn hypot(_X: f64, _Y: f64) -> f64;
1786}
1787extern "C" {
1788    pub fn _hypot(_X: f64, _Y: f64) -> f64;
1789}
1790extern "C" {
1791    pub fn ilogb(_X: f64) -> ::std::os::raw::c_int;
1792}
1793extern "C" {
1794    pub fn ldexp(_X: f64, _Y: ::std::os::raw::c_int) -> f64;
1795}
1796extern "C" {
1797    pub fn lgamma(_X: f64) -> f64;
1798}
1799extern "C" {
1800    pub fn llrint(_X: f64) -> ::std::os::raw::c_longlong;
1801}
1802extern "C" {
1803    pub fn llround(_X: f64) -> ::std::os::raw::c_longlong;
1804}
1805extern "C" {
1806    pub fn log1p(_X: f64) -> f64;
1807}
1808extern "C" {
1809    pub fn log2(_X: f64) -> f64;
1810}
1811extern "C" {
1812    pub fn logb(_X: f64) -> f64;
1813}
1814extern "C" {
1815    pub fn lrint(_X: f64) -> ::std::os::raw::c_long;
1816}
1817extern "C" {
1818    pub fn lround(_X: f64) -> ::std::os::raw::c_long;
1819}
1820extern "C" {
1821    pub fn _matherr(_Except: *mut _exception) -> ::std::os::raw::c_int;
1822}
1823extern "C" {
1824    pub fn modf(_X: f64, _Y: *mut f64) -> f64;
1825}
1826extern "C" {
1827    pub fn nan(_X: *const ::std::os::raw::c_char) -> f64;
1828}
1829extern "C" {
1830    pub fn nearbyint(_X: f64) -> f64;
1831}
1832extern "C" {
1833    pub fn nextafter(_X: f64, _Y: f64) -> f64;
1834}
1835extern "C" {
1836    pub fn nexttoward(_X: f64, _Y: f64) -> f64;
1837}
1838extern "C" {
1839    pub fn remainder(_X: f64, _Y: f64) -> f64;
1840}
1841extern "C" {
1842    pub fn remquo(_X: f64, _Y: f64, _Z: *mut ::std::os::raw::c_int) -> f64;
1843}
1844extern "C" {
1845    pub fn rint(_X: f64) -> f64;
1846}
1847extern "C" {
1848    pub fn round(_X: f64) -> f64;
1849}
1850extern "C" {
1851    pub fn scalbln(_X: f64, _Y: ::std::os::raw::c_long) -> f64;
1852}
1853extern "C" {
1854    pub fn scalbn(_X: f64, _Y: ::std::os::raw::c_int) -> f64;
1855}
1856extern "C" {
1857    pub fn tgamma(_X: f64) -> f64;
1858}
1859extern "C" {
1860    pub fn trunc(_X: f64) -> f64;
1861}
1862extern "C" {
1863    pub fn _j0(_X: f64) -> f64;
1864}
1865extern "C" {
1866    pub fn _j1(_X: f64) -> f64;
1867}
1868extern "C" {
1869    pub fn _jn(_X: ::std::os::raw::c_int, _Y: f64) -> f64;
1870}
1871extern "C" {
1872    pub fn _y0(_X: f64) -> f64;
1873}
1874extern "C" {
1875    pub fn _y1(_X: f64) -> f64;
1876}
1877extern "C" {
1878    pub fn _yn(_X: ::std::os::raw::c_int, _Y: f64) -> f64;
1879}
1880extern "C" {
1881    pub fn acoshf(_X: f32) -> f32;
1882}
1883extern "C" {
1884    pub fn asinhf(_X: f32) -> f32;
1885}
1886extern "C" {
1887    pub fn atanhf(_X: f32) -> f32;
1888}
1889extern "C" {
1890    pub fn cbrtf(_X: f32) -> f32;
1891}
1892extern "C" {
1893    pub fn _chgsignf(_X: f32) -> f32;
1894}
1895extern "C" {
1896    pub fn copysignf(_Number: f32, _Sign: f32) -> f32;
1897}
1898extern "C" {
1899    pub fn _copysignf(_Number: f32, _Sign: f32) -> f32;
1900}
1901extern "C" {
1902    pub fn erff(_X: f32) -> f32;
1903}
1904extern "C" {
1905    pub fn erfcf(_X: f32) -> f32;
1906}
1907extern "C" {
1908    pub fn expm1f(_X: f32) -> f32;
1909}
1910extern "C" {
1911    pub fn exp2f(_X: f32) -> f32;
1912}
1913extern "C" {
1914    pub fn fdimf(_X: f32, _Y: f32) -> f32;
1915}
1916extern "C" {
1917    pub fn fmaf(_X: f32, _Y: f32, _Z: f32) -> f32;
1918}
1919extern "C" {
1920    pub fn fmaxf(_X: f32, _Y: f32) -> f32;
1921}
1922extern "C" {
1923    pub fn fminf(_X: f32, _Y: f32) -> f32;
1924}
1925extern "C" {
1926    pub fn _hypotf(_X: f32, _Y: f32) -> f32;
1927}
1928extern "C" {
1929    pub fn ilogbf(_X: f32) -> ::std::os::raw::c_int;
1930}
1931extern "C" {
1932    pub fn lgammaf(_X: f32) -> f32;
1933}
1934extern "C" {
1935    pub fn llrintf(_X: f32) -> ::std::os::raw::c_longlong;
1936}
1937extern "C" {
1938    pub fn llroundf(_X: f32) -> ::std::os::raw::c_longlong;
1939}
1940extern "C" {
1941    pub fn log1pf(_X: f32) -> f32;
1942}
1943extern "C" {
1944    pub fn log2f(_X: f32) -> f32;
1945}
1946extern "C" {
1947    pub fn logbf(_X: f32) -> f32;
1948}
1949extern "C" {
1950    pub fn lrintf(_X: f32) -> ::std::os::raw::c_long;
1951}
1952extern "C" {
1953    pub fn lroundf(_X: f32) -> ::std::os::raw::c_long;
1954}
1955extern "C" {
1956    pub fn nanf(_X: *const ::std::os::raw::c_char) -> f32;
1957}
1958extern "C" {
1959    pub fn nearbyintf(_X: f32) -> f32;
1960}
1961extern "C" {
1962    pub fn nextafterf(_X: f32, _Y: f32) -> f32;
1963}
1964extern "C" {
1965    pub fn nexttowardf(_X: f32, _Y: f64) -> f32;
1966}
1967extern "C" {
1968    pub fn remainderf(_X: f32, _Y: f32) -> f32;
1969}
1970extern "C" {
1971    pub fn remquof(_X: f32, _Y: f32, _Z: *mut ::std::os::raw::c_int) -> f32;
1972}
1973extern "C" {
1974    pub fn rintf(_X: f32) -> f32;
1975}
1976extern "C" {
1977    pub fn roundf(_X: f32) -> f32;
1978}
1979extern "C" {
1980    pub fn scalblnf(_X: f32, _Y: ::std::os::raw::c_long) -> f32;
1981}
1982extern "C" {
1983    pub fn scalbnf(_X: f32, _Y: ::std::os::raw::c_int) -> f32;
1984}
1985extern "C" {
1986    pub fn tgammaf(_X: f32) -> f32;
1987}
1988extern "C" {
1989    pub fn truncf(_X: f32) -> f32;
1990}
1991extern "C" {
1992    pub fn _logbf(_X: f32) -> f32;
1993}
1994extern "C" {
1995    pub fn _nextafterf(_X: f32, _Y: f32) -> f32;
1996}
1997extern "C" {
1998    pub fn _finitef(_X: f32) -> ::std::os::raw::c_int;
1999}
2000extern "C" {
2001    pub fn _isnanf(_X: f32) -> ::std::os::raw::c_int;
2002}
2003extern "C" {
2004    pub fn _fpclassf(_X: f32) -> ::std::os::raw::c_int;
2005}
2006extern "C" {
2007    pub fn _set_FMA3_enable(_Flag: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
2008}
2009extern "C" {
2010    pub fn _get_FMA3_enable() -> ::std::os::raw::c_int;
2011}
2012extern "C" {
2013    pub fn acosf(_X: f32) -> f32;
2014}
2015extern "C" {
2016    pub fn asinf(_X: f32) -> f32;
2017}
2018extern "C" {
2019    pub fn atan2f(_Y: f32, _X: f32) -> f32;
2020}
2021extern "C" {
2022    pub fn atanf(_X: f32) -> f32;
2023}
2024extern "C" {
2025    pub fn ceilf(_X: f32) -> f32;
2026}
2027extern "C" {
2028    pub fn cosf(_X: f32) -> f32;
2029}
2030extern "C" {
2031    pub fn coshf(_X: f32) -> f32;
2032}
2033extern "C" {
2034    pub fn expf(_X: f32) -> f32;
2035}
2036extern "C" {
2037    pub fn floorf(_X: f32) -> f32;
2038}
2039extern "C" {
2040    pub fn fmodf(_X: f32, _Y: f32) -> f32;
2041}
2042extern "C" {
2043    pub fn log10f(_X: f32) -> f32;
2044}
2045extern "C" {
2046    pub fn logf(_X: f32) -> f32;
2047}
2048extern "C" {
2049    pub fn modff(_X: f32, _Y: *mut f32) -> f32;
2050}
2051extern "C" {
2052    pub fn powf(_X: f32, _Y: f32) -> f32;
2053}
2054extern "C" {
2055    pub fn sinf(_X: f32) -> f32;
2056}
2057extern "C" {
2058    pub fn sinhf(_X: f32) -> f32;
2059}
2060extern "C" {
2061    pub fn sqrtf(_X: f32) -> f32;
2062}
2063extern "C" {
2064    pub fn tanf(_X: f32) -> f32;
2065}
2066extern "C" {
2067    pub fn tanhf(_X: f32) -> f32;
2068}
2069extern "C" {
2070    pub fn acoshl(_X: f64) -> f64;
2071}
2072extern "C" {
2073    pub fn asinhl(_X: f64) -> f64;
2074}
2075extern "C" {
2076    pub fn atanhl(_X: f64) -> f64;
2077}
2078extern "C" {
2079    pub fn cbrtl(_X: f64) -> f64;
2080}
2081extern "C" {
2082    pub fn copysignl(_Number: f64, _Sign: f64) -> f64;
2083}
2084extern "C" {
2085    pub fn erfl(_X: f64) -> f64;
2086}
2087extern "C" {
2088    pub fn erfcl(_X: f64) -> f64;
2089}
2090extern "C" {
2091    pub fn exp2l(_X: f64) -> f64;
2092}
2093extern "C" {
2094    pub fn expm1l(_X: f64) -> f64;
2095}
2096extern "C" {
2097    pub fn fdiml(_X: f64, _Y: f64) -> f64;
2098}
2099extern "C" {
2100    pub fn fmal(_X: f64, _Y: f64, _Z: f64) -> f64;
2101}
2102extern "C" {
2103    pub fn fmaxl(_X: f64, _Y: f64) -> f64;
2104}
2105extern "C" {
2106    pub fn fminl(_X: f64, _Y: f64) -> f64;
2107}
2108extern "C" {
2109    pub fn ilogbl(_X: f64) -> ::std::os::raw::c_int;
2110}
2111extern "C" {
2112    pub fn lgammal(_X: f64) -> f64;
2113}
2114extern "C" {
2115    pub fn llrintl(_X: f64) -> ::std::os::raw::c_longlong;
2116}
2117extern "C" {
2118    pub fn llroundl(_X: f64) -> ::std::os::raw::c_longlong;
2119}
2120extern "C" {
2121    pub fn log1pl(_X: f64) -> f64;
2122}
2123extern "C" {
2124    pub fn log2l(_X: f64) -> f64;
2125}
2126extern "C" {
2127    pub fn logbl(_X: f64) -> f64;
2128}
2129extern "C" {
2130    pub fn lrintl(_X: f64) -> ::std::os::raw::c_long;
2131}
2132extern "C" {
2133    pub fn lroundl(_X: f64) -> ::std::os::raw::c_long;
2134}
2135extern "C" {
2136    pub fn nanl(_X: *const ::std::os::raw::c_char) -> f64;
2137}
2138extern "C" {
2139    pub fn nearbyintl(_X: f64) -> f64;
2140}
2141extern "C" {
2142    pub fn nextafterl(_X: f64, _Y: f64) -> f64;
2143}
2144extern "C" {
2145    pub fn nexttowardl(_X: f64, _Y: f64) -> f64;
2146}
2147extern "C" {
2148    pub fn remainderl(_X: f64, _Y: f64) -> f64;
2149}
2150extern "C" {
2151    pub fn remquol(_X: f64, _Y: f64, _Z: *mut ::std::os::raw::c_int) -> f64;
2152}
2153extern "C" {
2154    pub fn rintl(_X: f64) -> f64;
2155}
2156extern "C" {
2157    pub fn roundl(_X: f64) -> f64;
2158}
2159extern "C" {
2160    pub fn scalblnl(_X: f64, _Y: ::std::os::raw::c_long) -> f64;
2161}
2162extern "C" {
2163    pub fn scalbnl(_X: f64, _Y: ::std::os::raw::c_int) -> f64;
2164}
2165extern "C" {
2166    pub fn tgammal(_X: f64) -> f64;
2167}
2168extern "C" {
2169    pub fn truncl(_X: f64) -> f64;
2170}
2171extern "C" {
2172    pub static mut HUGE: f64;
2173}
2174extern "C" {
2175    pub fn j0(_X: f64) -> f64;
2176}
2177extern "C" {
2178    pub fn j1(_X: f64) -> f64;
2179}
2180extern "C" {
2181    pub fn jn(_X: ::std::os::raw::c_int, _Y: f64) -> f64;
2182}
2183extern "C" {
2184    pub fn y0(_X: f64) -> f64;
2185}
2186extern "C" {
2187    pub fn y1(_X: f64) -> f64;
2188}
2189extern "C" {
2190    pub fn yn(_X: ::std::os::raw::c_int, _Y: f64) -> f64;
2191}
2192#[repr(C)]
2193#[derive(Debug, Copy, Clone)]
2194pub struct tm {
2195    pub tm_sec: ::std::os::raw::c_int,
2196    pub tm_min: ::std::os::raw::c_int,
2197    pub tm_hour: ::std::os::raw::c_int,
2198    pub tm_mday: ::std::os::raw::c_int,
2199    pub tm_mon: ::std::os::raw::c_int,
2200    pub tm_year: ::std::os::raw::c_int,
2201    pub tm_wday: ::std::os::raw::c_int,
2202    pub tm_yday: ::std::os::raw::c_int,
2203    pub tm_isdst: ::std::os::raw::c_int,
2204}
2205#[test]
2206fn bindgen_test_layout_tm() {
2207    const UNINIT: ::std::mem::MaybeUninit<tm> = ::std::mem::MaybeUninit::uninit();
2208    let ptr = UNINIT.as_ptr();
2209    assert_eq!(
2210        ::std::mem::size_of::<tm>(),
2211        36usize,
2212        concat!("Size of: ", stringify!(tm))
2213    );
2214    assert_eq!(
2215        ::std::mem::align_of::<tm>(),
2216        4usize,
2217        concat!("Alignment of ", stringify!(tm))
2218    );
2219    assert_eq!(
2220        unsafe { ::std::ptr::addr_of!((*ptr).tm_sec) as usize - ptr as usize },
2221        0usize,
2222        concat!(
2223            "Offset of field: ",
2224            stringify!(tm),
2225            "::",
2226            stringify!(tm_sec)
2227        )
2228    );
2229    assert_eq!(
2230        unsafe { ::std::ptr::addr_of!((*ptr).tm_min) as usize - ptr as usize },
2231        4usize,
2232        concat!(
2233            "Offset of field: ",
2234            stringify!(tm),
2235            "::",
2236            stringify!(tm_min)
2237        )
2238    );
2239    assert_eq!(
2240        unsafe { ::std::ptr::addr_of!((*ptr).tm_hour) as usize - ptr as usize },
2241        8usize,
2242        concat!(
2243            "Offset of field: ",
2244            stringify!(tm),
2245            "::",
2246            stringify!(tm_hour)
2247        )
2248    );
2249    assert_eq!(
2250        unsafe { ::std::ptr::addr_of!((*ptr).tm_mday) as usize - ptr as usize },
2251        12usize,
2252        concat!(
2253            "Offset of field: ",
2254            stringify!(tm),
2255            "::",
2256            stringify!(tm_mday)
2257        )
2258    );
2259    assert_eq!(
2260        unsafe { ::std::ptr::addr_of!((*ptr).tm_mon) as usize - ptr as usize },
2261        16usize,
2262        concat!(
2263            "Offset of field: ",
2264            stringify!(tm),
2265            "::",
2266            stringify!(tm_mon)
2267        )
2268    );
2269    assert_eq!(
2270        unsafe { ::std::ptr::addr_of!((*ptr).tm_year) as usize - ptr as usize },
2271        20usize,
2272        concat!(
2273            "Offset of field: ",
2274            stringify!(tm),
2275            "::",
2276            stringify!(tm_year)
2277        )
2278    );
2279    assert_eq!(
2280        unsafe { ::std::ptr::addr_of!((*ptr).tm_wday) as usize - ptr as usize },
2281        24usize,
2282        concat!(
2283            "Offset of field: ",
2284            stringify!(tm),
2285            "::",
2286            stringify!(tm_wday)
2287        )
2288    );
2289    assert_eq!(
2290        unsafe { ::std::ptr::addr_of!((*ptr).tm_yday) as usize - ptr as usize },
2291        28usize,
2292        concat!(
2293            "Offset of field: ",
2294            stringify!(tm),
2295            "::",
2296            stringify!(tm_yday)
2297        )
2298    );
2299    assert_eq!(
2300        unsafe { ::std::ptr::addr_of!((*ptr).tm_isdst) as usize - ptr as usize },
2301        32usize,
2302        concat!(
2303            "Offset of field: ",
2304            stringify!(tm),
2305            "::",
2306            stringify!(tm_isdst)
2307        )
2308    );
2309}
2310extern "C" {
2311    pub fn _wasctime(_Tm: *const tm) -> *mut u16;
2312}
2313extern "C" {
2314    pub fn _wasctime_s(_Buffer: *mut u16, _SizeInWords: usize, _Tm: *const tm) -> errno_t;
2315}
2316extern "C" {
2317    pub fn wcsftime(
2318        _Buffer: *mut u16,
2319        _SizeInWords: usize,
2320        _Format: *const u16,
2321        _Tm: *const tm,
2322    ) -> usize;
2323}
2324extern "C" {
2325    pub fn _wcsftime_l(
2326        _Buffer: *mut u16,
2327        _SizeInWords: usize,
2328        _Format: *const u16,
2329        _Tm: *const tm,
2330        _Locale: _locale_t,
2331    ) -> usize;
2332}
2333extern "C" {
2334    pub fn _wctime32(_Time: *const __time32_t) -> *mut u16;
2335}
2336extern "C" {
2337    pub fn _wctime32_s(_Buffer: *mut u16, _SizeInWords: usize, _Time: *const __time32_t)
2338        -> errno_t;
2339}
2340extern "C" {
2341    pub fn _wctime64(_Time: *const __time64_t) -> *mut u16;
2342}
2343extern "C" {
2344    pub fn _wctime64_s(_Buffer: *mut u16, _SizeInWords: usize, _Time: *const __time64_t)
2345        -> errno_t;
2346}
2347extern "C" {
2348    pub fn _wstrdate_s(_Buffer: *mut u16, _SizeInWords: usize) -> errno_t;
2349}
2350extern "C" {
2351    pub fn _wstrdate(_Buffer: *mut u16) -> *mut u16;
2352}
2353extern "C" {
2354    pub fn _wstrtime_s(_Buffer: *mut u16, _SizeInWords: usize) -> errno_t;
2355}
2356extern "C" {
2357    pub fn _wstrtime(_Buffer: *mut u16) -> *mut u16;
2358}
2359pub type clock_t = ::std::os::raw::c_long;
2360#[repr(C)]
2361#[derive(Debug, Copy, Clone)]
2362pub struct _timespec32 {
2363    pub tv_sec: __time32_t,
2364    pub tv_nsec: ::std::os::raw::c_long,
2365}
2366#[test]
2367fn bindgen_test_layout__timespec32() {
2368    const UNINIT: ::std::mem::MaybeUninit<_timespec32> = ::std::mem::MaybeUninit::uninit();
2369    let ptr = UNINIT.as_ptr();
2370    assert_eq!(
2371        ::std::mem::size_of::<_timespec32>(),
2372        8usize,
2373        concat!("Size of: ", stringify!(_timespec32))
2374    );
2375    assert_eq!(
2376        ::std::mem::align_of::<_timespec32>(),
2377        4usize,
2378        concat!("Alignment of ", stringify!(_timespec32))
2379    );
2380    assert_eq!(
2381        unsafe { ::std::ptr::addr_of!((*ptr).tv_sec) as usize - ptr as usize },
2382        0usize,
2383        concat!(
2384            "Offset of field: ",
2385            stringify!(_timespec32),
2386            "::",
2387            stringify!(tv_sec)
2388        )
2389    );
2390    assert_eq!(
2391        unsafe { ::std::ptr::addr_of!((*ptr).tv_nsec) as usize - ptr as usize },
2392        4usize,
2393        concat!(
2394            "Offset of field: ",
2395            stringify!(_timespec32),
2396            "::",
2397            stringify!(tv_nsec)
2398        )
2399    );
2400}
2401#[repr(C)]
2402#[derive(Debug, Copy, Clone)]
2403pub struct _timespec64 {
2404    pub tv_sec: __time64_t,
2405    pub tv_nsec: ::std::os::raw::c_long,
2406}
2407#[test]
2408fn bindgen_test_layout__timespec64() {
2409    const UNINIT: ::std::mem::MaybeUninit<_timespec64> = ::std::mem::MaybeUninit::uninit();
2410    let ptr = UNINIT.as_ptr();
2411    assert_eq!(
2412        ::std::mem::size_of::<_timespec64>(),
2413        16usize,
2414        concat!("Size of: ", stringify!(_timespec64))
2415    );
2416    assert_eq!(
2417        ::std::mem::align_of::<_timespec64>(),
2418        8usize,
2419        concat!("Alignment of ", stringify!(_timespec64))
2420    );
2421    assert_eq!(
2422        unsafe { ::std::ptr::addr_of!((*ptr).tv_sec) as usize - ptr as usize },
2423        0usize,
2424        concat!(
2425            "Offset of field: ",
2426            stringify!(_timespec64),
2427            "::",
2428            stringify!(tv_sec)
2429        )
2430    );
2431    assert_eq!(
2432        unsafe { ::std::ptr::addr_of!((*ptr).tv_nsec) as usize - ptr as usize },
2433        8usize,
2434        concat!(
2435            "Offset of field: ",
2436            stringify!(_timespec64),
2437            "::",
2438            stringify!(tv_nsec)
2439        )
2440    );
2441}
2442#[repr(C)]
2443#[derive(Debug, Copy, Clone)]
2444pub struct timespec {
2445    pub tv_sec: time_t,
2446    pub tv_nsec: ::std::os::raw::c_long,
2447}
2448#[test]
2449fn bindgen_test_layout_timespec() {
2450    const UNINIT: ::std::mem::MaybeUninit<timespec> = ::std::mem::MaybeUninit::uninit();
2451    let ptr = UNINIT.as_ptr();
2452    assert_eq!(
2453        ::std::mem::size_of::<timespec>(),
2454        16usize,
2455        concat!("Size of: ", stringify!(timespec))
2456    );
2457    assert_eq!(
2458        ::std::mem::align_of::<timespec>(),
2459        8usize,
2460        concat!("Alignment of ", stringify!(timespec))
2461    );
2462    assert_eq!(
2463        unsafe { ::std::ptr::addr_of!((*ptr).tv_sec) as usize - ptr as usize },
2464        0usize,
2465        concat!(
2466            "Offset of field: ",
2467            stringify!(timespec),
2468            "::",
2469            stringify!(tv_sec)
2470        )
2471    );
2472    assert_eq!(
2473        unsafe { ::std::ptr::addr_of!((*ptr).tv_nsec) as usize - ptr as usize },
2474        8usize,
2475        concat!(
2476            "Offset of field: ",
2477            stringify!(timespec),
2478            "::",
2479            stringify!(tv_nsec)
2480        )
2481    );
2482}
2483extern "C" {
2484    pub fn __daylight() -> *mut ::std::os::raw::c_int;
2485}
2486extern "C" {
2487    pub fn __dstbias() -> *mut ::std::os::raw::c_long;
2488}
2489extern "C" {
2490    pub fn __timezone() -> *mut ::std::os::raw::c_long;
2491}
2492extern "C" {
2493    pub fn __tzname() -> *mut *mut ::std::os::raw::c_char;
2494}
2495extern "C" {
2496    pub fn _get_daylight(_Daylight: *mut ::std::os::raw::c_int) -> errno_t;
2497}
2498extern "C" {
2499    pub fn _get_dstbias(_DaylightSavingsBias: *mut ::std::os::raw::c_long) -> errno_t;
2500}
2501extern "C" {
2502    pub fn _get_timezone(_TimeZone: *mut ::std::os::raw::c_long) -> errno_t;
2503}
2504extern "C" {
2505    pub fn _get_tzname(
2506        _ReturnValue: *mut usize,
2507        _Buffer: *mut ::std::os::raw::c_char,
2508        _SizeInBytes: usize,
2509        _Index: ::std::os::raw::c_int,
2510    ) -> errno_t;
2511}
2512extern "C" {
2513    pub fn asctime(_Tm: *const tm) -> *mut ::std::os::raw::c_char;
2514}
2515extern "C" {
2516    pub fn asctime_s(
2517        _Buffer: *mut ::std::os::raw::c_char,
2518        _SizeInBytes: usize,
2519        _Tm: *const tm,
2520    ) -> errno_t;
2521}
2522extern "C" {
2523    pub fn clock() -> clock_t;
2524}
2525extern "C" {
2526    pub fn _ctime32(_Time: *const __time32_t) -> *mut ::std::os::raw::c_char;
2527}
2528extern "C" {
2529    pub fn _ctime32_s(
2530        _Buffer: *mut ::std::os::raw::c_char,
2531        _SizeInBytes: usize,
2532        _Time: *const __time32_t,
2533    ) -> errno_t;
2534}
2535extern "C" {
2536    pub fn _ctime64(_Time: *const __time64_t) -> *mut ::std::os::raw::c_char;
2537}
2538extern "C" {
2539    pub fn _ctime64_s(
2540        _Buffer: *mut ::std::os::raw::c_char,
2541        _SizeInBytes: usize,
2542        _Time: *const __time64_t,
2543    ) -> errno_t;
2544}
2545extern "C" {
2546    pub fn _difftime32(_Time1: __time32_t, _Time2: __time32_t) -> f64;
2547}
2548extern "C" {
2549    pub fn _difftime64(_Time1: __time64_t, _Time2: __time64_t) -> f64;
2550}
2551extern "C" {
2552    pub fn _gmtime32(_Time: *const __time32_t) -> *mut tm;
2553}
2554extern "C" {
2555    pub fn _gmtime32_s(_Tm: *mut tm, _Time: *const __time32_t) -> errno_t;
2556}
2557extern "C" {
2558    pub fn _gmtime64(_Time: *const __time64_t) -> *mut tm;
2559}
2560extern "C" {
2561    pub fn _gmtime64_s(_Tm: *mut tm, _Time: *const __time64_t) -> errno_t;
2562}
2563extern "C" {
2564    pub fn _localtime32(_Time: *const __time32_t) -> *mut tm;
2565}
2566extern "C" {
2567    pub fn _localtime32_s(_Tm: *mut tm, _Time: *const __time32_t) -> errno_t;
2568}
2569extern "C" {
2570    pub fn _localtime64(_Time: *const __time64_t) -> *mut tm;
2571}
2572extern "C" {
2573    pub fn _localtime64_s(_Tm: *mut tm, _Time: *const __time64_t) -> errno_t;
2574}
2575extern "C" {
2576    pub fn _mkgmtime32(_Tm: *mut tm) -> __time32_t;
2577}
2578extern "C" {
2579    pub fn _mkgmtime64(_Tm: *mut tm) -> __time64_t;
2580}
2581extern "C" {
2582    pub fn _mktime32(_Tm: *mut tm) -> __time32_t;
2583}
2584extern "C" {
2585    pub fn _mktime64(_Tm: *mut tm) -> __time64_t;
2586}
2587extern "C" {
2588    pub fn strftime(
2589        _Buffer: *mut ::std::os::raw::c_char,
2590        _SizeInBytes: usize,
2591        _Format: *const ::std::os::raw::c_char,
2592        _Tm: *const tm,
2593    ) -> usize;
2594}
2595extern "C" {
2596    pub fn _strftime_l(
2597        _Buffer: *mut ::std::os::raw::c_char,
2598        _MaxSize: usize,
2599        _Format: *const ::std::os::raw::c_char,
2600        _Tm: *const tm,
2601        _Locale: _locale_t,
2602    ) -> usize;
2603}
2604extern "C" {
2605    pub fn _strdate_s(_Buffer: *mut ::std::os::raw::c_char, _SizeInBytes: usize) -> errno_t;
2606}
2607extern "C" {
2608    pub fn _strdate(_Buffer: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
2609}
2610extern "C" {
2611    pub fn _strtime_s(_Buffer: *mut ::std::os::raw::c_char, _SizeInBytes: usize) -> errno_t;
2612}
2613extern "C" {
2614    pub fn _strtime(_Buffer: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
2615}
2616extern "C" {
2617    pub fn _time32(_Time: *mut __time32_t) -> __time32_t;
2618}
2619extern "C" {
2620    pub fn _time64(_Time: *mut __time64_t) -> __time64_t;
2621}
2622extern "C" {
2623    pub fn _timespec32_get(
2624        _Ts: *mut _timespec32,
2625        _Base: ::std::os::raw::c_int,
2626    ) -> ::std::os::raw::c_int;
2627}
2628extern "C" {
2629    pub fn _timespec64_get(
2630        _Ts: *mut _timespec64,
2631        _Base: ::std::os::raw::c_int,
2632    ) -> ::std::os::raw::c_int;
2633}
2634extern "C" {
2635    pub fn _tzset();
2636}
2637extern "C" {
2638    pub fn _getsystime(_Tm: *mut tm) -> ::std::os::raw::c_uint;
2639}
2640extern "C" {
2641    pub fn _setsystime(
2642        _Tm: *mut tm,
2643        _Milliseconds: ::std::os::raw::c_uint,
2644    ) -> ::std::os::raw::c_uint;
2645}
2646extern "C" {
2647    pub fn tzset();
2648}
2649pub type dint64 = ::std::os::raw::c_longlong;
2650pub type duint64 = ::std::os::raw::c_ulonglong;
2651pub type dint32 = ::std::os::raw::c_int;
2652pub type duint32 = ::std::os::raw::c_uint;
2653pub type dint16 = ::std::os::raw::c_short;
2654pub type duint16 = ::std::os::raw::c_ushort;
2655pub type dint8 = ::std::os::raw::c_schar;
2656pub type duint8 = ::std::os::raw::c_uchar;
2657pub type dintptr = dint64;
2658pub type duintptr = duint64;
2659pub type ddiffint = dint64;
2660pub type dsizeint = duint64;
2661pub type dReal = f64;
2662pub type dTriIndex = duint32;
2663pub const dInfinity: dReal = ::std::f64::INFINITY;
2664pub type dMessageFunction = ::std::option::Option<
2665    unsafe extern "C" fn(
2666        errnum: ::std::os::raw::c_int,
2667        msg: *const ::std::os::raw::c_char,
2668        ap: va_list,
2669    ),
2670>;
2671extern "C" {
2672    pub fn dSetErrorHandler(fn_: dMessageFunction);
2673}
2674extern "C" {
2675    pub fn dSetDebugHandler(fn_: dMessageFunction);
2676}
2677extern "C" {
2678    pub fn dSetMessageHandler(fn_: dMessageFunction);
2679}
2680extern "C" {
2681    pub fn dGetErrorHandler() -> dMessageFunction;
2682}
2683extern "C" {
2684    pub fn dGetDebugHandler() -> dMessageFunction;
2685}
2686extern "C" {
2687    pub fn dGetMessageHandler() -> dMessageFunction;
2688}
2689extern "C" {
2690    pub fn dError(num: ::std::os::raw::c_int, msg: *const ::std::os::raw::c_char, ...);
2691}
2692extern "C" {
2693    pub fn dDebug(num: ::std::os::raw::c_int, msg: *const ::std::os::raw::c_char, ...);
2694}
2695extern "C" {
2696    pub fn dMessage(num: ::std::os::raw::c_int, msg: *const ::std::os::raw::c_char, ...);
2697}
2698pub const dSpaceAxis_dSA__MIN: dSpaceAxis = 0;
2699pub const dSpaceAxis_dSA_X: dSpaceAxis = 0;
2700pub const dSpaceAxis_dSA_Y: dSpaceAxis = 1;
2701pub const dSpaceAxis_dSA_Z: dSpaceAxis = 2;
2702pub const dSpaceAxis_dSA__MAX: dSpaceAxis = 3;
2703pub type dSpaceAxis = ::std::os::raw::c_int;
2704pub const dMotionDynamics_dMD__MIN: dMotionDynamics = 0;
2705pub const dMotionDynamics_dMD_LINEAR: dMotionDynamics = 0;
2706pub const dMotionDynamics_dMD_ANGULAR: dMotionDynamics = 1;
2707pub const dMotionDynamics_dMD__MAX: dMotionDynamics = 2;
2708pub type dMotionDynamics = ::std::os::raw::c_int;
2709pub const dDynamicsAxis_dDA__MIN: dDynamicsAxis = 0;
2710pub const dDynamicsAxis_dDA__L_MIN: dDynamicsAxis = 0;
2711pub const dDynamicsAxis_dDA_LX: dDynamicsAxis = 0;
2712pub const dDynamicsAxis_dDA_LY: dDynamicsAxis = 1;
2713pub const dDynamicsAxis_dDA_LZ: dDynamicsAxis = 2;
2714pub const dDynamicsAxis_dDA__L_MAX: dDynamicsAxis = 3;
2715pub const dDynamicsAxis_dDA__A_MIN: dDynamicsAxis = 3;
2716pub const dDynamicsAxis_dDA_AX: dDynamicsAxis = 3;
2717pub const dDynamicsAxis_dDA_AY: dDynamicsAxis = 4;
2718pub const dDynamicsAxis_dDA_AZ: dDynamicsAxis = 5;
2719pub const dDynamicsAxis_dDA__A_MAX: dDynamicsAxis = 6;
2720pub const dDynamicsAxis_dDA__MAX: dDynamicsAxis = 6;
2721pub type dDynamicsAxis = ::std::os::raw::c_int;
2722pub const dVec3Element_dV3E__MIN: dVec3Element = 0;
2723pub const dVec3Element_dV3E__AXES_MIN: dVec3Element = 0;
2724pub const dVec3Element_dV3E_X: dVec3Element = 0;
2725pub const dVec3Element_dV3E_Y: dVec3Element = 1;
2726pub const dVec3Element_dV3E_Z: dVec3Element = 2;
2727pub const dVec3Element_dV3E__AXES_MAX: dVec3Element = 3;
2728pub const dVec3Element_dV3E_PAD: dVec3Element = 3;
2729pub const dVec3Element_dV3E__MAX: dVec3Element = 4;
2730pub const dVec3Element_dV3E__AXES_COUNT: dVec3Element = 3;
2731pub type dVec3Element = ::std::os::raw::c_int;
2732pub const dVec4Element_dV4E__MIN: dVec4Element = 0;
2733pub const dVec4Element_dV4E_X: dVec4Element = 0;
2734pub const dVec4Element_dV4E_Y: dVec4Element = 1;
2735pub const dVec4Element_dV4E_Z: dVec4Element = 2;
2736pub const dVec4Element_dV4E_O: dVec4Element = 3;
2737pub const dVec4Element_dV4E__MAX: dVec4Element = 4;
2738pub type dVec4Element = ::std::os::raw::c_int;
2739pub const dMat3Element_dM3E__MIN: dMat3Element = 0;
2740pub const dMat3Element_dM3E__X_MIN: dMat3Element = 0;
2741pub const dMat3Element_dM3E__X_AXES_MIN: dMat3Element = 0;
2742pub const dMat3Element_dM3E_XX: dMat3Element = 0;
2743pub const dMat3Element_dM3E_XY: dMat3Element = 1;
2744pub const dMat3Element_dM3E_XZ: dMat3Element = 2;
2745pub const dMat3Element_dM3E__X_AXES_MAX: dMat3Element = 3;
2746pub const dMat3Element_dM3E_XPAD: dMat3Element = 3;
2747pub const dMat3Element_dM3E__X_MAX: dMat3Element = 4;
2748pub const dMat3Element_dM3E__Y_MIN: dMat3Element = 4;
2749pub const dMat3Element_dM3E__Y_AXES_MIN: dMat3Element = 4;
2750pub const dMat3Element_dM3E_YX: dMat3Element = 4;
2751pub const dMat3Element_dM3E_YY: dMat3Element = 5;
2752pub const dMat3Element_dM3E_YZ: dMat3Element = 6;
2753pub const dMat3Element_dM3E__Y_AXES_MAX: dMat3Element = 7;
2754pub const dMat3Element_dM3E_YPAD: dMat3Element = 7;
2755pub const dMat3Element_dM3E__Y_MAX: dMat3Element = 8;
2756pub const dMat3Element_dM3E__Z_MIN: dMat3Element = 8;
2757pub const dMat3Element_dM3E__Z_AXES_MIN: dMat3Element = 8;
2758pub const dMat3Element_dM3E_ZX: dMat3Element = 8;
2759pub const dMat3Element_dM3E_ZY: dMat3Element = 9;
2760pub const dMat3Element_dM3E_ZZ: dMat3Element = 10;
2761pub const dMat3Element_dM3E__Z_AXES_MAX: dMat3Element = 11;
2762pub const dMat3Element_dM3E_ZPAD: dMat3Element = 11;
2763pub const dMat3Element_dM3E__Z_MAX: dMat3Element = 12;
2764pub const dMat3Element_dM3E__MAX: dMat3Element = 12;
2765pub type dMat3Element = ::std::os::raw::c_int;
2766pub const dMat4Element_dM4E__MIN: dMat4Element = 0;
2767pub const dMat4Element_dM4E__X_MIN: dMat4Element = 0;
2768pub const dMat4Element_dM4E_XX: dMat4Element = 0;
2769pub const dMat4Element_dM4E_XY: dMat4Element = 1;
2770pub const dMat4Element_dM4E_XZ: dMat4Element = 2;
2771pub const dMat4Element_dM4E_XO: dMat4Element = 3;
2772pub const dMat4Element_dM4E__X_MAX: dMat4Element = 4;
2773pub const dMat4Element_dM4E__Y_MIN: dMat4Element = 4;
2774pub const dMat4Element_dM4E_YX: dMat4Element = 4;
2775pub const dMat4Element_dM4E_YY: dMat4Element = 5;
2776pub const dMat4Element_dM4E_YZ: dMat4Element = 6;
2777pub const dMat4Element_dM4E_YO: dMat4Element = 7;
2778pub const dMat4Element_dM4E__Y_MAX: dMat4Element = 8;
2779pub const dMat4Element_dM4E__Z_MIN: dMat4Element = 8;
2780pub const dMat4Element_dM4E_ZX: dMat4Element = 8;
2781pub const dMat4Element_dM4E_ZY: dMat4Element = 9;
2782pub const dMat4Element_dM4E_ZZ: dMat4Element = 10;
2783pub const dMat4Element_dM4E_ZO: dMat4Element = 11;
2784pub const dMat4Element_dM4E__Z_MAX: dMat4Element = 12;
2785pub const dMat4Element_dM4E__O_MIN: dMat4Element = 12;
2786pub const dMat4Element_dM4E_OX: dMat4Element = 12;
2787pub const dMat4Element_dM4E_OY: dMat4Element = 13;
2788pub const dMat4Element_dM4E_OZ: dMat4Element = 14;
2789pub const dMat4Element_dM4E_OO: dMat4Element = 15;
2790pub const dMat4Element_dM4E__O_MAX: dMat4Element = 16;
2791pub const dMat4Element_dM4E__MAX: dMat4Element = 16;
2792pub type dMat4Element = ::std::os::raw::c_int;
2793pub const dQuatElement_dQUE__MIN: dQuatElement = 0;
2794pub const dQuatElement_dQUE_R: dQuatElement = 0;
2795pub const dQuatElement_dQUE__AXIS_MIN: dQuatElement = 1;
2796pub const dQuatElement_dQUE_I: dQuatElement = 1;
2797pub const dQuatElement_dQUE_J: dQuatElement = 2;
2798pub const dQuatElement_dQUE_K: dQuatElement = 3;
2799pub const dQuatElement_dQUE__AXIS_MAX: dQuatElement = 4;
2800pub const dQuatElement_dQUE__MAX: dQuatElement = 4;
2801pub type dQuatElement = ::std::os::raw::c_int;
2802pub type dVector3 = [dReal; 4usize];
2803pub type dVector4 = [dReal; 4usize];
2804pub type dMatrix3 = [dReal; 12usize];
2805pub type dMatrix4 = [dReal; 16usize];
2806pub type dMatrix6 = [dReal; 48usize];
2807pub type dQuaternion = [dReal; 4usize];
2808#[repr(C)]
2809#[derive(Debug, Copy, Clone)]
2810pub struct dxWorld {
2811    _unused: [u8; 0],
2812}
2813#[repr(C)]
2814#[derive(Debug, Copy, Clone)]
2815pub struct dxSpace {
2816    _unused: [u8; 0],
2817}
2818#[repr(C)]
2819#[derive(Debug, Copy, Clone)]
2820pub struct dxBody {
2821    _unused: [u8; 0],
2822}
2823#[repr(C)]
2824#[derive(Debug, Copy, Clone)]
2825pub struct dxGeom {
2826    _unused: [u8; 0],
2827}
2828#[repr(C)]
2829#[derive(Debug, Copy, Clone)]
2830pub struct dxJoint {
2831    _unused: [u8; 0],
2832}
2833#[repr(C)]
2834#[derive(Debug, Copy, Clone)]
2835pub struct dxJointGroup {
2836    _unused: [u8; 0],
2837}
2838pub type dWorldID = *mut dxWorld;
2839pub type dSpaceID = *mut dxSpace;
2840pub type dBodyID = *mut dxBody;
2841pub type dGeomID = *mut dxGeom;
2842pub type dJointID = *mut dxJoint;
2843pub type dJointGroupID = *mut dxJointGroup;
2844pub const d_ERR_UNKNOWN: _bindgen_ty_1 = 0;
2845pub const d_ERR_IASSERT: _bindgen_ty_1 = 1;
2846pub const d_ERR_UASSERT: _bindgen_ty_1 = 2;
2847pub const d_ERR_LCP: _bindgen_ty_1 = 3;
2848pub type _bindgen_ty_1 = ::std::os::raw::c_int;
2849pub const dJointType_dJointTypeNone: dJointType = 0;
2850pub const dJointType_dJointTypeBall: dJointType = 1;
2851pub const dJointType_dJointTypeHinge: dJointType = 2;
2852pub const dJointType_dJointTypeSlider: dJointType = 3;
2853pub const dJointType_dJointTypeContact: dJointType = 4;
2854pub const dJointType_dJointTypeUniversal: dJointType = 5;
2855pub const dJointType_dJointTypeHinge2: dJointType = 6;
2856pub const dJointType_dJointTypeFixed: dJointType = 7;
2857pub const dJointType_dJointTypeNull: dJointType = 8;
2858pub const dJointType_dJointTypeAMotor: dJointType = 9;
2859pub const dJointType_dJointTypeLMotor: dJointType = 10;
2860pub const dJointType_dJointTypePlane2D: dJointType = 11;
2861pub const dJointType_dJointTypePR: dJointType = 12;
2862pub const dJointType_dJointTypePU: dJointType = 13;
2863pub const dJointType_dJointTypePiston: dJointType = 14;
2864pub const dJointType_dJointTypeDBall: dJointType = 15;
2865pub const dJointType_dJointTypeDHinge: dJointType = 16;
2866pub const dJointType_dJointTypeTransmission: dJointType = 17;
2867pub type dJointType = ::std::os::raw::c_int;
2868pub const dParamLoStop: _bindgen_ty_2 = 0;
2869pub const dParamHiStop: _bindgen_ty_2 = 1;
2870pub const dParamVel: _bindgen_ty_2 = 2;
2871pub const dParamLoVel: _bindgen_ty_2 = 3;
2872pub const dParamHiVel: _bindgen_ty_2 = 4;
2873pub const dParamFMax: _bindgen_ty_2 = 5;
2874pub const dParamFudgeFactor: _bindgen_ty_2 = 6;
2875pub const dParamBounce: _bindgen_ty_2 = 7;
2876pub const dParamCFM: _bindgen_ty_2 = 8;
2877pub const dParamStopERP: _bindgen_ty_2 = 9;
2878pub const dParamStopCFM: _bindgen_ty_2 = 10;
2879pub const dParamSuspensionERP: _bindgen_ty_2 = 11;
2880pub const dParamSuspensionCFM: _bindgen_ty_2 = 12;
2881pub const dParamERP: _bindgen_ty_2 = 13;
2882pub const dParamsInGroup: _bindgen_ty_2 = 14;
2883pub const dParamGroup1: _bindgen_ty_2 = 0;
2884pub const dParamLoStop1: _bindgen_ty_2 = 0;
2885pub const dParamHiStop1: _bindgen_ty_2 = 1;
2886pub const dParamVel1: _bindgen_ty_2 = 2;
2887pub const dParamLoVel1: _bindgen_ty_2 = 3;
2888pub const dParamHiVel1: _bindgen_ty_2 = 4;
2889pub const dParamFMax1: _bindgen_ty_2 = 5;
2890pub const dParamFudgeFactor1: _bindgen_ty_2 = 6;
2891pub const dParamBounce1: _bindgen_ty_2 = 7;
2892pub const dParamCFM1: _bindgen_ty_2 = 8;
2893pub const dParamStopERP1: _bindgen_ty_2 = 9;
2894pub const dParamStopCFM1: _bindgen_ty_2 = 10;
2895pub const dParamSuspensionERP1: _bindgen_ty_2 = 11;
2896pub const dParamSuspensionCFM1: _bindgen_ty_2 = 12;
2897pub const dParamERP1: _bindgen_ty_2 = 13;
2898pub const dParamGroup2: _bindgen_ty_2 = 256;
2899pub const dParamLoStop2: _bindgen_ty_2 = 256;
2900pub const dParamHiStop2: _bindgen_ty_2 = 257;
2901pub const dParamVel2: _bindgen_ty_2 = 258;
2902pub const dParamLoVel2: _bindgen_ty_2 = 259;
2903pub const dParamHiVel2: _bindgen_ty_2 = 260;
2904pub const dParamFMax2: _bindgen_ty_2 = 261;
2905pub const dParamFudgeFactor2: _bindgen_ty_2 = 262;
2906pub const dParamBounce2: _bindgen_ty_2 = 263;
2907pub const dParamCFM2: _bindgen_ty_2 = 264;
2908pub const dParamStopERP2: _bindgen_ty_2 = 265;
2909pub const dParamStopCFM2: _bindgen_ty_2 = 266;
2910pub const dParamSuspensionERP2: _bindgen_ty_2 = 267;
2911pub const dParamSuspensionCFM2: _bindgen_ty_2 = 268;
2912pub const dParamERP2: _bindgen_ty_2 = 269;
2913pub const dParamGroup3: _bindgen_ty_2 = 512;
2914pub const dParamLoStop3: _bindgen_ty_2 = 512;
2915pub const dParamHiStop3: _bindgen_ty_2 = 513;
2916pub const dParamVel3: _bindgen_ty_2 = 514;
2917pub const dParamLoVel3: _bindgen_ty_2 = 515;
2918pub const dParamHiVel3: _bindgen_ty_2 = 516;
2919pub const dParamFMax3: _bindgen_ty_2 = 517;
2920pub const dParamFudgeFactor3: _bindgen_ty_2 = 518;
2921pub const dParamBounce3: _bindgen_ty_2 = 519;
2922pub const dParamCFM3: _bindgen_ty_2 = 520;
2923pub const dParamStopERP3: _bindgen_ty_2 = 521;
2924pub const dParamStopCFM3: _bindgen_ty_2 = 522;
2925pub const dParamSuspensionERP3: _bindgen_ty_2 = 523;
2926pub const dParamSuspensionCFM3: _bindgen_ty_2 = 524;
2927pub const dParamERP3: _bindgen_ty_2 = 525;
2928pub const dParamGroup: _bindgen_ty_2 = 256;
2929pub type _bindgen_ty_2 = ::std::os::raw::c_int;
2930pub const dAMotorUser: _bindgen_ty_3 = 0;
2931pub const dAMotorEuler: _bindgen_ty_3 = 1;
2932pub type _bindgen_ty_3 = ::std::os::raw::c_int;
2933pub const dTransmissionParallelAxes: _bindgen_ty_4 = 0;
2934pub const dTransmissionIntersectingAxes: _bindgen_ty_4 = 1;
2935pub const dTransmissionChainDrive: _bindgen_ty_4 = 2;
2936pub type _bindgen_ty_4 = ::std::os::raw::c_int;
2937#[repr(C)]
2938#[derive(Debug, Copy, Clone)]
2939pub struct dJointFeedback {
2940    pub f1: dVector3,
2941    pub t1: dVector3,
2942    pub f2: dVector3,
2943    pub t2: dVector3,
2944}
2945#[test]
2946fn bindgen_test_layout_dJointFeedback() {
2947    const UNINIT: ::std::mem::MaybeUninit<dJointFeedback> = ::std::mem::MaybeUninit::uninit();
2948    let ptr = UNINIT.as_ptr();
2949    assert_eq!(
2950        ::std::mem::size_of::<dJointFeedback>(),
2951        128usize,
2952        concat!("Size of: ", stringify!(dJointFeedback))
2953    );
2954    assert_eq!(
2955        ::std::mem::align_of::<dJointFeedback>(),
2956        8usize,
2957        concat!("Alignment of ", stringify!(dJointFeedback))
2958    );
2959    assert_eq!(
2960        unsafe { ::std::ptr::addr_of!((*ptr).f1) as usize - ptr as usize },
2961        0usize,
2962        concat!(
2963            "Offset of field: ",
2964            stringify!(dJointFeedback),
2965            "::",
2966            stringify!(f1)
2967        )
2968    );
2969    assert_eq!(
2970        unsafe { ::std::ptr::addr_of!((*ptr).t1) as usize - ptr as usize },
2971        32usize,
2972        concat!(
2973            "Offset of field: ",
2974            stringify!(dJointFeedback),
2975            "::",
2976            stringify!(t1)
2977        )
2978    );
2979    assert_eq!(
2980        unsafe { ::std::ptr::addr_of!((*ptr).f2) as usize - ptr as usize },
2981        64usize,
2982        concat!(
2983            "Offset of field: ",
2984            stringify!(dJointFeedback),
2985            "::",
2986            stringify!(f2)
2987        )
2988    );
2989    assert_eq!(
2990        unsafe { ::std::ptr::addr_of!((*ptr).t2) as usize - ptr as usize },
2991        96usize,
2992        concat!(
2993            "Offset of field: ",
2994            stringify!(dJointFeedback),
2995            "::",
2996            stringify!(t2)
2997        )
2998    );
2999}
3000extern "C" {
3001    pub fn dGeomMoved(arg1: dGeomID);
3002}
3003extern "C" {
3004    pub fn dGeomGetBodyNext(arg1: dGeomID) -> dGeomID;
3005}
3006extern "C" {
3007    pub fn dGetConfiguration() -> *const ::std::os::raw::c_char;
3008}
3009extern "C" {
3010    pub fn dCheckConfiguration(token: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
3011}
3012pub const dInitODEFlags_dInitFlagManualThreadCleanup: dInitODEFlags = 1;
3013pub type dInitODEFlags = ::std::os::raw::c_int;
3014extern "C" {
3015    pub fn dInitODE();
3016}
3017extern "C" {
3018    pub fn dInitODE2(uiInitFlags: ::std::os::raw::c_uint) -> ::std::os::raw::c_int;
3019}
3020pub const dAllocateODEDataFlags_dAllocateFlagBasicData: dAllocateODEDataFlags = 0;
3021pub const dAllocateODEDataFlags_dAllocateFlagCollisionData: dAllocateODEDataFlags = 1;
3022pub const dAllocateODEDataFlags_dAllocateMaskAll: dAllocateODEDataFlags = -1;
3023pub type dAllocateODEDataFlags = ::std::os::raw::c_int;
3024extern "C" {
3025    pub fn dAllocateODEDataForThread(
3026        uiAllocateFlags: ::std::os::raw::c_uint,
3027    ) -> ::std::os::raw::c_int;
3028}
3029extern "C" {
3030    pub fn dCleanupODEAllDataForThread();
3031}
3032extern "C" {
3033    pub fn dCloseODE();
3034}
3035pub const dContactMu2: _bindgen_ty_5 = 1;
3036pub const dContactAxisDep: _bindgen_ty_5 = 1;
3037pub const dContactFDir1: _bindgen_ty_5 = 2;
3038pub const dContactBounce: _bindgen_ty_5 = 4;
3039pub const dContactSoftERP: _bindgen_ty_5 = 8;
3040pub const dContactSoftCFM: _bindgen_ty_5 = 16;
3041pub const dContactMotion1: _bindgen_ty_5 = 32;
3042pub const dContactMotion2: _bindgen_ty_5 = 64;
3043pub const dContactMotionN: _bindgen_ty_5 = 128;
3044pub const dContactSlip1: _bindgen_ty_5 = 256;
3045pub const dContactSlip2: _bindgen_ty_5 = 512;
3046pub const dContactRolling: _bindgen_ty_5 = 1024;
3047pub const dContactApprox0: _bindgen_ty_5 = 0;
3048pub const dContactApprox1_1: _bindgen_ty_5 = 4096;
3049pub const dContactApprox1_2: _bindgen_ty_5 = 8192;
3050pub const dContactApprox1_N: _bindgen_ty_5 = 16384;
3051pub const dContactApprox1: _bindgen_ty_5 = 28672;
3052pub type _bindgen_ty_5 = ::std::os::raw::c_int;
3053#[repr(C)]
3054#[derive(Debug, Copy, Clone)]
3055pub struct dSurfaceParameters {
3056    pub mode: ::std::os::raw::c_int,
3057    pub mu: dReal,
3058    pub mu2: dReal,
3059    pub rho: dReal,
3060    pub rho2: dReal,
3061    pub rhoN: dReal,
3062    pub bounce: dReal,
3063    pub bounce_vel: dReal,
3064    pub soft_erp: dReal,
3065    pub soft_cfm: dReal,
3066    pub motion1: dReal,
3067    pub motion2: dReal,
3068    pub motionN: dReal,
3069    pub slip1: dReal,
3070    pub slip2: dReal,
3071}
3072#[test]
3073fn bindgen_test_layout_dSurfaceParameters() {
3074    const UNINIT: ::std::mem::MaybeUninit<dSurfaceParameters> = ::std::mem::MaybeUninit::uninit();
3075    let ptr = UNINIT.as_ptr();
3076    assert_eq!(
3077        ::std::mem::size_of::<dSurfaceParameters>(),
3078        120usize,
3079        concat!("Size of: ", stringify!(dSurfaceParameters))
3080    );
3081    assert_eq!(
3082        ::std::mem::align_of::<dSurfaceParameters>(),
3083        8usize,
3084        concat!("Alignment of ", stringify!(dSurfaceParameters))
3085    );
3086    assert_eq!(
3087        unsafe { ::std::ptr::addr_of!((*ptr).mode) as usize - ptr as usize },
3088        0usize,
3089        concat!(
3090            "Offset of field: ",
3091            stringify!(dSurfaceParameters),
3092            "::",
3093            stringify!(mode)
3094        )
3095    );
3096    assert_eq!(
3097        unsafe { ::std::ptr::addr_of!((*ptr).mu) as usize - ptr as usize },
3098        8usize,
3099        concat!(
3100            "Offset of field: ",
3101            stringify!(dSurfaceParameters),
3102            "::",
3103            stringify!(mu)
3104        )
3105    );
3106    assert_eq!(
3107        unsafe { ::std::ptr::addr_of!((*ptr).mu2) as usize - ptr as usize },
3108        16usize,
3109        concat!(
3110            "Offset of field: ",
3111            stringify!(dSurfaceParameters),
3112            "::",
3113            stringify!(mu2)
3114        )
3115    );
3116    assert_eq!(
3117        unsafe { ::std::ptr::addr_of!((*ptr).rho) as usize - ptr as usize },
3118        24usize,
3119        concat!(
3120            "Offset of field: ",
3121            stringify!(dSurfaceParameters),
3122            "::",
3123            stringify!(rho)
3124        )
3125    );
3126    assert_eq!(
3127        unsafe { ::std::ptr::addr_of!((*ptr).rho2) as usize - ptr as usize },
3128        32usize,
3129        concat!(
3130            "Offset of field: ",
3131            stringify!(dSurfaceParameters),
3132            "::",
3133            stringify!(rho2)
3134        )
3135    );
3136    assert_eq!(
3137        unsafe { ::std::ptr::addr_of!((*ptr).rhoN) as usize - ptr as usize },
3138        40usize,
3139        concat!(
3140            "Offset of field: ",
3141            stringify!(dSurfaceParameters),
3142            "::",
3143            stringify!(rhoN)
3144        )
3145    );
3146    assert_eq!(
3147        unsafe { ::std::ptr::addr_of!((*ptr).bounce) as usize - ptr as usize },
3148        48usize,
3149        concat!(
3150            "Offset of field: ",
3151            stringify!(dSurfaceParameters),
3152            "::",
3153            stringify!(bounce)
3154        )
3155    );
3156    assert_eq!(
3157        unsafe { ::std::ptr::addr_of!((*ptr).bounce_vel) as usize - ptr as usize },
3158        56usize,
3159        concat!(
3160            "Offset of field: ",
3161            stringify!(dSurfaceParameters),
3162            "::",
3163            stringify!(bounce_vel)
3164        )
3165    );
3166    assert_eq!(
3167        unsafe { ::std::ptr::addr_of!((*ptr).soft_erp) as usize - ptr as usize },
3168        64usize,
3169        concat!(
3170            "Offset of field: ",
3171            stringify!(dSurfaceParameters),
3172            "::",
3173            stringify!(soft_erp)
3174        )
3175    );
3176    assert_eq!(
3177        unsafe { ::std::ptr::addr_of!((*ptr).soft_cfm) as usize - ptr as usize },
3178        72usize,
3179        concat!(
3180            "Offset of field: ",
3181            stringify!(dSurfaceParameters),
3182            "::",
3183            stringify!(soft_cfm)
3184        )
3185    );
3186    assert_eq!(
3187        unsafe { ::std::ptr::addr_of!((*ptr).motion1) as usize - ptr as usize },
3188        80usize,
3189        concat!(
3190            "Offset of field: ",
3191            stringify!(dSurfaceParameters),
3192            "::",
3193            stringify!(motion1)
3194        )
3195    );
3196    assert_eq!(
3197        unsafe { ::std::ptr::addr_of!((*ptr).motion2) as usize - ptr as usize },
3198        88usize,
3199        concat!(
3200            "Offset of field: ",
3201            stringify!(dSurfaceParameters),
3202            "::",
3203            stringify!(motion2)
3204        )
3205    );
3206    assert_eq!(
3207        unsafe { ::std::ptr::addr_of!((*ptr).motionN) as usize - ptr as usize },
3208        96usize,
3209        concat!(
3210            "Offset of field: ",
3211            stringify!(dSurfaceParameters),
3212            "::",
3213            stringify!(motionN)
3214        )
3215    );
3216    assert_eq!(
3217        unsafe { ::std::ptr::addr_of!((*ptr).slip1) as usize - ptr as usize },
3218        104usize,
3219        concat!(
3220            "Offset of field: ",
3221            stringify!(dSurfaceParameters),
3222            "::",
3223            stringify!(slip1)
3224        )
3225    );
3226    assert_eq!(
3227        unsafe { ::std::ptr::addr_of!((*ptr).slip2) as usize - ptr as usize },
3228        112usize,
3229        concat!(
3230            "Offset of field: ",
3231            stringify!(dSurfaceParameters),
3232            "::",
3233            stringify!(slip2)
3234        )
3235    );
3236}
3237#[repr(C)]
3238#[derive(Debug, Copy, Clone)]
3239pub struct dContactGeom {
3240    pub pos: dVector3,
3241    pub normal: dVector3,
3242    pub depth: dReal,
3243    pub g1: dGeomID,
3244    pub g2: dGeomID,
3245    pub side1: ::std::os::raw::c_int,
3246    pub side2: ::std::os::raw::c_int,
3247}
3248#[test]
3249fn bindgen_test_layout_dContactGeom() {
3250    const UNINIT: ::std::mem::MaybeUninit<dContactGeom> = ::std::mem::MaybeUninit::uninit();
3251    let ptr = UNINIT.as_ptr();
3252    assert_eq!(
3253        ::std::mem::size_of::<dContactGeom>(),
3254        96usize,
3255        concat!("Size of: ", stringify!(dContactGeom))
3256    );
3257    assert_eq!(
3258        ::std::mem::align_of::<dContactGeom>(),
3259        8usize,
3260        concat!("Alignment of ", stringify!(dContactGeom))
3261    );
3262    assert_eq!(
3263        unsafe { ::std::ptr::addr_of!((*ptr).pos) as usize - ptr as usize },
3264        0usize,
3265        concat!(
3266            "Offset of field: ",
3267            stringify!(dContactGeom),
3268            "::",
3269            stringify!(pos)
3270        )
3271    );
3272    assert_eq!(
3273        unsafe { ::std::ptr::addr_of!((*ptr).normal) as usize - ptr as usize },
3274        32usize,
3275        concat!(
3276            "Offset of field: ",
3277            stringify!(dContactGeom),
3278            "::",
3279            stringify!(normal)
3280        )
3281    );
3282    assert_eq!(
3283        unsafe { ::std::ptr::addr_of!((*ptr).depth) as usize - ptr as usize },
3284        64usize,
3285        concat!(
3286            "Offset of field: ",
3287            stringify!(dContactGeom),
3288            "::",
3289            stringify!(depth)
3290        )
3291    );
3292    assert_eq!(
3293        unsafe { ::std::ptr::addr_of!((*ptr).g1) as usize - ptr as usize },
3294        72usize,
3295        concat!(
3296            "Offset of field: ",
3297            stringify!(dContactGeom),
3298            "::",
3299            stringify!(g1)
3300        )
3301    );
3302    assert_eq!(
3303        unsafe { ::std::ptr::addr_of!((*ptr).g2) as usize - ptr as usize },
3304        80usize,
3305        concat!(
3306            "Offset of field: ",
3307            stringify!(dContactGeom),
3308            "::",
3309            stringify!(g2)
3310        )
3311    );
3312    assert_eq!(
3313        unsafe { ::std::ptr::addr_of!((*ptr).side1) as usize - ptr as usize },
3314        88usize,
3315        concat!(
3316            "Offset of field: ",
3317            stringify!(dContactGeom),
3318            "::",
3319            stringify!(side1)
3320        )
3321    );
3322    assert_eq!(
3323        unsafe { ::std::ptr::addr_of!((*ptr).side2) as usize - ptr as usize },
3324        92usize,
3325        concat!(
3326            "Offset of field: ",
3327            stringify!(dContactGeom),
3328            "::",
3329            stringify!(side2)
3330        )
3331    );
3332}
3333#[repr(C)]
3334#[derive(Debug, Copy, Clone)]
3335pub struct dContact {
3336    pub surface: dSurfaceParameters,
3337    pub geom: dContactGeom,
3338    pub fdir1: dVector3,
3339}
3340#[test]
3341fn bindgen_test_layout_dContact() {
3342    const UNINIT: ::std::mem::MaybeUninit<dContact> = ::std::mem::MaybeUninit::uninit();
3343    let ptr = UNINIT.as_ptr();
3344    assert_eq!(
3345        ::std::mem::size_of::<dContact>(),
3346        248usize,
3347        concat!("Size of: ", stringify!(dContact))
3348    );
3349    assert_eq!(
3350        ::std::mem::align_of::<dContact>(),
3351        8usize,
3352        concat!("Alignment of ", stringify!(dContact))
3353    );
3354    assert_eq!(
3355        unsafe { ::std::ptr::addr_of!((*ptr).surface) as usize - ptr as usize },
3356        0usize,
3357        concat!(
3358            "Offset of field: ",
3359            stringify!(dContact),
3360            "::",
3361            stringify!(surface)
3362        )
3363    );
3364    assert_eq!(
3365        unsafe { ::std::ptr::addr_of!((*ptr).geom) as usize - ptr as usize },
3366        120usize,
3367        concat!(
3368            "Offset of field: ",
3369            stringify!(dContact),
3370            "::",
3371            stringify!(geom)
3372        )
3373    );
3374    assert_eq!(
3375        unsafe { ::std::ptr::addr_of!((*ptr).fdir1) as usize - ptr as usize },
3376        216usize,
3377        concat!(
3378            "Offset of field: ",
3379            stringify!(dContact),
3380            "::",
3381            stringify!(fdir1)
3382        )
3383    );
3384}
3385pub type dAllocFunction =
3386    ::std::option::Option<unsafe extern "C" fn(size: dsizeint) -> *mut ::std::os::raw::c_void>;
3387pub type dReallocFunction = ::std::option::Option<
3388    unsafe extern "C" fn(
3389        ptr: *mut ::std::os::raw::c_void,
3390        oldsize: dsizeint,
3391        newsize: dsizeint,
3392    ) -> *mut ::std::os::raw::c_void,
3393>;
3394pub type dFreeFunction =
3395    ::std::option::Option<unsafe extern "C" fn(ptr: *mut ::std::os::raw::c_void, size: dsizeint)>;
3396extern "C" {
3397    pub fn dSetAllocHandler(fn_: dAllocFunction);
3398}
3399extern "C" {
3400    pub fn dSetReallocHandler(fn_: dReallocFunction);
3401}
3402extern "C" {
3403    pub fn dSetFreeHandler(fn_: dFreeFunction);
3404}
3405extern "C" {
3406    pub fn dGetAllocHandler() -> dAllocFunction;
3407}
3408extern "C" {
3409    pub fn dGetReallocHandler() -> dReallocFunction;
3410}
3411extern "C" {
3412    pub fn dGetFreeHandler() -> dFreeFunction;
3413}
3414extern "C" {
3415    pub fn dAlloc(size: dsizeint) -> *mut ::std::os::raw::c_void;
3416}
3417extern "C" {
3418    pub fn dRealloc(
3419        ptr: *mut ::std::os::raw::c_void,
3420        oldsize: dsizeint,
3421        newsize: dsizeint,
3422    ) -> *mut ::std::os::raw::c_void;
3423}
3424extern "C" {
3425    pub fn dFree(ptr: *mut ::std::os::raw::c_void, size: dsizeint);
3426}
3427extern "C" {
3428    pub fn dSafeNormalize3(a: *mut dReal) -> ::std::os::raw::c_int;
3429}
3430extern "C" {
3431    pub fn dSafeNormalize4(a: *mut dReal) -> ::std::os::raw::c_int;
3432}
3433extern "C" {
3434    pub fn dNormalize3(a: *mut dReal);
3435}
3436extern "C" {
3437    pub fn dNormalize4(a: *mut dReal);
3438}
3439extern "C" {
3440    pub fn dPlaneSpace(n: *mut dReal, p: *mut dReal, q: *mut dReal);
3441}
3442extern "C" {
3443    pub fn dOrthogonalizeR(m: *mut dReal) -> ::std::os::raw::c_int;
3444}
3445extern "C" {
3446    pub fn dSetZero(a: *mut dReal, n: ::std::os::raw::c_int);
3447}
3448extern "C" {
3449    pub fn dSetValue(a: *mut dReal, n: ::std::os::raw::c_int, value: dReal);
3450}
3451extern "C" {
3452    pub fn dDot(a: *const dReal, b: *const dReal, n: ::std::os::raw::c_int) -> dReal;
3453}
3454extern "C" {
3455    pub fn dMultiply0(
3456        A: *mut dReal,
3457        B: *const dReal,
3458        C: *const dReal,
3459        p: ::std::os::raw::c_int,
3460        q: ::std::os::raw::c_int,
3461        r: ::std::os::raw::c_int,
3462    );
3463}
3464extern "C" {
3465    pub fn dMultiply1(
3466        A: *mut dReal,
3467        B: *const dReal,
3468        C: *const dReal,
3469        p: ::std::os::raw::c_int,
3470        q: ::std::os::raw::c_int,
3471        r: ::std::os::raw::c_int,
3472    );
3473}
3474extern "C" {
3475    pub fn dMultiply2(
3476        A: *mut dReal,
3477        B: *const dReal,
3478        C: *const dReal,
3479        p: ::std::os::raw::c_int,
3480        q: ::std::os::raw::c_int,
3481        r: ::std::os::raw::c_int,
3482    );
3483}
3484extern "C" {
3485    pub fn dFactorCholesky(A: *mut dReal, n: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
3486}
3487extern "C" {
3488    pub fn dSolveCholesky(L: *const dReal, b: *mut dReal, n: ::std::os::raw::c_int);
3489}
3490extern "C" {
3491    pub fn dInvertPDMatrix(
3492        A: *const dReal,
3493        Ainv: *mut dReal,
3494        n: ::std::os::raw::c_int,
3495    ) -> ::std::os::raw::c_int;
3496}
3497extern "C" {
3498    pub fn dIsPositiveDefinite(A: *const dReal, n: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
3499}
3500extern "C" {
3501    pub fn dFactorLDLT(
3502        A: *mut dReal,
3503        d: *mut dReal,
3504        n: ::std::os::raw::c_int,
3505        nskip: ::std::os::raw::c_int,
3506    );
3507}
3508extern "C" {
3509    pub fn dSolveL1(
3510        L: *const dReal,
3511        b: *mut dReal,
3512        n: ::std::os::raw::c_int,
3513        nskip: ::std::os::raw::c_int,
3514    );
3515}
3516extern "C" {
3517    pub fn dSolveL1T(
3518        L: *const dReal,
3519        b: *mut dReal,
3520        n: ::std::os::raw::c_int,
3521        nskip: ::std::os::raw::c_int,
3522    );
3523}
3524extern "C" {
3525    pub fn dScaleVector(a: *mut dReal, d: *const dReal, n: ::std::os::raw::c_int);
3526}
3527extern "C" {
3528    pub fn dVectorScale(a: *mut dReal, d: *const dReal, n: ::std::os::raw::c_int);
3529}
3530extern "C" {
3531    pub fn dSolveLDLT(
3532        L: *const dReal,
3533        d: *const dReal,
3534        b: *mut dReal,
3535        n: ::std::os::raw::c_int,
3536        nskip: ::std::os::raw::c_int,
3537    );
3538}
3539extern "C" {
3540    pub fn dLDLTAddTL(
3541        L: *mut dReal,
3542        d: *mut dReal,
3543        a: *const dReal,
3544        n: ::std::os::raw::c_int,
3545        nskip: ::std::os::raw::c_int,
3546    );
3547}
3548extern "C" {
3549    pub fn dLDLTRemove(
3550        A: *mut *mut dReal,
3551        p: *const ::std::os::raw::c_int,
3552        L: *mut dReal,
3553        d: *mut dReal,
3554        n1: ::std::os::raw::c_int,
3555        n2: ::std::os::raw::c_int,
3556        r: ::std::os::raw::c_int,
3557        nskip: ::std::os::raw::c_int,
3558    );
3559}
3560extern "C" {
3561    pub fn dRemoveRowCol(
3562        A: *mut dReal,
3563        n: ::std::os::raw::c_int,
3564        nskip: ::std::os::raw::c_int,
3565        r: ::std::os::raw::c_int,
3566    );
3567}
3568#[repr(C)]
3569#[derive(Debug, Copy, Clone)]
3570pub struct dxThreadingImplementation {
3571    _unused: [u8; 0],
3572}
3573pub type dThreadingImplementationID = *mut dxThreadingImplementation;
3574pub type dmutexindex_t = ::std::os::raw::c_uint;
3575#[repr(C)]
3576#[derive(Debug, Copy, Clone)]
3577pub struct dxMutexGroup {
3578    _unused: [u8; 0],
3579}
3580pub type dMutexGroupID = *mut dxMutexGroup;
3581pub type dMutexGroupAllocFunction = ::std::option::Option<
3582    unsafe extern "C" fn(
3583        impl_: dThreadingImplementationID,
3584        Mutex_count: dmutexindex_t,
3585        Mutex_names_ptr: *const *const ::std::os::raw::c_char,
3586    ) -> dMutexGroupID,
3587>;
3588pub type dMutexGroupFreeFunction = ::std::option::Option<
3589    unsafe extern "C" fn(impl_: dThreadingImplementationID, mutex_group: dMutexGroupID),
3590>;
3591pub type dMutexGroupMutexLockFunction = ::std::option::Option<
3592    unsafe extern "C" fn(
3593        impl_: dThreadingImplementationID,
3594        mutex_group: dMutexGroupID,
3595        mutex_index: dmutexindex_t,
3596    ),
3597>;
3598pub type dMutexGroupMutexUnlockFunction = ::std::option::Option<
3599    unsafe extern "C" fn(
3600        impl_: dThreadingImplementationID,
3601        mutex_group: dMutexGroupID,
3602        mutex_index: dmutexindex_t,
3603    ),
3604>;
3605#[repr(C)]
3606#[derive(Debug, Copy, Clone)]
3607pub struct dxCallReleasee {
3608    _unused: [u8; 0],
3609}
3610pub type dCallReleaseeID = *mut dxCallReleasee;
3611#[repr(C)]
3612#[derive(Debug, Copy, Clone)]
3613pub struct dxCallWait {
3614    _unused: [u8; 0],
3615}
3616pub type dCallWaitID = *mut dxCallWait;
3617pub type ddependencycount_t = dsizeint;
3618pub type ddependencychange_t = ddiffint;
3619pub type dcallindex_t = dsizeint;
3620pub type dThreadedCallFunction = ::std::option::Option<
3621    unsafe extern "C" fn(
3622        call_context: *mut ::std::os::raw::c_void,
3623        instance_index: dcallindex_t,
3624        this_releasee: dCallReleaseeID,
3625    ) -> ::std::os::raw::c_int,
3626>;
3627#[repr(C)]
3628#[derive(Debug, Copy, Clone)]
3629pub struct dxThreadedWaitTime {
3630    pub wait_sec: time_t,
3631    pub wait_nsec: ::std::os::raw::c_ulong,
3632}
3633#[test]
3634fn bindgen_test_layout_dxThreadedWaitTime() {
3635    const UNINIT: ::std::mem::MaybeUninit<dxThreadedWaitTime> = ::std::mem::MaybeUninit::uninit();
3636    let ptr = UNINIT.as_ptr();
3637    assert_eq!(
3638        ::std::mem::size_of::<dxThreadedWaitTime>(),
3639        16usize,
3640        concat!("Size of: ", stringify!(dxThreadedWaitTime))
3641    );
3642    assert_eq!(
3643        ::std::mem::align_of::<dxThreadedWaitTime>(),
3644        8usize,
3645        concat!("Alignment of ", stringify!(dxThreadedWaitTime))
3646    );
3647    assert_eq!(
3648        unsafe { ::std::ptr::addr_of!((*ptr).wait_sec) as usize - ptr as usize },
3649        0usize,
3650        concat!(
3651            "Offset of field: ",
3652            stringify!(dxThreadedWaitTime),
3653            "::",
3654            stringify!(wait_sec)
3655        )
3656    );
3657    assert_eq!(
3658        unsafe { ::std::ptr::addr_of!((*ptr).wait_nsec) as usize - ptr as usize },
3659        8usize,
3660        concat!(
3661            "Offset of field: ",
3662            stringify!(dxThreadedWaitTime),
3663            "::",
3664            stringify!(wait_nsec)
3665        )
3666    );
3667}
3668pub type dThreadedWaitTime = dxThreadedWaitTime;
3669pub type dThreadedCallWaitAllocFunction =
3670    ::std::option::Option<unsafe extern "C" fn(impl_: dThreadingImplementationID) -> dCallWaitID>;
3671pub type dThreadedCallWaitResetFunction = ::std::option::Option<
3672    unsafe extern "C" fn(impl_: dThreadingImplementationID, call_wait: dCallWaitID),
3673>;
3674pub type dThreadedCallWaitFreeFunction = ::std::option::Option<
3675    unsafe extern "C" fn(impl_: dThreadingImplementationID, call_wait: dCallWaitID),
3676>;
3677pub type dThreadedCallPostFunction = ::std::option::Option<
3678    unsafe extern "C" fn(
3679        impl_: dThreadingImplementationID,
3680        out_summary_fault: *mut ::std::os::raw::c_int,
3681        out_post_releasee: *mut dCallReleaseeID,
3682        dependencies_count: ddependencycount_t,
3683        dependent_releasee: dCallReleaseeID,
3684        call_wait: dCallWaitID,
3685        call_func: dThreadedCallFunction,
3686        call_context: *mut ::std::os::raw::c_void,
3687        instance_index: dcallindex_t,
3688        call_name: *const ::std::os::raw::c_char,
3689    ),
3690>;
3691pub type dThreadedCallDependenciesCountAlterFunction = ::std::option::Option<
3692    unsafe extern "C" fn(
3693        impl_: dThreadingImplementationID,
3694        target_releasee: dCallReleaseeID,
3695        dependencies_count_change: ddependencychange_t,
3696    ),
3697>;
3698pub type dThreadedCallWaitFunction = ::std::option::Option<
3699    unsafe extern "C" fn(
3700        impl_: dThreadingImplementationID,
3701        out_wait_status: *mut ::std::os::raw::c_int,
3702        call_wait: dCallWaitID,
3703        timeout_time_ptr: *const dThreadedWaitTime,
3704        wait_name: *const ::std::os::raw::c_char,
3705    ),
3706>;
3707pub type dThreadingImplThreadCountRetrieveFunction = ::std::option::Option<
3708    unsafe extern "C" fn(impl_: dThreadingImplementationID) -> ::std::os::raw::c_uint,
3709>;
3710pub type dThreadingImplResourcesForCallsPreallocateFunction = ::std::option::Option<
3711    unsafe extern "C" fn(
3712        impl_: dThreadingImplementationID,
3713        max_simultaneous_calls_estimate: ddependencycount_t,
3714    ) -> ::std::os::raw::c_int,
3715>;
3716#[repr(C)]
3717#[derive(Debug, Copy, Clone)]
3718pub struct dxThreadingFunctionsInfo {
3719    pub struct_size: ::std::os::raw::c_uint,
3720    pub alloc_mutex_group: dMutexGroupAllocFunction,
3721    pub free_mutex_group: dMutexGroupFreeFunction,
3722    pub lock_group_mutex: dMutexGroupMutexLockFunction,
3723    pub unlock_group_mutex: dMutexGroupMutexUnlockFunction,
3724    pub alloc_call_wait: dThreadedCallWaitAllocFunction,
3725    pub reset_call_wait: dThreadedCallWaitResetFunction,
3726    pub free_call_wait: dThreadedCallWaitFreeFunction,
3727    pub post_call: dThreadedCallPostFunction,
3728    pub alter_call_dependencies_count: dThreadedCallDependenciesCountAlterFunction,
3729    pub wait_call: dThreadedCallWaitFunction,
3730    pub retrieve_thread_count: dThreadingImplThreadCountRetrieveFunction,
3731    pub preallocate_resources_for_calls: dThreadingImplResourcesForCallsPreallocateFunction,
3732}
3733#[test]
3734fn bindgen_test_layout_dxThreadingFunctionsInfo() {
3735    const UNINIT: ::std::mem::MaybeUninit<dxThreadingFunctionsInfo> =
3736        ::std::mem::MaybeUninit::uninit();
3737    let ptr = UNINIT.as_ptr();
3738    assert_eq!(
3739        ::std::mem::size_of::<dxThreadingFunctionsInfo>(),
3740        104usize,
3741        concat!("Size of: ", stringify!(dxThreadingFunctionsInfo))
3742    );
3743    assert_eq!(
3744        ::std::mem::align_of::<dxThreadingFunctionsInfo>(),
3745        8usize,
3746        concat!("Alignment of ", stringify!(dxThreadingFunctionsInfo))
3747    );
3748    assert_eq!(
3749        unsafe { ::std::ptr::addr_of!((*ptr).struct_size) as usize - ptr as usize },
3750        0usize,
3751        concat!(
3752            "Offset of field: ",
3753            stringify!(dxThreadingFunctionsInfo),
3754            "::",
3755            stringify!(struct_size)
3756        )
3757    );
3758    assert_eq!(
3759        unsafe { ::std::ptr::addr_of!((*ptr).alloc_mutex_group) as usize - ptr as usize },
3760        8usize,
3761        concat!(
3762            "Offset of field: ",
3763            stringify!(dxThreadingFunctionsInfo),
3764            "::",
3765            stringify!(alloc_mutex_group)
3766        )
3767    );
3768    assert_eq!(
3769        unsafe { ::std::ptr::addr_of!((*ptr).free_mutex_group) as usize - ptr as usize },
3770        16usize,
3771        concat!(
3772            "Offset of field: ",
3773            stringify!(dxThreadingFunctionsInfo),
3774            "::",
3775            stringify!(free_mutex_group)
3776        )
3777    );
3778    assert_eq!(
3779        unsafe { ::std::ptr::addr_of!((*ptr).lock_group_mutex) as usize - ptr as usize },
3780        24usize,
3781        concat!(
3782            "Offset of field: ",
3783            stringify!(dxThreadingFunctionsInfo),
3784            "::",
3785            stringify!(lock_group_mutex)
3786        )
3787    );
3788    assert_eq!(
3789        unsafe { ::std::ptr::addr_of!((*ptr).unlock_group_mutex) as usize - ptr as usize },
3790        32usize,
3791        concat!(
3792            "Offset of field: ",
3793            stringify!(dxThreadingFunctionsInfo),
3794            "::",
3795            stringify!(unlock_group_mutex)
3796        )
3797    );
3798    assert_eq!(
3799        unsafe { ::std::ptr::addr_of!((*ptr).alloc_call_wait) as usize - ptr as usize },
3800        40usize,
3801        concat!(
3802            "Offset of field: ",
3803            stringify!(dxThreadingFunctionsInfo),
3804            "::",
3805            stringify!(alloc_call_wait)
3806        )
3807    );
3808    assert_eq!(
3809        unsafe { ::std::ptr::addr_of!((*ptr).reset_call_wait) as usize - ptr as usize },
3810        48usize,
3811        concat!(
3812            "Offset of field: ",
3813            stringify!(dxThreadingFunctionsInfo),
3814            "::",
3815            stringify!(reset_call_wait)
3816        )
3817    );
3818    assert_eq!(
3819        unsafe { ::std::ptr::addr_of!((*ptr).free_call_wait) as usize - ptr as usize },
3820        56usize,
3821        concat!(
3822            "Offset of field: ",
3823            stringify!(dxThreadingFunctionsInfo),
3824            "::",
3825            stringify!(free_call_wait)
3826        )
3827    );
3828    assert_eq!(
3829        unsafe { ::std::ptr::addr_of!((*ptr).post_call) as usize - ptr as usize },
3830        64usize,
3831        concat!(
3832            "Offset of field: ",
3833            stringify!(dxThreadingFunctionsInfo),
3834            "::",
3835            stringify!(post_call)
3836        )
3837    );
3838    assert_eq!(
3839        unsafe {
3840            ::std::ptr::addr_of!((*ptr).alter_call_dependencies_count) as usize - ptr as usize
3841        },
3842        72usize,
3843        concat!(
3844            "Offset of field: ",
3845            stringify!(dxThreadingFunctionsInfo),
3846            "::",
3847            stringify!(alter_call_dependencies_count)
3848        )
3849    );
3850    assert_eq!(
3851        unsafe { ::std::ptr::addr_of!((*ptr).wait_call) as usize - ptr as usize },
3852        80usize,
3853        concat!(
3854            "Offset of field: ",
3855            stringify!(dxThreadingFunctionsInfo),
3856            "::",
3857            stringify!(wait_call)
3858        )
3859    );
3860    assert_eq!(
3861        unsafe { ::std::ptr::addr_of!((*ptr).retrieve_thread_count) as usize - ptr as usize },
3862        88usize,
3863        concat!(
3864            "Offset of field: ",
3865            stringify!(dxThreadingFunctionsInfo),
3866            "::",
3867            stringify!(retrieve_thread_count)
3868        )
3869    );
3870    assert_eq!(
3871        unsafe {
3872            ::std::ptr::addr_of!((*ptr).preallocate_resources_for_calls) as usize - ptr as usize
3873        },
3874        96usize,
3875        concat!(
3876            "Offset of field: ",
3877            stringify!(dxThreadingFunctionsInfo),
3878            "::",
3879            stringify!(preallocate_resources_for_calls)
3880        )
3881    );
3882}
3883pub type dThreadingFunctionsInfo = dxThreadingFunctionsInfo;
3884#[repr(C)]
3885#[derive(Debug, Copy, Clone)]
3886pub struct dxCooperative {
3887    _unused: [u8; 0],
3888}
3889#[repr(C)]
3890#[derive(Debug, Copy, Clone)]
3891pub struct dxResourceRequirements {
3892    _unused: [u8; 0],
3893}
3894#[repr(C)]
3895#[derive(Debug, Copy, Clone)]
3896pub struct dxResourceContainer {
3897    _unused: [u8; 0],
3898}
3899pub type dCooperativeID = *mut dxCooperative;
3900pub type dResourceRequirementsID = *mut dxResourceRequirements;
3901pub type dResourceContainerID = *mut dxResourceContainer;
3902extern "C" {
3903    pub fn dCooperativeCreate(
3904        functionInfo: *const dThreadingFunctionsInfo,
3905        threadingImpl: dThreadingImplementationID,
3906    ) -> dCooperativeID;
3907}
3908extern "C" {
3909    pub fn dCooperativeDestroy(cooperative: dCooperativeID);
3910}
3911extern "C" {
3912    pub fn dResourceRequirementsCreate(cooperative: dCooperativeID) -> dResourceRequirementsID;
3913}
3914extern "C" {
3915    pub fn dResourceRequirementsDestroy(requirements: dResourceRequirementsID);
3916}
3917extern "C" {
3918    pub fn dResourceRequirementsClone(
3919        requirements: dResourceRequirementsID,
3920    ) -> dResourceRequirementsID;
3921}
3922extern "C" {
3923    pub fn dResourceRequirementsMergeIn(
3924        summaryRequirements: dResourceRequirementsID,
3925        extraRequirements: dResourceRequirementsID,
3926    );
3927}
3928extern "C" {
3929    pub fn dResourceContainerAcquire(requirements: dResourceRequirementsID)
3930        -> dResourceContainerID;
3931}
3932extern "C" {
3933    pub fn dResourceContainerDestroy(resources: dResourceContainerID);
3934}
3935extern "C" {
3936    pub fn dEstimateCooperativelyFactorLDLTResourceRequirements(
3937        requirements: dResourceRequirementsID,
3938        maximalAllowedThreadCount: ::std::os::raw::c_uint,
3939        maximalRowCount: ::std::os::raw::c_uint,
3940    );
3941}
3942extern "C" {
3943    pub fn dCooperativelyFactorLDLT(
3944        resources: dResourceContainerID,
3945        allowedThreadCount: ::std::os::raw::c_uint,
3946        A: *mut dReal,
3947        d: *mut dReal,
3948        rowCount: ::std::os::raw::c_uint,
3949        rowSkip: ::std::os::raw::c_uint,
3950    );
3951}
3952extern "C" {
3953    pub fn dEstimateCooperativelySolveLDLTResourceRequirements(
3954        requirements: dResourceRequirementsID,
3955        maximalAllowedThreadCount: ::std::os::raw::c_uint,
3956        maximalRowCount: ::std::os::raw::c_uint,
3957    );
3958}
3959extern "C" {
3960    pub fn dCooperativelySolveLDLT(
3961        resources: dResourceContainerID,
3962        allowedThreadCount: ::std::os::raw::c_uint,
3963        L: *const dReal,
3964        d: *const dReal,
3965        b: *mut dReal,
3966        rowCount: ::std::os::raw::c_uint,
3967        rowSkip: ::std::os::raw::c_uint,
3968    );
3969}
3970extern "C" {
3971    pub fn dEstimateCooperativelySolveL1StraightResourceRequirements(
3972        requirements: dResourceRequirementsID,
3973        maximalAllowedThreadCount: ::std::os::raw::c_uint,
3974        maximalRowCount: ::std::os::raw::c_uint,
3975    );
3976}
3977extern "C" {
3978    pub fn dCooperativelySolveL1Straight(
3979        resources: dResourceContainerID,
3980        allowedThreadCount: ::std::os::raw::c_uint,
3981        L: *const dReal,
3982        b: *mut dReal,
3983        rowCount: ::std::os::raw::c_uint,
3984        rowSkip: ::std::os::raw::c_uint,
3985    );
3986}
3987extern "C" {
3988    pub fn dEstimateCooperativelySolveL1TransposedResourceRequirements(
3989        requirements: dResourceRequirementsID,
3990        maximalAllowedThreadCount: ::std::os::raw::c_uint,
3991        maximalRowCount: ::std::os::raw::c_uint,
3992    );
3993}
3994extern "C" {
3995    pub fn dCooperativelySolveL1Transposed(
3996        resources: dResourceContainerID,
3997        allowedThreadCount: ::std::os::raw::c_uint,
3998        L: *const dReal,
3999        b: *mut dReal,
4000        rowCount: ::std::os::raw::c_uint,
4001        rowSkip: ::std::os::raw::c_uint,
4002    );
4003}
4004extern "C" {
4005    pub fn dEstimateCooperativelyScaleVectorResourceRequirements(
4006        requirements: dResourceRequirementsID,
4007        maximalAllowedThreadCount: ::std::os::raw::c_uint,
4008        maximalElementCount: ::std::os::raw::c_uint,
4009    );
4010}
4011extern "C" {
4012    pub fn dCooperativelyScaleVector(
4013        resources: dResourceContainerID,
4014        allowedThreadCount: ::std::os::raw::c_uint,
4015        dataVector: *mut dReal,
4016        scaleVector: *const dReal,
4017        elementCount: ::std::os::raw::c_uint,
4018    );
4019}
4020#[repr(C)]
4021#[derive(Debug, Copy, Clone)]
4022pub struct dStopwatch {
4023    pub time: f64,
4024    pub cc: [::std::os::raw::c_ulong; 2usize],
4025}
4026#[test]
4027fn bindgen_test_layout_dStopwatch() {
4028    const UNINIT: ::std::mem::MaybeUninit<dStopwatch> = ::std::mem::MaybeUninit::uninit();
4029    let ptr = UNINIT.as_ptr();
4030    assert_eq!(
4031        ::std::mem::size_of::<dStopwatch>(),
4032        16usize,
4033        concat!("Size of: ", stringify!(dStopwatch))
4034    );
4035    assert_eq!(
4036        ::std::mem::align_of::<dStopwatch>(),
4037        8usize,
4038        concat!("Alignment of ", stringify!(dStopwatch))
4039    );
4040    assert_eq!(
4041        unsafe { ::std::ptr::addr_of!((*ptr).time) as usize - ptr as usize },
4042        0usize,
4043        concat!(
4044            "Offset of field: ",
4045            stringify!(dStopwatch),
4046            "::",
4047            stringify!(time)
4048        )
4049    );
4050    assert_eq!(
4051        unsafe { ::std::ptr::addr_of!((*ptr).cc) as usize - ptr as usize },
4052        8usize,
4053        concat!(
4054            "Offset of field: ",
4055            stringify!(dStopwatch),
4056            "::",
4057            stringify!(cc)
4058        )
4059    );
4060}
4061extern "C" {
4062    pub fn dStopwatchReset(arg1: *mut dStopwatch);
4063}
4064extern "C" {
4065    pub fn dStopwatchStart(arg1: *mut dStopwatch);
4066}
4067extern "C" {
4068    pub fn dStopwatchStop(arg1: *mut dStopwatch);
4069}
4070extern "C" {
4071    pub fn dStopwatchTime(arg1: *mut dStopwatch) -> f64;
4072}
4073extern "C" {
4074    pub fn dTimerStart(description: *const ::std::os::raw::c_char);
4075}
4076extern "C" {
4077    pub fn dTimerNow(description: *const ::std::os::raw::c_char);
4078}
4079extern "C" {
4080    pub fn dTimerEnd();
4081}
4082extern "C" {
4083    pub fn dTimerReport(fout: *mut FILE, average: ::std::os::raw::c_int);
4084}
4085extern "C" {
4086    pub fn dTimerTicksPerSecond() -> f64;
4087}
4088extern "C" {
4089    pub fn dTimerResolution() -> f64;
4090}
4091extern "C" {
4092    pub fn dRSetIdentity(R: *mut dReal);
4093}
4094extern "C" {
4095    pub fn dRFromAxisAndAngle(R: *mut dReal, ax: dReal, ay: dReal, az: dReal, angle: dReal);
4096}
4097extern "C" {
4098    pub fn dRFromEulerAngles(R: *mut dReal, phi: dReal, theta: dReal, psi: dReal);
4099}
4100extern "C" {
4101    pub fn dRFrom2Axes(
4102        R: *mut dReal,
4103        ax: dReal,
4104        ay: dReal,
4105        az: dReal,
4106        bx: dReal,
4107        by: dReal,
4108        bz: dReal,
4109    );
4110}
4111extern "C" {
4112    pub fn dRFromZAxis(R: *mut dReal, ax: dReal, ay: dReal, az: dReal);
4113}
4114extern "C" {
4115    pub fn dQSetIdentity(q: *mut dReal);
4116}
4117extern "C" {
4118    pub fn dQFromAxisAndAngle(q: *mut dReal, ax: dReal, ay: dReal, az: dReal, angle: dReal);
4119}
4120extern "C" {
4121    pub fn dQMultiply0(qa: *mut dReal, qb: *mut dReal, qc: *mut dReal);
4122}
4123extern "C" {
4124    pub fn dQMultiply1(qa: *mut dReal, qb: *mut dReal, qc: *mut dReal);
4125}
4126extern "C" {
4127    pub fn dQMultiply2(qa: *mut dReal, qb: *mut dReal, qc: *mut dReal);
4128}
4129extern "C" {
4130    pub fn dQMultiply3(qa: *mut dReal, qb: *mut dReal, qc: *mut dReal);
4131}
4132extern "C" {
4133    pub fn dRfromQ(R: *mut dReal, q: *mut dReal);
4134}
4135extern "C" {
4136    pub fn dQfromR(q: *mut dReal, R: *mut dReal);
4137}
4138extern "C" {
4139    pub fn dDQfromW(dq: *mut dReal, w: *mut dReal, q: *mut dReal);
4140}
4141extern "C" {
4142    pub fn dMassCheck(m: *const dMass) -> ::std::os::raw::c_int;
4143}
4144extern "C" {
4145    pub fn dMassSetZero(arg1: *mut dMass);
4146}
4147extern "C" {
4148    pub fn dMassSetParameters(
4149        arg1: *mut dMass,
4150        themass: dReal,
4151        cgx: dReal,
4152        cgy: dReal,
4153        cgz: dReal,
4154        I11: dReal,
4155        I22: dReal,
4156        I33: dReal,
4157        I12: dReal,
4158        I13: dReal,
4159        I23: dReal,
4160    );
4161}
4162extern "C" {
4163    pub fn dMassSetSphere(arg1: *mut dMass, density: dReal, radius: dReal);
4164}
4165extern "C" {
4166    pub fn dMassSetSphereTotal(arg1: *mut dMass, total_mass: dReal, radius: dReal);
4167}
4168extern "C" {
4169    pub fn dMassSetCapsule(
4170        arg1: *mut dMass,
4171        density: dReal,
4172        direction: ::std::os::raw::c_int,
4173        radius: dReal,
4174        length: dReal,
4175    );
4176}
4177extern "C" {
4178    pub fn dMassSetCapsuleTotal(
4179        arg1: *mut dMass,
4180        total_mass: dReal,
4181        direction: ::std::os::raw::c_int,
4182        radius: dReal,
4183        length: dReal,
4184    );
4185}
4186extern "C" {
4187    pub fn dMassSetCylinder(
4188        arg1: *mut dMass,
4189        density: dReal,
4190        direction: ::std::os::raw::c_int,
4191        radius: dReal,
4192        length: dReal,
4193    );
4194}
4195extern "C" {
4196    pub fn dMassSetCylinderTotal(
4197        arg1: *mut dMass,
4198        total_mass: dReal,
4199        direction: ::std::os::raw::c_int,
4200        radius: dReal,
4201        length: dReal,
4202    );
4203}
4204extern "C" {
4205    pub fn dMassSetBox(arg1: *mut dMass, density: dReal, lx: dReal, ly: dReal, lz: dReal);
4206}
4207extern "C" {
4208    pub fn dMassSetBoxTotal(arg1: *mut dMass, total_mass: dReal, lx: dReal, ly: dReal, lz: dReal);
4209}
4210extern "C" {
4211    pub fn dMassSetTrimesh(arg1: *mut dMass, density: dReal, g: dGeomID);
4212}
4213extern "C" {
4214    pub fn dMassSetTrimeshTotal(m: *mut dMass, total_mass: dReal, g: dGeomID);
4215}
4216extern "C" {
4217    pub fn dMassAdjust(arg1: *mut dMass, newmass: dReal);
4218}
4219extern "C" {
4220    pub fn dMassTranslate(arg1: *mut dMass, x: dReal, y: dReal, z: dReal);
4221}
4222extern "C" {
4223    pub fn dMassRotate(arg1: *mut dMass, R: *mut dReal);
4224}
4225extern "C" {
4226    pub fn dMassAdd(a: *mut dMass, b: *const dMass);
4227}
4228extern "C" {
4229    pub fn dMassSetCappedCylinder(
4230        a: *mut dMass,
4231        b: dReal,
4232        c: ::std::os::raw::c_int,
4233        d: dReal,
4234        e: dReal,
4235    );
4236}
4237extern "C" {
4238    pub fn dMassSetCappedCylinderTotal(
4239        a: *mut dMass,
4240        b: dReal,
4241        c: ::std::os::raw::c_int,
4242        d: dReal,
4243        e: dReal,
4244    );
4245}
4246#[repr(C)]
4247#[derive(Debug, Copy, Clone)]
4248pub struct dMass {
4249    pub mass: dReal,
4250    pub c: dVector3,
4251    pub I: dMatrix3,
4252}
4253#[test]
4254fn bindgen_test_layout_dMass() {
4255    const UNINIT: ::std::mem::MaybeUninit<dMass> = ::std::mem::MaybeUninit::uninit();
4256    let ptr = UNINIT.as_ptr();
4257    assert_eq!(
4258        ::std::mem::size_of::<dMass>(),
4259        136usize,
4260        concat!("Size of: ", stringify!(dMass))
4261    );
4262    assert_eq!(
4263        ::std::mem::align_of::<dMass>(),
4264        8usize,
4265        concat!("Alignment of ", stringify!(dMass))
4266    );
4267    assert_eq!(
4268        unsafe { ::std::ptr::addr_of!((*ptr).mass) as usize - ptr as usize },
4269        0usize,
4270        concat!(
4271            "Offset of field: ",
4272            stringify!(dMass),
4273            "::",
4274            stringify!(mass)
4275        )
4276    );
4277    assert_eq!(
4278        unsafe { ::std::ptr::addr_of!((*ptr).c) as usize - ptr as usize },
4279        8usize,
4280        concat!("Offset of field: ", stringify!(dMass), "::", stringify!(c))
4281    );
4282    assert_eq!(
4283        unsafe { ::std::ptr::addr_of!((*ptr).I) as usize - ptr as usize },
4284        40usize,
4285        concat!("Offset of field: ", stringify!(dMass), "::", stringify!(I))
4286    );
4287}
4288extern "C" {
4289    pub fn dTestRand() -> ::std::os::raw::c_int;
4290}
4291extern "C" {
4292    pub fn dRand() -> ::std::os::raw::c_ulong;
4293}
4294extern "C" {
4295    pub fn dRandGetSeed() -> ::std::os::raw::c_ulong;
4296}
4297extern "C" {
4298    pub fn dRandSetSeed(s: ::std::os::raw::c_ulong);
4299}
4300extern "C" {
4301    pub fn dRandInt(n: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
4302}
4303extern "C" {
4304    pub fn dRandReal() -> dReal;
4305}
4306extern "C" {
4307    pub fn dPrintMatrix(
4308        A: *const dReal,
4309        n: ::std::os::raw::c_int,
4310        m: ::std::os::raw::c_int,
4311        fmt: *const ::std::os::raw::c_char,
4312        f: *mut FILE,
4313    );
4314}
4315extern "C" {
4316    pub fn dMakeRandomVector(A: *mut dReal, n: ::std::os::raw::c_int, range: dReal);
4317}
4318extern "C" {
4319    pub fn dMakeRandomMatrix(
4320        A: *mut dReal,
4321        n: ::std::os::raw::c_int,
4322        m: ::std::os::raw::c_int,
4323        range: dReal,
4324    );
4325}
4326extern "C" {
4327    pub fn dClearUpperTriangle(A: *mut dReal, n: ::std::os::raw::c_int);
4328}
4329extern "C" {
4330    pub fn dMaxDifference(
4331        A: *const dReal,
4332        B: *const dReal,
4333        n: ::std::os::raw::c_int,
4334        m: ::std::os::raw::c_int,
4335    ) -> dReal;
4336}
4337extern "C" {
4338    pub fn dMaxDifferenceLowerTriangle(
4339        A: *const dReal,
4340        B: *const dReal,
4341        n: ::std::os::raw::c_int,
4342    ) -> dReal;
4343}
4344extern "C" {
4345    pub fn dWorldCreate() -> dWorldID;
4346}
4347extern "C" {
4348    pub fn dWorldDestroy(world: dWorldID);
4349}
4350extern "C" {
4351    pub fn dWorldSetData(world: dWorldID, data: *mut ::std::os::raw::c_void);
4352}
4353extern "C" {
4354    pub fn dWorldGetData(world: dWorldID) -> *mut ::std::os::raw::c_void;
4355}
4356extern "C" {
4357    pub fn dWorldSetGravity(arg1: dWorldID, x: dReal, y: dReal, z: dReal);
4358}
4359extern "C" {
4360    pub fn dWorldGetGravity(arg1: dWorldID, gravity: *mut dReal);
4361}
4362extern "C" {
4363    pub fn dWorldSetERP(arg1: dWorldID, erp: dReal);
4364}
4365extern "C" {
4366    pub fn dWorldGetERP(arg1: dWorldID) -> dReal;
4367}
4368extern "C" {
4369    pub fn dWorldSetCFM(arg1: dWorldID, cfm: dReal);
4370}
4371extern "C" {
4372    pub fn dWorldGetCFM(arg1: dWorldID) -> dReal;
4373}
4374extern "C" {
4375    pub fn dWorldSetStepIslandsProcessingMaxThreadCount(w: dWorldID, count: ::std::os::raw::c_uint);
4376}
4377extern "C" {
4378    pub fn dWorldGetStepIslandsProcessingMaxThreadCount(w: dWorldID) -> ::std::os::raw::c_uint;
4379}
4380extern "C" {
4381    pub fn dWorldUseSharedWorkingMemory(w: dWorldID, from_world: dWorldID)
4382        -> ::std::os::raw::c_int;
4383}
4384extern "C" {
4385    pub fn dWorldCleanupWorkingMemory(w: dWorldID);
4386}
4387#[repr(C)]
4388#[derive(Debug, Copy, Clone)]
4389pub struct dWorldStepReserveInfo {
4390    pub struct_size: ::std::os::raw::c_uint,
4391    pub reserve_factor: f32,
4392    pub reserve_minimum: ::std::os::raw::c_uint,
4393}
4394#[test]
4395fn bindgen_test_layout_dWorldStepReserveInfo() {
4396    const UNINIT: ::std::mem::MaybeUninit<dWorldStepReserveInfo> =
4397        ::std::mem::MaybeUninit::uninit();
4398    let ptr = UNINIT.as_ptr();
4399    assert_eq!(
4400        ::std::mem::size_of::<dWorldStepReserveInfo>(),
4401        12usize,
4402        concat!("Size of: ", stringify!(dWorldStepReserveInfo))
4403    );
4404    assert_eq!(
4405        ::std::mem::align_of::<dWorldStepReserveInfo>(),
4406        4usize,
4407        concat!("Alignment of ", stringify!(dWorldStepReserveInfo))
4408    );
4409    assert_eq!(
4410        unsafe { ::std::ptr::addr_of!((*ptr).struct_size) as usize - ptr as usize },
4411        0usize,
4412        concat!(
4413            "Offset of field: ",
4414            stringify!(dWorldStepReserveInfo),
4415            "::",
4416            stringify!(struct_size)
4417        )
4418    );
4419    assert_eq!(
4420        unsafe { ::std::ptr::addr_of!((*ptr).reserve_factor) as usize - ptr as usize },
4421        4usize,
4422        concat!(
4423            "Offset of field: ",
4424            stringify!(dWorldStepReserveInfo),
4425            "::",
4426            stringify!(reserve_factor)
4427        )
4428    );
4429    assert_eq!(
4430        unsafe { ::std::ptr::addr_of!((*ptr).reserve_minimum) as usize - ptr as usize },
4431        8usize,
4432        concat!(
4433            "Offset of field: ",
4434            stringify!(dWorldStepReserveInfo),
4435            "::",
4436            stringify!(reserve_minimum)
4437        )
4438    );
4439}
4440extern "C" {
4441    pub fn dWorldSetStepMemoryReservationPolicy(
4442        w: dWorldID,
4443        policyinfo: *const dWorldStepReserveInfo,
4444    ) -> ::std::os::raw::c_int;
4445}
4446#[repr(C)]
4447#[derive(Debug, Copy, Clone)]
4448pub struct dWorldStepMemoryFunctionsInfo {
4449    pub struct_size: ::std::os::raw::c_uint,
4450    pub alloc_block: ::std::option::Option<
4451        unsafe extern "C" fn(block_size: dsizeint) -> *mut ::std::os::raw::c_void,
4452    >,
4453    pub shrink_block: ::std::option::Option<
4454        unsafe extern "C" fn(
4455            block_pointer: *mut ::std::os::raw::c_void,
4456            block_current_size: dsizeint,
4457            block_smaller_size: dsizeint,
4458        ) -> *mut ::std::os::raw::c_void,
4459    >,
4460    pub free_block: ::std::option::Option<
4461        unsafe extern "C" fn(
4462            block_pointer: *mut ::std::os::raw::c_void,
4463            block_current_size: dsizeint,
4464        ),
4465    >,
4466}
4467#[test]
4468fn bindgen_test_layout_dWorldStepMemoryFunctionsInfo() {
4469    const UNINIT: ::std::mem::MaybeUninit<dWorldStepMemoryFunctionsInfo> =
4470        ::std::mem::MaybeUninit::uninit();
4471    let ptr = UNINIT.as_ptr();
4472    assert_eq!(
4473        ::std::mem::size_of::<dWorldStepMemoryFunctionsInfo>(),
4474        32usize,
4475        concat!("Size of: ", stringify!(dWorldStepMemoryFunctionsInfo))
4476    );
4477    assert_eq!(
4478        ::std::mem::align_of::<dWorldStepMemoryFunctionsInfo>(),
4479        8usize,
4480        concat!("Alignment of ", stringify!(dWorldStepMemoryFunctionsInfo))
4481    );
4482    assert_eq!(
4483        unsafe { ::std::ptr::addr_of!((*ptr).struct_size) as usize - ptr as usize },
4484        0usize,
4485        concat!(
4486            "Offset of field: ",
4487            stringify!(dWorldStepMemoryFunctionsInfo),
4488            "::",
4489            stringify!(struct_size)
4490        )
4491    );
4492    assert_eq!(
4493        unsafe { ::std::ptr::addr_of!((*ptr).alloc_block) as usize - ptr as usize },
4494        8usize,
4495        concat!(
4496            "Offset of field: ",
4497            stringify!(dWorldStepMemoryFunctionsInfo),
4498            "::",
4499            stringify!(alloc_block)
4500        )
4501    );
4502    assert_eq!(
4503        unsafe { ::std::ptr::addr_of!((*ptr).shrink_block) as usize - ptr as usize },
4504        16usize,
4505        concat!(
4506            "Offset of field: ",
4507            stringify!(dWorldStepMemoryFunctionsInfo),
4508            "::",
4509            stringify!(shrink_block)
4510        )
4511    );
4512    assert_eq!(
4513        unsafe { ::std::ptr::addr_of!((*ptr).free_block) as usize - ptr as usize },
4514        24usize,
4515        concat!(
4516            "Offset of field: ",
4517            stringify!(dWorldStepMemoryFunctionsInfo),
4518            "::",
4519            stringify!(free_block)
4520        )
4521    );
4522}
4523extern "C" {
4524    pub fn dWorldSetStepMemoryManager(
4525        w: dWorldID,
4526        memfuncs: *const dWorldStepMemoryFunctionsInfo,
4527    ) -> ::std::os::raw::c_int;
4528}
4529extern "C" {
4530    pub fn dWorldSetStepThreadingImplementation(
4531        w: dWorldID,
4532        functions_info: *const dThreadingFunctionsInfo,
4533        threading_impl: dThreadingImplementationID,
4534    );
4535}
4536extern "C" {
4537    pub fn dWorldStep(w: dWorldID, stepsize: dReal) -> ::std::os::raw::c_int;
4538}
4539extern "C" {
4540    pub fn dWorldQuickStep(w: dWorldID, stepsize: dReal) -> ::std::os::raw::c_int;
4541}
4542extern "C" {
4543    pub fn dWorldImpulseToForce(
4544        arg1: dWorldID,
4545        stepsize: dReal,
4546        ix: dReal,
4547        iy: dReal,
4548        iz: dReal,
4549        force: *mut dReal,
4550    );
4551}
4552extern "C" {
4553    pub fn dWorldSetQuickStepNumIterations(arg1: dWorldID, num: ::std::os::raw::c_int);
4554}
4555extern "C" {
4556    pub fn dWorldGetQuickStepNumIterations(arg1: dWorldID) -> ::std::os::raw::c_int;
4557}
4558extern "C" {
4559    pub fn dWorldSetQuickStepW(arg1: dWorldID, over_relaxation: dReal);
4560}
4561extern "C" {
4562    pub fn dWorldGetQuickStepW(arg1: dWorldID) -> dReal;
4563}
4564extern "C" {
4565    pub fn dWorldSetContactMaxCorrectingVel(arg1: dWorldID, vel: dReal);
4566}
4567extern "C" {
4568    pub fn dWorldGetContactMaxCorrectingVel(arg1: dWorldID) -> dReal;
4569}
4570extern "C" {
4571    pub fn dWorldSetContactSurfaceLayer(arg1: dWorldID, depth: dReal);
4572}
4573extern "C" {
4574    pub fn dWorldGetContactSurfaceLayer(arg1: dWorldID) -> dReal;
4575}
4576extern "C" {
4577    pub fn dWorldGetAutoDisableLinearThreshold(arg1: dWorldID) -> dReal;
4578}
4579extern "C" {
4580    pub fn dWorldSetAutoDisableLinearThreshold(arg1: dWorldID, linear_average_threshold: dReal);
4581}
4582extern "C" {
4583    pub fn dWorldGetAutoDisableAngularThreshold(arg1: dWorldID) -> dReal;
4584}
4585extern "C" {
4586    pub fn dWorldSetAutoDisableAngularThreshold(arg1: dWorldID, angular_average_threshold: dReal);
4587}
4588extern "C" {
4589    pub fn dWorldGetAutoDisableAverageSamplesCount(arg1: dWorldID) -> ::std::os::raw::c_int;
4590}
4591extern "C" {
4592    pub fn dWorldSetAutoDisableAverageSamplesCount(
4593        arg1: dWorldID,
4594        average_samples_count: ::std::os::raw::c_uint,
4595    );
4596}
4597extern "C" {
4598    pub fn dWorldGetAutoDisableSteps(arg1: dWorldID) -> ::std::os::raw::c_int;
4599}
4600extern "C" {
4601    pub fn dWorldSetAutoDisableSteps(arg1: dWorldID, steps: ::std::os::raw::c_int);
4602}
4603extern "C" {
4604    pub fn dWorldGetAutoDisableTime(arg1: dWorldID) -> dReal;
4605}
4606extern "C" {
4607    pub fn dWorldSetAutoDisableTime(arg1: dWorldID, time: dReal);
4608}
4609extern "C" {
4610    pub fn dWorldGetAutoDisableFlag(arg1: dWorldID) -> ::std::os::raw::c_int;
4611}
4612extern "C" {
4613    pub fn dWorldSetAutoDisableFlag(arg1: dWorldID, do_auto_disable: ::std::os::raw::c_int);
4614}
4615extern "C" {
4616    pub fn dWorldGetLinearDampingThreshold(w: dWorldID) -> dReal;
4617}
4618extern "C" {
4619    pub fn dWorldSetLinearDampingThreshold(w: dWorldID, threshold: dReal);
4620}
4621extern "C" {
4622    pub fn dWorldGetAngularDampingThreshold(w: dWorldID) -> dReal;
4623}
4624extern "C" {
4625    pub fn dWorldSetAngularDampingThreshold(w: dWorldID, threshold: dReal);
4626}
4627extern "C" {
4628    pub fn dWorldGetLinearDamping(w: dWorldID) -> dReal;
4629}
4630extern "C" {
4631    pub fn dWorldSetLinearDamping(w: dWorldID, scale: dReal);
4632}
4633extern "C" {
4634    pub fn dWorldGetAngularDamping(w: dWorldID) -> dReal;
4635}
4636extern "C" {
4637    pub fn dWorldSetAngularDamping(w: dWorldID, scale: dReal);
4638}
4639extern "C" {
4640    pub fn dWorldSetDamping(w: dWorldID, linear_scale: dReal, angular_scale: dReal);
4641}
4642extern "C" {
4643    pub fn dWorldGetMaxAngularSpeed(w: dWorldID) -> dReal;
4644}
4645extern "C" {
4646    pub fn dWorldSetMaxAngularSpeed(w: dWorldID, max_speed: dReal);
4647}
4648extern "C" {
4649    pub fn dBodyGetAutoDisableLinearThreshold(arg1: dBodyID) -> dReal;
4650}
4651extern "C" {
4652    pub fn dBodySetAutoDisableLinearThreshold(arg1: dBodyID, linear_average_threshold: dReal);
4653}
4654extern "C" {
4655    pub fn dBodyGetAutoDisableAngularThreshold(arg1: dBodyID) -> dReal;
4656}
4657extern "C" {
4658    pub fn dBodySetAutoDisableAngularThreshold(arg1: dBodyID, angular_average_threshold: dReal);
4659}
4660extern "C" {
4661    pub fn dBodyGetAutoDisableAverageSamplesCount(arg1: dBodyID) -> ::std::os::raw::c_int;
4662}
4663extern "C" {
4664    pub fn dBodySetAutoDisableAverageSamplesCount(
4665        arg1: dBodyID,
4666        average_samples_count: ::std::os::raw::c_uint,
4667    );
4668}
4669extern "C" {
4670    pub fn dBodyGetAutoDisableSteps(arg1: dBodyID) -> ::std::os::raw::c_int;
4671}
4672extern "C" {
4673    pub fn dBodySetAutoDisableSteps(arg1: dBodyID, steps: ::std::os::raw::c_int);
4674}
4675extern "C" {
4676    pub fn dBodyGetAutoDisableTime(arg1: dBodyID) -> dReal;
4677}
4678extern "C" {
4679    pub fn dBodySetAutoDisableTime(arg1: dBodyID, time: dReal);
4680}
4681extern "C" {
4682    pub fn dBodyGetAutoDisableFlag(arg1: dBodyID) -> ::std::os::raw::c_int;
4683}
4684extern "C" {
4685    pub fn dBodySetAutoDisableFlag(arg1: dBodyID, do_auto_disable: ::std::os::raw::c_int);
4686}
4687extern "C" {
4688    pub fn dBodySetAutoDisableDefaults(arg1: dBodyID);
4689}
4690extern "C" {
4691    pub fn dBodyGetWorld(arg1: dBodyID) -> dWorldID;
4692}
4693extern "C" {
4694    pub fn dBodyCreate(arg1: dWorldID) -> dBodyID;
4695}
4696extern "C" {
4697    pub fn dBodyDestroy(arg1: dBodyID);
4698}
4699extern "C" {
4700    pub fn dBodySetData(arg1: dBodyID, data: *mut ::std::os::raw::c_void);
4701}
4702extern "C" {
4703    pub fn dBodyGetData(arg1: dBodyID) -> *mut ::std::os::raw::c_void;
4704}
4705extern "C" {
4706    pub fn dBodySetPosition(arg1: dBodyID, x: dReal, y: dReal, z: dReal);
4707}
4708extern "C" {
4709    pub fn dBodySetRotation(arg1: dBodyID, R: *mut dReal);
4710}
4711extern "C" {
4712    pub fn dBodySetQuaternion(arg1: dBodyID, q: *mut dReal);
4713}
4714extern "C" {
4715    pub fn dBodySetLinearVel(arg1: dBodyID, x: dReal, y: dReal, z: dReal);
4716}
4717extern "C" {
4718    pub fn dBodySetAngularVel(arg1: dBodyID, x: dReal, y: dReal, z: dReal);
4719}
4720extern "C" {
4721    pub fn dBodyGetPosition(arg1: dBodyID) -> *const dReal;
4722}
4723extern "C" {
4724    pub fn dBodyCopyPosition(body: dBodyID, pos: *mut dReal);
4725}
4726extern "C" {
4727    pub fn dBodyGetRotation(arg1: dBodyID) -> *const dReal;
4728}
4729extern "C" {
4730    pub fn dBodyCopyRotation(arg1: dBodyID, R: *mut dReal);
4731}
4732extern "C" {
4733    pub fn dBodyGetQuaternion(arg1: dBodyID) -> *const dReal;
4734}
4735extern "C" {
4736    pub fn dBodyCopyQuaternion(body: dBodyID, quat: *mut dReal);
4737}
4738extern "C" {
4739    pub fn dBodyGetLinearVel(arg1: dBodyID) -> *const dReal;
4740}
4741extern "C" {
4742    pub fn dBodyGetAngularVel(arg1: dBodyID) -> *const dReal;
4743}
4744extern "C" {
4745    pub fn dBodySetMass(arg1: dBodyID, mass: *const dMass);
4746}
4747extern "C" {
4748    pub fn dBodyGetMass(arg1: dBodyID, mass: *mut dMass);
4749}
4750extern "C" {
4751    pub fn dBodyAddForce(arg1: dBodyID, fx: dReal, fy: dReal, fz: dReal);
4752}
4753extern "C" {
4754    pub fn dBodyAddTorque(arg1: dBodyID, fx: dReal, fy: dReal, fz: dReal);
4755}
4756extern "C" {
4757    pub fn dBodyAddRelForce(arg1: dBodyID, fx: dReal, fy: dReal, fz: dReal);
4758}
4759extern "C" {
4760    pub fn dBodyAddRelTorque(arg1: dBodyID, fx: dReal, fy: dReal, fz: dReal);
4761}
4762extern "C" {
4763    pub fn dBodyAddForceAtPos(
4764        arg1: dBodyID,
4765        fx: dReal,
4766        fy: dReal,
4767        fz: dReal,
4768        px: dReal,
4769        py: dReal,
4770        pz: dReal,
4771    );
4772}
4773extern "C" {
4774    pub fn dBodyAddForceAtRelPos(
4775        arg1: dBodyID,
4776        fx: dReal,
4777        fy: dReal,
4778        fz: dReal,
4779        px: dReal,
4780        py: dReal,
4781        pz: dReal,
4782    );
4783}
4784extern "C" {
4785    pub fn dBodyAddRelForceAtPos(
4786        arg1: dBodyID,
4787        fx: dReal,
4788        fy: dReal,
4789        fz: dReal,
4790        px: dReal,
4791        py: dReal,
4792        pz: dReal,
4793    );
4794}
4795extern "C" {
4796    pub fn dBodyAddRelForceAtRelPos(
4797        arg1: dBodyID,
4798        fx: dReal,
4799        fy: dReal,
4800        fz: dReal,
4801        px: dReal,
4802        py: dReal,
4803        pz: dReal,
4804    );
4805}
4806extern "C" {
4807    pub fn dBodyGetForce(arg1: dBodyID) -> *const dReal;
4808}
4809extern "C" {
4810    pub fn dBodyGetTorque(arg1: dBodyID) -> *const dReal;
4811}
4812extern "C" {
4813    pub fn dBodySetForce(b: dBodyID, x: dReal, y: dReal, z: dReal);
4814}
4815extern "C" {
4816    pub fn dBodySetTorque(b: dBodyID, x: dReal, y: dReal, z: dReal);
4817}
4818extern "C" {
4819    pub fn dBodyGetRelPointPos(arg1: dBodyID, px: dReal, py: dReal, pz: dReal, result: *mut dReal);
4820}
4821extern "C" {
4822    pub fn dBodyGetRelPointVel(arg1: dBodyID, px: dReal, py: dReal, pz: dReal, result: *mut dReal);
4823}
4824extern "C" {
4825    pub fn dBodyGetPointVel(arg1: dBodyID, px: dReal, py: dReal, pz: dReal, result: *mut dReal);
4826}
4827extern "C" {
4828    pub fn dBodyGetPosRelPoint(arg1: dBodyID, px: dReal, py: dReal, pz: dReal, result: *mut dReal);
4829}
4830extern "C" {
4831    pub fn dBodyVectorToWorld(arg1: dBodyID, px: dReal, py: dReal, pz: dReal, result: *mut dReal);
4832}
4833extern "C" {
4834    pub fn dBodyVectorFromWorld(arg1: dBodyID, px: dReal, py: dReal, pz: dReal, result: *mut dReal);
4835}
4836extern "C" {
4837    pub fn dBodySetFiniteRotationMode(arg1: dBodyID, mode: ::std::os::raw::c_int);
4838}
4839extern "C" {
4840    pub fn dBodySetFiniteRotationAxis(arg1: dBodyID, x: dReal, y: dReal, z: dReal);
4841}
4842extern "C" {
4843    pub fn dBodyGetFiniteRotationMode(arg1: dBodyID) -> ::std::os::raw::c_int;
4844}
4845extern "C" {
4846    pub fn dBodyGetFiniteRotationAxis(arg1: dBodyID, result: *mut dReal);
4847}
4848extern "C" {
4849    pub fn dBodyGetNumJoints(b: dBodyID) -> ::std::os::raw::c_int;
4850}
4851extern "C" {
4852    pub fn dBodyGetJoint(arg1: dBodyID, index: ::std::os::raw::c_int) -> dJointID;
4853}
4854extern "C" {
4855    pub fn dBodySetDynamic(arg1: dBodyID);
4856}
4857extern "C" {
4858    pub fn dBodySetKinematic(arg1: dBodyID);
4859}
4860extern "C" {
4861    pub fn dBodyIsKinematic(arg1: dBodyID) -> ::std::os::raw::c_int;
4862}
4863extern "C" {
4864    pub fn dBodyEnable(arg1: dBodyID);
4865}
4866extern "C" {
4867    pub fn dBodyDisable(arg1: dBodyID);
4868}
4869extern "C" {
4870    pub fn dBodyIsEnabled(arg1: dBodyID) -> ::std::os::raw::c_int;
4871}
4872extern "C" {
4873    pub fn dBodySetGravityMode(b: dBodyID, mode: ::std::os::raw::c_int);
4874}
4875extern "C" {
4876    pub fn dBodyGetGravityMode(b: dBodyID) -> ::std::os::raw::c_int;
4877}
4878extern "C" {
4879    pub fn dBodySetMovedCallback(
4880        b: dBodyID,
4881        callback: ::std::option::Option<unsafe extern "C" fn(arg1: dBodyID)>,
4882    );
4883}
4884extern "C" {
4885    pub fn dBodyGetFirstGeom(b: dBodyID) -> dGeomID;
4886}
4887extern "C" {
4888    pub fn dBodyGetNextGeom(g: dGeomID) -> dGeomID;
4889}
4890extern "C" {
4891    pub fn dBodySetDampingDefaults(b: dBodyID);
4892}
4893extern "C" {
4894    pub fn dBodyGetLinearDamping(b: dBodyID) -> dReal;
4895}
4896extern "C" {
4897    pub fn dBodySetLinearDamping(b: dBodyID, scale: dReal);
4898}
4899extern "C" {
4900    pub fn dBodyGetAngularDamping(b: dBodyID) -> dReal;
4901}
4902extern "C" {
4903    pub fn dBodySetAngularDamping(b: dBodyID, scale: dReal);
4904}
4905extern "C" {
4906    pub fn dBodySetDamping(b: dBodyID, linear_scale: dReal, angular_scale: dReal);
4907}
4908extern "C" {
4909    pub fn dBodyGetLinearDampingThreshold(b: dBodyID) -> dReal;
4910}
4911extern "C" {
4912    pub fn dBodySetLinearDampingThreshold(b: dBodyID, threshold: dReal);
4913}
4914extern "C" {
4915    pub fn dBodyGetAngularDampingThreshold(b: dBodyID) -> dReal;
4916}
4917extern "C" {
4918    pub fn dBodySetAngularDampingThreshold(b: dBodyID, threshold: dReal);
4919}
4920extern "C" {
4921    pub fn dBodyGetMaxAngularSpeed(b: dBodyID) -> dReal;
4922}
4923extern "C" {
4924    pub fn dBodySetMaxAngularSpeed(b: dBodyID, max_speed: dReal);
4925}
4926extern "C" {
4927    pub fn dBodyGetGyroscopicMode(b: dBodyID) -> ::std::os::raw::c_int;
4928}
4929extern "C" {
4930    pub fn dBodySetGyroscopicMode(b: dBodyID, enabled: ::std::os::raw::c_int);
4931}
4932extern "C" {
4933    pub fn dJointCreateBall(arg1: dWorldID, arg2: dJointGroupID) -> dJointID;
4934}
4935extern "C" {
4936    pub fn dJointCreateHinge(arg1: dWorldID, arg2: dJointGroupID) -> dJointID;
4937}
4938extern "C" {
4939    pub fn dJointCreateSlider(arg1: dWorldID, arg2: dJointGroupID) -> dJointID;
4940}
4941extern "C" {
4942    pub fn dJointCreateContact(
4943        arg1: dWorldID,
4944        arg2: dJointGroupID,
4945        arg3: *const dContact,
4946    ) -> dJointID;
4947}
4948extern "C" {
4949    pub fn dJointCreateHinge2(arg1: dWorldID, arg2: dJointGroupID) -> dJointID;
4950}
4951extern "C" {
4952    pub fn dJointCreateUniversal(arg1: dWorldID, arg2: dJointGroupID) -> dJointID;
4953}
4954extern "C" {
4955    pub fn dJointCreatePR(arg1: dWorldID, arg2: dJointGroupID) -> dJointID;
4956}
4957extern "C" {
4958    pub fn dJointCreatePU(arg1: dWorldID, arg2: dJointGroupID) -> dJointID;
4959}
4960extern "C" {
4961    pub fn dJointCreatePiston(arg1: dWorldID, arg2: dJointGroupID) -> dJointID;
4962}
4963extern "C" {
4964    pub fn dJointCreateFixed(arg1: dWorldID, arg2: dJointGroupID) -> dJointID;
4965}
4966extern "C" {
4967    pub fn dJointCreateNull(arg1: dWorldID, arg2: dJointGroupID) -> dJointID;
4968}
4969extern "C" {
4970    pub fn dJointCreateAMotor(arg1: dWorldID, arg2: dJointGroupID) -> dJointID;
4971}
4972extern "C" {
4973    pub fn dJointCreateLMotor(arg1: dWorldID, arg2: dJointGroupID) -> dJointID;
4974}
4975extern "C" {
4976    pub fn dJointCreatePlane2D(arg1: dWorldID, arg2: dJointGroupID) -> dJointID;
4977}
4978extern "C" {
4979    pub fn dJointCreateDBall(arg1: dWorldID, arg2: dJointGroupID) -> dJointID;
4980}
4981extern "C" {
4982    pub fn dJointCreateDHinge(arg1: dWorldID, arg2: dJointGroupID) -> dJointID;
4983}
4984extern "C" {
4985    pub fn dJointCreateTransmission(arg1: dWorldID, arg2: dJointGroupID) -> dJointID;
4986}
4987extern "C" {
4988    pub fn dJointDestroy(arg1: dJointID);
4989}
4990extern "C" {
4991    pub fn dJointGroupCreate(max_size: ::std::os::raw::c_int) -> dJointGroupID;
4992}
4993extern "C" {
4994    pub fn dJointGroupDestroy(arg1: dJointGroupID);
4995}
4996extern "C" {
4997    pub fn dJointGroupEmpty(arg1: dJointGroupID);
4998}
4999extern "C" {
5000    pub fn dJointGetNumBodies(arg1: dJointID) -> ::std::os::raw::c_int;
5001}
5002extern "C" {
5003    pub fn dJointAttach(arg1: dJointID, body1: dBodyID, body2: dBodyID);
5004}
5005extern "C" {
5006    pub fn dJointEnable(arg1: dJointID);
5007}
5008extern "C" {
5009    pub fn dJointDisable(arg1: dJointID);
5010}
5011extern "C" {
5012    pub fn dJointIsEnabled(arg1: dJointID) -> ::std::os::raw::c_int;
5013}
5014extern "C" {
5015    pub fn dJointSetData(arg1: dJointID, data: *mut ::std::os::raw::c_void);
5016}
5017extern "C" {
5018    pub fn dJointGetData(arg1: dJointID) -> *mut ::std::os::raw::c_void;
5019}
5020extern "C" {
5021    pub fn dJointGetType(arg1: dJointID) -> dJointType;
5022}
5023extern "C" {
5024    pub fn dJointGetBody(arg1: dJointID, index: ::std::os::raw::c_int) -> dBodyID;
5025}
5026extern "C" {
5027    pub fn dJointSetFeedback(arg1: dJointID, arg2: *mut dJointFeedback);
5028}
5029extern "C" {
5030    pub fn dJointGetFeedback(arg1: dJointID) -> *mut dJointFeedback;
5031}
5032extern "C" {
5033    pub fn dJointSetBallAnchor(arg1: dJointID, x: dReal, y: dReal, z: dReal);
5034}
5035extern "C" {
5036    pub fn dJointSetBallAnchor2(arg1: dJointID, x: dReal, y: dReal, z: dReal);
5037}
5038extern "C" {
5039    pub fn dJointSetBallParam(arg1: dJointID, parameter: ::std::os::raw::c_int, value: dReal);
5040}
5041extern "C" {
5042    pub fn dJointSetHingeAnchor(arg1: dJointID, x: dReal, y: dReal, z: dReal);
5043}
5044extern "C" {
5045    pub fn dJointSetHingeAnchorDelta(
5046        arg1: dJointID,
5047        x: dReal,
5048        y: dReal,
5049        z: dReal,
5050        ax: dReal,
5051        ay: dReal,
5052        az: dReal,
5053    );
5054}
5055extern "C" {
5056    pub fn dJointSetHingeAxis(arg1: dJointID, x: dReal, y: dReal, z: dReal);
5057}
5058extern "C" {
5059    pub fn dJointSetHingeAxisOffset(j: dJointID, x: dReal, y: dReal, z: dReal, angle: dReal);
5060}
5061extern "C" {
5062    pub fn dJointSetHingeParam(arg1: dJointID, parameter: ::std::os::raw::c_int, value: dReal);
5063}
5064extern "C" {
5065    pub fn dJointAddHingeTorque(joint: dJointID, torque: dReal);
5066}
5067extern "C" {
5068    pub fn dJointSetSliderAxis(arg1: dJointID, x: dReal, y: dReal, z: dReal);
5069}
5070extern "C" {
5071    pub fn dJointSetSliderAxisDelta(
5072        arg1: dJointID,
5073        x: dReal,
5074        y: dReal,
5075        z: dReal,
5076        ax: dReal,
5077        ay: dReal,
5078        az: dReal,
5079    );
5080}
5081extern "C" {
5082    pub fn dJointSetSliderParam(arg1: dJointID, parameter: ::std::os::raw::c_int, value: dReal);
5083}
5084extern "C" {
5085    pub fn dJointAddSliderForce(joint: dJointID, force: dReal);
5086}
5087extern "C" {
5088    pub fn dJointSetHinge2Anchor(arg1: dJointID, x: dReal, y: dReal, z: dReal);
5089}
5090extern "C" {
5091    pub fn dJointSetHinge2Axes(j: dJointID, axis1: *const dReal, axis2: *const dReal);
5092}
5093extern "C" {
5094    pub fn dJointSetHinge2Axis1(j: dJointID, x: dReal, y: dReal, z: dReal);
5095}
5096extern "C" {
5097    pub fn dJointSetHinge2Axis2(j: dJointID, x: dReal, y: dReal, z: dReal);
5098}
5099extern "C" {
5100    pub fn dJointSetHinge2Param(arg1: dJointID, parameter: ::std::os::raw::c_int, value: dReal);
5101}
5102extern "C" {
5103    pub fn dJointAddHinge2Torques(joint: dJointID, torque1: dReal, torque2: dReal);
5104}
5105extern "C" {
5106    pub fn dJointSetUniversalAnchor(arg1: dJointID, x: dReal, y: dReal, z: dReal);
5107}
5108extern "C" {
5109    pub fn dJointSetUniversalAxis1(arg1: dJointID, x: dReal, y: dReal, z: dReal);
5110}
5111extern "C" {
5112    pub fn dJointSetUniversalAxis1Offset(
5113        arg1: dJointID,
5114        x: dReal,
5115        y: dReal,
5116        z: dReal,
5117        offset1: dReal,
5118        offset2: dReal,
5119    );
5120}
5121extern "C" {
5122    pub fn dJointSetUniversalAxis2(arg1: dJointID, x: dReal, y: dReal, z: dReal);
5123}
5124extern "C" {
5125    pub fn dJointSetUniversalAxis2Offset(
5126        arg1: dJointID,
5127        x: dReal,
5128        y: dReal,
5129        z: dReal,
5130        offset1: dReal,
5131        offset2: dReal,
5132    );
5133}
5134extern "C" {
5135    pub fn dJointSetUniversalParam(arg1: dJointID, parameter: ::std::os::raw::c_int, value: dReal);
5136}
5137extern "C" {
5138    pub fn dJointAddUniversalTorques(joint: dJointID, torque1: dReal, torque2: dReal);
5139}
5140extern "C" {
5141    pub fn dJointSetPRAnchor(arg1: dJointID, x: dReal, y: dReal, z: dReal);
5142}
5143extern "C" {
5144    pub fn dJointSetPRAxis1(arg1: dJointID, x: dReal, y: dReal, z: dReal);
5145}
5146extern "C" {
5147    pub fn dJointSetPRAxis2(arg1: dJointID, x: dReal, y: dReal, z: dReal);
5148}
5149extern "C" {
5150    pub fn dJointSetPRParam(arg1: dJointID, parameter: ::std::os::raw::c_int, value: dReal);
5151}
5152extern "C" {
5153    pub fn dJointAddPRTorque(j: dJointID, torque: dReal);
5154}
5155extern "C" {
5156    pub fn dJointSetPUAnchor(arg1: dJointID, x: dReal, y: dReal, z: dReal);
5157}
5158extern "C" {
5159    pub fn dJointSetPUAnchorDelta(
5160        arg1: dJointID,
5161        x: dReal,
5162        y: dReal,
5163        z: dReal,
5164        dx: dReal,
5165        dy: dReal,
5166        dz: dReal,
5167    );
5168}
5169extern "C" {
5170    pub fn dJointSetPUAnchorOffset(
5171        arg1: dJointID,
5172        x: dReal,
5173        y: dReal,
5174        z: dReal,
5175        dx: dReal,
5176        dy: dReal,
5177        dz: dReal,
5178    );
5179}
5180extern "C" {
5181    pub fn dJointSetPUAxis1(arg1: dJointID, x: dReal, y: dReal, z: dReal);
5182}
5183extern "C" {
5184    pub fn dJointSetPUAxis2(arg1: dJointID, x: dReal, y: dReal, z: dReal);
5185}
5186extern "C" {
5187    pub fn dJointSetPUAxis3(arg1: dJointID, x: dReal, y: dReal, z: dReal);
5188}
5189extern "C" {
5190    pub fn dJointSetPUAxisP(id: dJointID, x: dReal, y: dReal, z: dReal);
5191}
5192extern "C" {
5193    pub fn dJointSetPUParam(arg1: dJointID, parameter: ::std::os::raw::c_int, value: dReal);
5194}
5195extern "C" {
5196    pub fn dJointAddPUTorque(j: dJointID, torque: dReal);
5197}
5198extern "C" {
5199    pub fn dJointSetPistonAnchor(arg1: dJointID, x: dReal, y: dReal, z: dReal);
5200}
5201extern "C" {
5202    pub fn dJointSetPistonAnchorOffset(
5203        j: dJointID,
5204        x: dReal,
5205        y: dReal,
5206        z: dReal,
5207        dx: dReal,
5208        dy: dReal,
5209        dz: dReal,
5210    );
5211}
5212extern "C" {
5213    pub fn dJointSetPistonAxis(arg1: dJointID, x: dReal, y: dReal, z: dReal);
5214}
5215extern "C" {
5216    pub fn dJointSetPistonAxisDelta(
5217        j: dJointID,
5218        x: dReal,
5219        y: dReal,
5220        z: dReal,
5221        ax: dReal,
5222        ay: dReal,
5223        az: dReal,
5224    );
5225}
5226extern "C" {
5227    pub fn dJointSetPistonParam(arg1: dJointID, parameter: ::std::os::raw::c_int, value: dReal);
5228}
5229extern "C" {
5230    pub fn dJointAddPistonForce(joint: dJointID, force: dReal);
5231}
5232extern "C" {
5233    pub fn dJointSetFixed(arg1: dJointID);
5234}
5235extern "C" {
5236    pub fn dJointSetFixedParam(arg1: dJointID, parameter: ::std::os::raw::c_int, value: dReal);
5237}
5238extern "C" {
5239    pub fn dJointSetAMotorNumAxes(arg1: dJointID, num: ::std::os::raw::c_int);
5240}
5241extern "C" {
5242    pub fn dJointSetAMotorAxis(
5243        arg1: dJointID,
5244        anum: ::std::os::raw::c_int,
5245        rel: ::std::os::raw::c_int,
5246        x: dReal,
5247        y: dReal,
5248        z: dReal,
5249    );
5250}
5251extern "C" {
5252    pub fn dJointSetAMotorAngle(arg1: dJointID, anum: ::std::os::raw::c_int, angle: dReal);
5253}
5254extern "C" {
5255    pub fn dJointSetAMotorParam(arg1: dJointID, parameter: ::std::os::raw::c_int, value: dReal);
5256}
5257extern "C" {
5258    pub fn dJointSetAMotorMode(arg1: dJointID, mode: ::std::os::raw::c_int);
5259}
5260extern "C" {
5261    pub fn dJointAddAMotorTorques(arg1: dJointID, torque1: dReal, torque2: dReal, torque3: dReal);
5262}
5263extern "C" {
5264    pub fn dJointSetLMotorNumAxes(arg1: dJointID, num: ::std::os::raw::c_int);
5265}
5266extern "C" {
5267    pub fn dJointSetLMotorAxis(
5268        arg1: dJointID,
5269        anum: ::std::os::raw::c_int,
5270        rel: ::std::os::raw::c_int,
5271        x: dReal,
5272        y: dReal,
5273        z: dReal,
5274    );
5275}
5276extern "C" {
5277    pub fn dJointSetLMotorParam(arg1: dJointID, parameter: ::std::os::raw::c_int, value: dReal);
5278}
5279extern "C" {
5280    pub fn dJointSetPlane2DXParam(arg1: dJointID, parameter: ::std::os::raw::c_int, value: dReal);
5281}
5282extern "C" {
5283    pub fn dJointSetPlane2DYParam(arg1: dJointID, parameter: ::std::os::raw::c_int, value: dReal);
5284}
5285extern "C" {
5286    pub fn dJointSetPlane2DAngleParam(
5287        arg1: dJointID,
5288        parameter: ::std::os::raw::c_int,
5289        value: dReal,
5290    );
5291}
5292extern "C" {
5293    pub fn dJointGetBallAnchor(arg1: dJointID, result: *mut dReal);
5294}
5295extern "C" {
5296    pub fn dJointGetBallAnchor2(arg1: dJointID, result: *mut dReal);
5297}
5298extern "C" {
5299    pub fn dJointGetBallParam(arg1: dJointID, parameter: ::std::os::raw::c_int) -> dReal;
5300}
5301extern "C" {
5302    pub fn dJointGetHingeAnchor(arg1: dJointID, result: *mut dReal);
5303}
5304extern "C" {
5305    pub fn dJointGetHingeAnchor2(arg1: dJointID, result: *mut dReal);
5306}
5307extern "C" {
5308    pub fn dJointGetHingeAxis(arg1: dJointID, result: *mut dReal);
5309}
5310extern "C" {
5311    pub fn dJointGetHingeParam(arg1: dJointID, parameter: ::std::os::raw::c_int) -> dReal;
5312}
5313extern "C" {
5314    pub fn dJointGetHingeAngle(arg1: dJointID) -> dReal;
5315}
5316extern "C" {
5317    pub fn dJointGetHingeAngleRate(arg1: dJointID) -> dReal;
5318}
5319extern "C" {
5320    pub fn dJointGetSliderPosition(arg1: dJointID) -> dReal;
5321}
5322extern "C" {
5323    pub fn dJointGetSliderPositionRate(arg1: dJointID) -> dReal;
5324}
5325extern "C" {
5326    pub fn dJointGetSliderAxis(arg1: dJointID, result: *mut dReal);
5327}
5328extern "C" {
5329    pub fn dJointGetSliderParam(arg1: dJointID, parameter: ::std::os::raw::c_int) -> dReal;
5330}
5331extern "C" {
5332    pub fn dJointGetHinge2Anchor(arg1: dJointID, result: *mut dReal);
5333}
5334extern "C" {
5335    pub fn dJointGetHinge2Anchor2(arg1: dJointID, result: *mut dReal);
5336}
5337extern "C" {
5338    pub fn dJointGetHinge2Axis1(arg1: dJointID, result: *mut dReal);
5339}
5340extern "C" {
5341    pub fn dJointGetHinge2Axis2(arg1: dJointID, result: *mut dReal);
5342}
5343extern "C" {
5344    pub fn dJointGetHinge2Param(arg1: dJointID, parameter: ::std::os::raw::c_int) -> dReal;
5345}
5346extern "C" {
5347    pub fn dJointGetHinge2Angle1(arg1: dJointID) -> dReal;
5348}
5349extern "C" {
5350    pub fn dJointGetHinge2Angle2(arg1: dJointID) -> dReal;
5351}
5352extern "C" {
5353    pub fn dJointGetHinge2Angle1Rate(arg1: dJointID) -> dReal;
5354}
5355extern "C" {
5356    pub fn dJointGetHinge2Angle2Rate(arg1: dJointID) -> dReal;
5357}
5358extern "C" {
5359    pub fn dJointGetUniversalAnchor(arg1: dJointID, result: *mut dReal);
5360}
5361extern "C" {
5362    pub fn dJointGetUniversalAnchor2(arg1: dJointID, result: *mut dReal);
5363}
5364extern "C" {
5365    pub fn dJointGetUniversalAxis1(arg1: dJointID, result: *mut dReal);
5366}
5367extern "C" {
5368    pub fn dJointGetUniversalAxis2(arg1: dJointID, result: *mut dReal);
5369}
5370extern "C" {
5371    pub fn dJointGetUniversalParam(arg1: dJointID, parameter: ::std::os::raw::c_int) -> dReal;
5372}
5373extern "C" {
5374    pub fn dJointGetUniversalAngles(arg1: dJointID, angle1: *mut dReal, angle2: *mut dReal);
5375}
5376extern "C" {
5377    pub fn dJointGetUniversalAngle1(arg1: dJointID) -> dReal;
5378}
5379extern "C" {
5380    pub fn dJointGetUniversalAngle2(arg1: dJointID) -> dReal;
5381}
5382extern "C" {
5383    pub fn dJointGetUniversalAngle1Rate(arg1: dJointID) -> dReal;
5384}
5385extern "C" {
5386    pub fn dJointGetUniversalAngle2Rate(arg1: dJointID) -> dReal;
5387}
5388extern "C" {
5389    pub fn dJointGetPRAnchor(arg1: dJointID, result: *mut dReal);
5390}
5391extern "C" {
5392    pub fn dJointGetPRPosition(arg1: dJointID) -> dReal;
5393}
5394extern "C" {
5395    pub fn dJointGetPRPositionRate(arg1: dJointID) -> dReal;
5396}
5397extern "C" {
5398    pub fn dJointGetPRAngle(arg1: dJointID) -> dReal;
5399}
5400extern "C" {
5401    pub fn dJointGetPRAngleRate(arg1: dJointID) -> dReal;
5402}
5403extern "C" {
5404    pub fn dJointGetPRAxis1(arg1: dJointID, result: *mut dReal);
5405}
5406extern "C" {
5407    pub fn dJointGetPRAxis2(arg1: dJointID, result: *mut dReal);
5408}
5409extern "C" {
5410    pub fn dJointGetPRParam(arg1: dJointID, parameter: ::std::os::raw::c_int) -> dReal;
5411}
5412extern "C" {
5413    pub fn dJointGetPUAnchor(arg1: dJointID, result: *mut dReal);
5414}
5415extern "C" {
5416    pub fn dJointGetPUPosition(arg1: dJointID) -> dReal;
5417}
5418extern "C" {
5419    pub fn dJointGetPUPositionRate(arg1: dJointID) -> dReal;
5420}
5421extern "C" {
5422    pub fn dJointGetPUAxis1(arg1: dJointID, result: *mut dReal);
5423}
5424extern "C" {
5425    pub fn dJointGetPUAxis2(arg1: dJointID, result: *mut dReal);
5426}
5427extern "C" {
5428    pub fn dJointGetPUAxis3(arg1: dJointID, result: *mut dReal);
5429}
5430extern "C" {
5431    pub fn dJointGetPUAxisP(id: dJointID, result: *mut dReal);
5432}
5433extern "C" {
5434    pub fn dJointGetPUAngles(arg1: dJointID, angle1: *mut dReal, angle2: *mut dReal);
5435}
5436extern "C" {
5437    pub fn dJointGetPUAngle1(arg1: dJointID) -> dReal;
5438}
5439extern "C" {
5440    pub fn dJointGetPUAngle1Rate(arg1: dJointID) -> dReal;
5441}
5442extern "C" {
5443    pub fn dJointGetPUAngle2(arg1: dJointID) -> dReal;
5444}
5445extern "C" {
5446    pub fn dJointGetPUAngle2Rate(arg1: dJointID) -> dReal;
5447}
5448extern "C" {
5449    pub fn dJointGetPUParam(arg1: dJointID, parameter: ::std::os::raw::c_int) -> dReal;
5450}
5451extern "C" {
5452    pub fn dJointGetPistonPosition(arg1: dJointID) -> dReal;
5453}
5454extern "C" {
5455    pub fn dJointGetPistonPositionRate(arg1: dJointID) -> dReal;
5456}
5457extern "C" {
5458    pub fn dJointGetPistonAngle(arg1: dJointID) -> dReal;
5459}
5460extern "C" {
5461    pub fn dJointGetPistonAngleRate(arg1: dJointID) -> dReal;
5462}
5463extern "C" {
5464    pub fn dJointGetPistonAnchor(arg1: dJointID, result: *mut dReal);
5465}
5466extern "C" {
5467    pub fn dJointGetPistonAnchor2(arg1: dJointID, result: *mut dReal);
5468}
5469extern "C" {
5470    pub fn dJointGetPistonAxis(arg1: dJointID, result: *mut dReal);
5471}
5472extern "C" {
5473    pub fn dJointGetPistonParam(arg1: dJointID, parameter: ::std::os::raw::c_int) -> dReal;
5474}
5475extern "C" {
5476    pub fn dJointGetAMotorNumAxes(arg1: dJointID) -> ::std::os::raw::c_int;
5477}
5478extern "C" {
5479    pub fn dJointGetAMotorAxis(arg1: dJointID, anum: ::std::os::raw::c_int, result: *mut dReal);
5480}
5481extern "C" {
5482    pub fn dJointGetAMotorAxisRel(
5483        arg1: dJointID,
5484        anum: ::std::os::raw::c_int,
5485    ) -> ::std::os::raw::c_int;
5486}
5487extern "C" {
5488    pub fn dJointGetAMotorAngle(arg1: dJointID, anum: ::std::os::raw::c_int) -> dReal;
5489}
5490extern "C" {
5491    pub fn dJointGetAMotorAngleRate(arg1: dJointID, anum: ::std::os::raw::c_int) -> dReal;
5492}
5493extern "C" {
5494    pub fn dJointGetAMotorParam(arg1: dJointID, parameter: ::std::os::raw::c_int) -> dReal;
5495}
5496extern "C" {
5497    pub fn dJointGetAMotorMode(arg1: dJointID) -> ::std::os::raw::c_int;
5498}
5499extern "C" {
5500    pub fn dJointGetLMotorNumAxes(arg1: dJointID) -> ::std::os::raw::c_int;
5501}
5502extern "C" {
5503    pub fn dJointGetLMotorAxis(arg1: dJointID, anum: ::std::os::raw::c_int, result: *mut dReal);
5504}
5505extern "C" {
5506    pub fn dJointGetLMotorParam(arg1: dJointID, parameter: ::std::os::raw::c_int) -> dReal;
5507}
5508extern "C" {
5509    pub fn dJointGetFixedParam(arg1: dJointID, parameter: ::std::os::raw::c_int) -> dReal;
5510}
5511extern "C" {
5512    pub fn dJointGetTransmissionContactPoint1(arg1: dJointID, result: *mut dReal);
5513}
5514extern "C" {
5515    pub fn dJointGetTransmissionContactPoint2(arg1: dJointID, result: *mut dReal);
5516}
5517extern "C" {
5518    pub fn dJointSetTransmissionAxis1(arg1: dJointID, x: dReal, y: dReal, z: dReal);
5519}
5520extern "C" {
5521    pub fn dJointGetTransmissionAxis1(arg1: dJointID, result: *mut dReal);
5522}
5523extern "C" {
5524    pub fn dJointSetTransmissionAxis2(arg1: dJointID, x: dReal, y: dReal, z: dReal);
5525}
5526extern "C" {
5527    pub fn dJointGetTransmissionAxis2(arg1: dJointID, result: *mut dReal);
5528}
5529extern "C" {
5530    pub fn dJointSetTransmissionAnchor1(arg1: dJointID, x: dReal, y: dReal, z: dReal);
5531}
5532extern "C" {
5533    pub fn dJointGetTransmissionAnchor1(arg1: dJointID, result: *mut dReal);
5534}
5535extern "C" {
5536    pub fn dJointSetTransmissionAnchor2(arg1: dJointID, x: dReal, y: dReal, z: dReal);
5537}
5538extern "C" {
5539    pub fn dJointGetTransmissionAnchor2(arg1: dJointID, result: *mut dReal);
5540}
5541extern "C" {
5542    pub fn dJointSetTransmissionParam(
5543        arg1: dJointID,
5544        parameter: ::std::os::raw::c_int,
5545        value: dReal,
5546    );
5547}
5548extern "C" {
5549    pub fn dJointGetTransmissionParam(arg1: dJointID, parameter: ::std::os::raw::c_int) -> dReal;
5550}
5551extern "C" {
5552    pub fn dJointSetTransmissionMode(j: dJointID, mode: ::std::os::raw::c_int);
5553}
5554extern "C" {
5555    pub fn dJointGetTransmissionMode(j: dJointID) -> ::std::os::raw::c_int;
5556}
5557extern "C" {
5558    pub fn dJointSetTransmissionRatio(j: dJointID, ratio: dReal);
5559}
5560extern "C" {
5561    pub fn dJointGetTransmissionRatio(j: dJointID) -> dReal;
5562}
5563extern "C" {
5564    pub fn dJointSetTransmissionAxis(j: dJointID, x: dReal, y: dReal, z: dReal);
5565}
5566extern "C" {
5567    pub fn dJointGetTransmissionAxis(j: dJointID, result: *mut dReal);
5568}
5569extern "C" {
5570    pub fn dJointGetTransmissionAngle1(j: dJointID) -> dReal;
5571}
5572extern "C" {
5573    pub fn dJointGetTransmissionAngle2(j: dJointID) -> dReal;
5574}
5575extern "C" {
5576    pub fn dJointGetTransmissionRadius1(j: dJointID) -> dReal;
5577}
5578extern "C" {
5579    pub fn dJointGetTransmissionRadius2(j: dJointID) -> dReal;
5580}
5581extern "C" {
5582    pub fn dJointSetTransmissionRadius1(j: dJointID, radius: dReal);
5583}
5584extern "C" {
5585    pub fn dJointSetTransmissionRadius2(j: dJointID, radius: dReal);
5586}
5587extern "C" {
5588    pub fn dJointGetTransmissionBacklash(j: dJointID) -> dReal;
5589}
5590extern "C" {
5591    pub fn dJointSetTransmissionBacklash(j: dJointID, backlash: dReal);
5592}
5593extern "C" {
5594    pub fn dJointSetDBallAnchor1(arg1: dJointID, x: dReal, y: dReal, z: dReal);
5595}
5596extern "C" {
5597    pub fn dJointSetDBallAnchor2(arg1: dJointID, x: dReal, y: dReal, z: dReal);
5598}
5599extern "C" {
5600    pub fn dJointGetDBallAnchor1(arg1: dJointID, result: *mut dReal);
5601}
5602extern "C" {
5603    pub fn dJointGetDBallAnchor2(arg1: dJointID, result: *mut dReal);
5604}
5605extern "C" {
5606    pub fn dJointGetDBallDistance(arg1: dJointID) -> dReal;
5607}
5608extern "C" {
5609    pub fn dJointSetDBallDistance(arg1: dJointID, dist: dReal);
5610}
5611extern "C" {
5612    pub fn dJointSetDBallParam(arg1: dJointID, parameter: ::std::os::raw::c_int, value: dReal);
5613}
5614extern "C" {
5615    pub fn dJointGetDBallParam(arg1: dJointID, parameter: ::std::os::raw::c_int) -> dReal;
5616}
5617extern "C" {
5618    pub fn dJointSetDHingeAxis(arg1: dJointID, x: dReal, y: dReal, z: dReal);
5619}
5620extern "C" {
5621    pub fn dJointGetDHingeAxis(arg1: dJointID, result: *mut dReal);
5622}
5623extern "C" {
5624    pub fn dJointSetDHingeAnchor1(arg1: dJointID, x: dReal, y: dReal, z: dReal);
5625}
5626extern "C" {
5627    pub fn dJointSetDHingeAnchor2(arg1: dJointID, x: dReal, y: dReal, z: dReal);
5628}
5629extern "C" {
5630    pub fn dJointGetDHingeAnchor1(arg1: dJointID, result: *mut dReal);
5631}
5632extern "C" {
5633    pub fn dJointGetDHingeAnchor2(arg1: dJointID, result: *mut dReal);
5634}
5635extern "C" {
5636    pub fn dJointGetDHingeDistance(arg1: dJointID) -> dReal;
5637}
5638extern "C" {
5639    pub fn dJointSetDHingeParam(arg1: dJointID, parameter: ::std::os::raw::c_int, value: dReal);
5640}
5641extern "C" {
5642    pub fn dJointGetDHingeParam(arg1: dJointID, parameter: ::std::os::raw::c_int) -> dReal;
5643}
5644extern "C" {
5645    pub fn dConnectingJoint(arg1: dBodyID, arg2: dBodyID) -> dJointID;
5646}
5647extern "C" {
5648    pub fn dConnectingJointList(
5649        arg1: dBodyID,
5650        arg2: dBodyID,
5651        arg3: *mut dJointID,
5652    ) -> ::std::os::raw::c_int;
5653}
5654extern "C" {
5655    pub fn dAreConnected(arg1: dBodyID, arg2: dBodyID) -> ::std::os::raw::c_int;
5656}
5657extern "C" {
5658    pub fn dAreConnectedExcluding(
5659        body1: dBodyID,
5660        body2: dBodyID,
5661        joint_type: ::std::os::raw::c_int,
5662    ) -> ::std::os::raw::c_int;
5663}
5664pub type dNearCallback = ::std::option::Option<
5665    unsafe extern "C" fn(data: *mut ::std::os::raw::c_void, o1: dGeomID, o2: dGeomID),
5666>;
5667extern "C" {
5668    pub fn dSimpleSpaceCreate(space: dSpaceID) -> dSpaceID;
5669}
5670extern "C" {
5671    pub fn dHashSpaceCreate(space: dSpaceID) -> dSpaceID;
5672}
5673extern "C" {
5674    pub fn dQuadTreeSpaceCreate(
5675        space: dSpaceID,
5676        Center: *mut dReal,
5677        Extents: *mut dReal,
5678        Depth: ::std::os::raw::c_int,
5679    ) -> dSpaceID;
5680}
5681extern "C" {
5682    pub fn dSweepAndPruneSpaceCreate(space: dSpaceID, axisorder: ::std::os::raw::c_int)
5683        -> dSpaceID;
5684}
5685extern "C" {
5686    pub fn dSpaceDestroy(arg1: dSpaceID);
5687}
5688extern "C" {
5689    pub fn dHashSpaceSetLevels(
5690        space: dSpaceID,
5691        minlevel: ::std::os::raw::c_int,
5692        maxlevel: ::std::os::raw::c_int,
5693    );
5694}
5695extern "C" {
5696    pub fn dHashSpaceGetLevels(
5697        space: dSpaceID,
5698        minlevel: *mut ::std::os::raw::c_int,
5699        maxlevel: *mut ::std::os::raw::c_int,
5700    );
5701}
5702extern "C" {
5703    pub fn dSpaceSetCleanup(space: dSpaceID, mode: ::std::os::raw::c_int);
5704}
5705extern "C" {
5706    pub fn dSpaceGetCleanup(space: dSpaceID) -> ::std::os::raw::c_int;
5707}
5708extern "C" {
5709    pub fn dSpaceSetSublevel(space: dSpaceID, sublevel: ::std::os::raw::c_int);
5710}
5711extern "C" {
5712    pub fn dSpaceGetSublevel(space: dSpaceID) -> ::std::os::raw::c_int;
5713}
5714extern "C" {
5715    pub fn dSpaceSetManualCleanup(space: dSpaceID, mode: ::std::os::raw::c_int);
5716}
5717extern "C" {
5718    pub fn dSpaceGetManualCleanup(space: dSpaceID) -> ::std::os::raw::c_int;
5719}
5720extern "C" {
5721    pub fn dSpaceAdd(arg1: dSpaceID, arg2: dGeomID);
5722}
5723extern "C" {
5724    pub fn dSpaceRemove(arg1: dSpaceID, arg2: dGeomID);
5725}
5726extern "C" {
5727    pub fn dSpaceQuery(arg1: dSpaceID, arg2: dGeomID) -> ::std::os::raw::c_int;
5728}
5729extern "C" {
5730    pub fn dSpaceClean(arg1: dSpaceID);
5731}
5732extern "C" {
5733    pub fn dSpaceGetNumGeoms(arg1: dSpaceID) -> ::std::os::raw::c_int;
5734}
5735extern "C" {
5736    pub fn dSpaceGetGeom(arg1: dSpaceID, i: ::std::os::raw::c_int) -> dGeomID;
5737}
5738extern "C" {
5739    pub fn dSpaceGetClass(space: dSpaceID) -> ::std::os::raw::c_int;
5740}
5741extern "C" {
5742    pub fn dGeomDestroy(geom: dGeomID);
5743}
5744extern "C" {
5745    pub fn dGeomSetData(geom: dGeomID, data: *mut ::std::os::raw::c_void);
5746}
5747extern "C" {
5748    pub fn dGeomGetData(geom: dGeomID) -> *mut ::std::os::raw::c_void;
5749}
5750extern "C" {
5751    pub fn dGeomSetBody(geom: dGeomID, body: dBodyID);
5752}
5753extern "C" {
5754    pub fn dGeomGetBody(geom: dGeomID) -> dBodyID;
5755}
5756extern "C" {
5757    pub fn dGeomSetPosition(geom: dGeomID, x: dReal, y: dReal, z: dReal);
5758}
5759extern "C" {
5760    pub fn dGeomSetRotation(geom: dGeomID, R: *mut dReal);
5761}
5762extern "C" {
5763    pub fn dGeomSetQuaternion(geom: dGeomID, Q: *mut dReal);
5764}
5765extern "C" {
5766    pub fn dGeomGetPosition(geom: dGeomID) -> *const dReal;
5767}
5768extern "C" {
5769    pub fn dGeomCopyPosition(geom: dGeomID, pos: *mut dReal);
5770}
5771extern "C" {
5772    pub fn dGeomGetRotation(geom: dGeomID) -> *const dReal;
5773}
5774extern "C" {
5775    pub fn dGeomCopyRotation(geom: dGeomID, R: *mut dReal);
5776}
5777extern "C" {
5778    pub fn dGeomGetQuaternion(geom: dGeomID, result: *mut dReal);
5779}
5780extern "C" {
5781    pub fn dGeomGetAABB(geom: dGeomID, aabb: *mut dReal);
5782}
5783extern "C" {
5784    pub fn dGeomIsSpace(geom: dGeomID) -> ::std::os::raw::c_int;
5785}
5786extern "C" {
5787    pub fn dGeomGetSpace(arg1: dGeomID) -> dSpaceID;
5788}
5789extern "C" {
5790    pub fn dGeomGetClass(geom: dGeomID) -> ::std::os::raw::c_int;
5791}
5792extern "C" {
5793    pub fn dGeomSetCategoryBits(geom: dGeomID, bits: ::std::os::raw::c_ulong);
5794}
5795extern "C" {
5796    pub fn dGeomSetCollideBits(geom: dGeomID, bits: ::std::os::raw::c_ulong);
5797}
5798extern "C" {
5799    pub fn dGeomGetCategoryBits(arg1: dGeomID) -> ::std::os::raw::c_ulong;
5800}
5801extern "C" {
5802    pub fn dGeomGetCollideBits(arg1: dGeomID) -> ::std::os::raw::c_ulong;
5803}
5804extern "C" {
5805    pub fn dGeomEnable(geom: dGeomID);
5806}
5807extern "C" {
5808    pub fn dGeomDisable(geom: dGeomID);
5809}
5810extern "C" {
5811    pub fn dGeomIsEnabled(geom: dGeomID) -> ::std::os::raw::c_int;
5812}
5813pub const dGeomCommonControlClass: _bindgen_ty_6 = 0;
5814pub const dGeomColliderControlClass: _bindgen_ty_6 = 1;
5815pub type _bindgen_ty_6 = ::std::os::raw::c_int;
5816pub const dGeomCommonAnyControlCode: _bindgen_ty_7 = 0;
5817pub const dGeomColliderSetMergeSphereContactsControlCode: _bindgen_ty_7 = 1;
5818pub const dGeomColliderGetMergeSphereContactsControlCode: _bindgen_ty_7 = 2;
5819pub type _bindgen_ty_7 = ::std::os::raw::c_int;
5820pub const dGeomColliderMergeContactsValue__Default: _bindgen_ty_8 = 0;
5821pub const dGeomColliderMergeContactsValue_None: _bindgen_ty_8 = 1;
5822pub const dGeomColliderMergeContactsValue_Normals: _bindgen_ty_8 = 2;
5823pub const dGeomColliderMergeContactsValue_Full: _bindgen_ty_8 = 3;
5824pub type _bindgen_ty_8 = ::std::os::raw::c_int;
5825extern "C" {
5826    pub fn dGeomLowLevelControl(
5827        geom: dGeomID,
5828        controlClass: ::std::os::raw::c_int,
5829        controlCode: ::std::os::raw::c_int,
5830        dataValue: *mut ::std::os::raw::c_void,
5831        dataSize: *mut ::std::os::raw::c_int,
5832    ) -> ::std::os::raw::c_int;
5833}
5834extern "C" {
5835    pub fn dGeomGetRelPointPos(geom: dGeomID, px: dReal, py: dReal, pz: dReal, result: *mut dReal);
5836}
5837extern "C" {
5838    pub fn dGeomGetPosRelPoint(geom: dGeomID, px: dReal, py: dReal, pz: dReal, result: *mut dReal);
5839}
5840extern "C" {
5841    pub fn dGeomVectorToWorld(geom: dGeomID, px: dReal, py: dReal, pz: dReal, result: *mut dReal);
5842}
5843extern "C" {
5844    pub fn dGeomVectorFromWorld(geom: dGeomID, px: dReal, py: dReal, pz: dReal, result: *mut dReal);
5845}
5846extern "C" {
5847    pub fn dGeomSetOffsetPosition(geom: dGeomID, x: dReal, y: dReal, z: dReal);
5848}
5849extern "C" {
5850    pub fn dGeomSetOffsetRotation(geom: dGeomID, R: *mut dReal);
5851}
5852extern "C" {
5853    pub fn dGeomSetOffsetQuaternion(geom: dGeomID, Q: *mut dReal);
5854}
5855extern "C" {
5856    pub fn dGeomSetOffsetWorldPosition(geom: dGeomID, x: dReal, y: dReal, z: dReal);
5857}
5858extern "C" {
5859    pub fn dGeomSetOffsetWorldRotation(geom: dGeomID, R: *mut dReal);
5860}
5861extern "C" {
5862    pub fn dGeomSetOffsetWorldQuaternion(geom: dGeomID, arg1: *mut dReal);
5863}
5864extern "C" {
5865    pub fn dGeomClearOffset(geom: dGeomID);
5866}
5867extern "C" {
5868    pub fn dGeomIsOffset(geom: dGeomID) -> ::std::os::raw::c_int;
5869}
5870extern "C" {
5871    pub fn dGeomGetOffsetPosition(geom: dGeomID) -> *const dReal;
5872}
5873extern "C" {
5874    pub fn dGeomCopyOffsetPosition(geom: dGeomID, pos: *mut dReal);
5875}
5876extern "C" {
5877    pub fn dGeomGetOffsetRotation(geom: dGeomID) -> *const dReal;
5878}
5879extern "C" {
5880    pub fn dGeomCopyOffsetRotation(geom: dGeomID, R: *mut dReal);
5881}
5882extern "C" {
5883    pub fn dGeomGetOffsetQuaternion(geom: dGeomID, result: *mut dReal);
5884}
5885extern "C" {
5886    pub fn dCollide(
5887        o1: dGeomID,
5888        o2: dGeomID,
5889        flags: ::std::os::raw::c_int,
5890        contact: *mut dContactGeom,
5891        skip: ::std::os::raw::c_int,
5892    ) -> ::std::os::raw::c_int;
5893}
5894extern "C" {
5895    pub fn dSpaceCollide(
5896        space: dSpaceID,
5897        data: *mut ::std::os::raw::c_void,
5898        callback: dNearCallback,
5899    );
5900}
5901extern "C" {
5902    pub fn dSpaceCollide2(
5903        space1: dGeomID,
5904        space2: dGeomID,
5905        data: *mut ::std::os::raw::c_void,
5906        callback: dNearCallback,
5907    );
5908}
5909pub const dMaxUserClasses: _bindgen_ty_9 = 4;
5910pub type _bindgen_ty_9 = ::std::os::raw::c_int;
5911pub const dSphereClass: _bindgen_ty_10 = 0;
5912pub const dBoxClass: _bindgen_ty_10 = 1;
5913pub const dCapsuleClass: _bindgen_ty_10 = 2;
5914pub const dCylinderClass: _bindgen_ty_10 = 3;
5915pub const dPlaneClass: _bindgen_ty_10 = 4;
5916pub const dRayClass: _bindgen_ty_10 = 5;
5917pub const dConvexClass: _bindgen_ty_10 = 6;
5918pub const dGeomTransformClass: _bindgen_ty_10 = 7;
5919pub const dTriMeshClass: _bindgen_ty_10 = 8;
5920pub const dHeightfieldClass: _bindgen_ty_10 = 9;
5921pub const dFirstSpaceClass: _bindgen_ty_10 = 10;
5922pub const dSimpleSpaceClass: _bindgen_ty_10 = 10;
5923pub const dHashSpaceClass: _bindgen_ty_10 = 11;
5924pub const dSweepAndPruneSpaceClass: _bindgen_ty_10 = 12;
5925pub const dQuadTreeSpaceClass: _bindgen_ty_10 = 13;
5926pub const dLastSpaceClass: _bindgen_ty_10 = 13;
5927pub const dFirstUserClass: _bindgen_ty_10 = 14;
5928pub const dLastUserClass: _bindgen_ty_10 = 17;
5929pub const dGeomNumClasses: _bindgen_ty_10 = 18;
5930pub type _bindgen_ty_10 = ::std::os::raw::c_int;
5931extern "C" {
5932    pub fn dCreateSphere(space: dSpaceID, radius: dReal) -> dGeomID;
5933}
5934extern "C" {
5935    pub fn dGeomSphereSetRadius(sphere: dGeomID, radius: dReal);
5936}
5937extern "C" {
5938    pub fn dGeomSphereGetRadius(sphere: dGeomID) -> dReal;
5939}
5940extern "C" {
5941    pub fn dGeomSpherePointDepth(sphere: dGeomID, x: dReal, y: dReal, z: dReal) -> dReal;
5942}
5943extern "C" {
5944    pub fn dCreateConvex(
5945        space: dSpaceID,
5946        _planes: *const dReal,
5947        _planecount: ::std::os::raw::c_uint,
5948        _points: *const dReal,
5949        _pointcount: ::std::os::raw::c_uint,
5950        _polygons: *const ::std::os::raw::c_uint,
5951    ) -> dGeomID;
5952}
5953extern "C" {
5954    pub fn dGeomSetConvex(
5955        g: dGeomID,
5956        _planes: *const dReal,
5957        _count: ::std::os::raw::c_uint,
5958        _points: *const dReal,
5959        _pointcount: ::std::os::raw::c_uint,
5960        _polygons: *const ::std::os::raw::c_uint,
5961    );
5962}
5963extern "C" {
5964    pub fn dCreateBox(space: dSpaceID, lx: dReal, ly: dReal, lz: dReal) -> dGeomID;
5965}
5966extern "C" {
5967    pub fn dGeomBoxSetLengths(box_: dGeomID, lx: dReal, ly: dReal, lz: dReal);
5968}
5969extern "C" {
5970    pub fn dGeomBoxGetLengths(box_: dGeomID, result: *mut dReal);
5971}
5972extern "C" {
5973    pub fn dGeomBoxPointDepth(box_: dGeomID, x: dReal, y: dReal, z: dReal) -> dReal;
5974}
5975extern "C" {
5976    pub fn dCreatePlane(space: dSpaceID, a: dReal, b: dReal, c: dReal, d: dReal) -> dGeomID;
5977}
5978extern "C" {
5979    pub fn dGeomPlaneSetParams(plane: dGeomID, a: dReal, b: dReal, c: dReal, d: dReal);
5980}
5981extern "C" {
5982    pub fn dGeomPlaneGetParams(plane: dGeomID, result: *mut dReal);
5983}
5984extern "C" {
5985    pub fn dGeomPlanePointDepth(plane: dGeomID, x: dReal, y: dReal, z: dReal) -> dReal;
5986}
5987extern "C" {
5988    pub fn dCreateCapsule(space: dSpaceID, radius: dReal, length: dReal) -> dGeomID;
5989}
5990extern "C" {
5991    pub fn dGeomCapsuleSetParams(ccylinder: dGeomID, radius: dReal, length: dReal);
5992}
5993extern "C" {
5994    pub fn dGeomCapsuleGetParams(ccylinder: dGeomID, radius: *mut dReal, length: *mut dReal);
5995}
5996extern "C" {
5997    pub fn dGeomCapsulePointDepth(ccylinder: dGeomID, x: dReal, y: dReal, z: dReal) -> dReal;
5998}
5999extern "C" {
6000    pub fn dCreateCylinder(space: dSpaceID, radius: dReal, length: dReal) -> dGeomID;
6001}
6002extern "C" {
6003    pub fn dGeomCylinderSetParams(cylinder: dGeomID, radius: dReal, length: dReal);
6004}
6005extern "C" {
6006    pub fn dGeomCylinderGetParams(cylinder: dGeomID, radius: *mut dReal, length: *mut dReal);
6007}
6008extern "C" {
6009    pub fn dCreateRay(space: dSpaceID, length: dReal) -> dGeomID;
6010}
6011extern "C" {
6012    pub fn dGeomRaySetLength(ray: dGeomID, length: dReal);
6013}
6014extern "C" {
6015    pub fn dGeomRayGetLength(ray: dGeomID) -> dReal;
6016}
6017extern "C" {
6018    pub fn dGeomRaySet(
6019        ray: dGeomID,
6020        px: dReal,
6021        py: dReal,
6022        pz: dReal,
6023        dx: dReal,
6024        dy: dReal,
6025        dz: dReal,
6026    );
6027}
6028extern "C" {
6029    pub fn dGeomRayGet(ray: dGeomID, start: *mut dReal, dir: *mut dReal);
6030}
6031extern "C" {
6032    pub fn dGeomRaySetParams(
6033        g: dGeomID,
6034        FirstContact: ::std::os::raw::c_int,
6035        BackfaceCull: ::std::os::raw::c_int,
6036    );
6037}
6038extern "C" {
6039    pub fn dGeomRayGetParams(
6040        g: dGeomID,
6041        FirstContact: *mut ::std::os::raw::c_int,
6042        BackfaceCull: *mut ::std::os::raw::c_int,
6043    );
6044}
6045extern "C" {
6046    pub fn dGeomRaySetFirstContact(g: dGeomID, firstContact: ::std::os::raw::c_int);
6047}
6048extern "C" {
6049    pub fn dGeomRayGetFirstContact(g: dGeomID) -> ::std::os::raw::c_int;
6050}
6051extern "C" {
6052    pub fn dGeomRaySetBackfaceCull(g: dGeomID, backfaceCull: ::std::os::raw::c_int);
6053}
6054extern "C" {
6055    pub fn dGeomRayGetBackfaceCull(g: dGeomID) -> ::std::os::raw::c_int;
6056}
6057extern "C" {
6058    pub fn dGeomRaySetClosestHit(g: dGeomID, closestHit: ::std::os::raw::c_int);
6059}
6060extern "C" {
6061    pub fn dGeomRayGetClosestHit(g: dGeomID) -> ::std::os::raw::c_int;
6062}
6063#[repr(C)]
6064#[derive(Debug, Copy, Clone)]
6065pub struct dxTriMeshData {
6066    _unused: [u8; 0],
6067}
6068pub type dTriMeshDataID = *mut dxTriMeshData;
6069pub const dMeshTriangleVertex_dMTV__MIN: dMeshTriangleVertex = 0;
6070pub const dMeshTriangleVertex_dMTV_FIRST: dMeshTriangleVertex = 0;
6071pub const dMeshTriangleVertex_dMTV_SECOND: dMeshTriangleVertex = 1;
6072pub const dMeshTriangleVertex_dMTV_THIRD: dMeshTriangleVertex = 2;
6073pub const dMeshTriangleVertex_dMTV__MAX: dMeshTriangleVertex = 3;
6074pub type dMeshTriangleVertex = ::std::os::raw::c_int;
6075extern "C" {
6076    pub fn dGeomTriMeshDataCreate() -> dTriMeshDataID;
6077}
6078extern "C" {
6079    pub fn dGeomTriMeshDataDestroy(g: dTriMeshDataID);
6080}
6081pub const dTRIMESHDATA__MIN: _bindgen_ty_11 = 0;
6082pub const dTRIMESHDATA_FACE_NORMALS: _bindgen_ty_11 = 0;
6083pub const dTRIMESHDATA_USE_FLAGS: _bindgen_ty_11 = 1;
6084pub const dTRIMESHDATA__MAX: _bindgen_ty_11 = 2;
6085pub const TRIMESH_FACE_NORMALS: _bindgen_ty_11 = 0;
6086pub type _bindgen_ty_11 = ::std::os::raw::c_int;
6087pub const dMESHDATAUSE_EDGE1: _bindgen_ty_12 = 1;
6088pub const dMESHDATAUSE_EDGE2: _bindgen_ty_12 = 2;
6089pub const dMESHDATAUSE_EDGE3: _bindgen_ty_12 = 4;
6090pub const dMESHDATAUSE_VERTEX1: _bindgen_ty_12 = 8;
6091pub const dMESHDATAUSE_VERTEX2: _bindgen_ty_12 = 16;
6092pub const dMESHDATAUSE_VERTEX3: _bindgen_ty_12 = 32;
6093pub type _bindgen_ty_12 = ::std::os::raw::c_int;
6094extern "C" {
6095    pub fn dGeomTriMeshDataSet(
6096        g: dTriMeshDataID,
6097        data_id: ::std::os::raw::c_int,
6098        in_data: *mut ::std::os::raw::c_void,
6099    );
6100}
6101extern "C" {
6102    pub fn dGeomTriMeshDataGet(
6103        g: dTriMeshDataID,
6104        data_id: ::std::os::raw::c_int,
6105    ) -> *mut ::std::os::raw::c_void;
6106}
6107extern "C" {
6108    pub fn dGeomTriMeshDataGet2(
6109        g: dTriMeshDataID,
6110        data_id: ::std::os::raw::c_int,
6111        pout_size: *mut dsizeint,
6112    ) -> *mut ::std::os::raw::c_void;
6113}
6114extern "C" {
6115    pub fn dGeomTriMeshSetLastTransform(g: dGeomID, last_trans: *mut dReal);
6116}
6117extern "C" {
6118    pub fn dGeomTriMeshGetLastTransform(g: dGeomID) -> *const dReal;
6119}
6120extern "C" {
6121    pub fn dGeomTriMeshDataBuildSingle(
6122        g: dTriMeshDataID,
6123        Vertices: *const ::std::os::raw::c_void,
6124        VertexStride: ::std::os::raw::c_int,
6125        VertexCount: ::std::os::raw::c_int,
6126        Indices: *const ::std::os::raw::c_void,
6127        IndexCount: ::std::os::raw::c_int,
6128        TriStride: ::std::os::raw::c_int,
6129    );
6130}
6131extern "C" {
6132    pub fn dGeomTriMeshDataBuildSingle1(
6133        g: dTriMeshDataID,
6134        Vertices: *const ::std::os::raw::c_void,
6135        VertexStride: ::std::os::raw::c_int,
6136        VertexCount: ::std::os::raw::c_int,
6137        Indices: *const ::std::os::raw::c_void,
6138        IndexCount: ::std::os::raw::c_int,
6139        TriStride: ::std::os::raw::c_int,
6140        Normals: *const ::std::os::raw::c_void,
6141    );
6142}
6143extern "C" {
6144    pub fn dGeomTriMeshDataBuildDouble(
6145        g: dTriMeshDataID,
6146        Vertices: *const ::std::os::raw::c_void,
6147        VertexStride: ::std::os::raw::c_int,
6148        VertexCount: ::std::os::raw::c_int,
6149        Indices: *const ::std::os::raw::c_void,
6150        IndexCount: ::std::os::raw::c_int,
6151        TriStride: ::std::os::raw::c_int,
6152    );
6153}
6154extern "C" {
6155    pub fn dGeomTriMeshDataBuildDouble1(
6156        g: dTriMeshDataID,
6157        Vertices: *const ::std::os::raw::c_void,
6158        VertexStride: ::std::os::raw::c_int,
6159        VertexCount: ::std::os::raw::c_int,
6160        Indices: *const ::std::os::raw::c_void,
6161        IndexCount: ::std::os::raw::c_int,
6162        TriStride: ::std::os::raw::c_int,
6163        Normals: *const ::std::os::raw::c_void,
6164    );
6165}
6166extern "C" {
6167    pub fn dGeomTriMeshDataBuildSimple(
6168        g: dTriMeshDataID,
6169        Vertices: *const dReal,
6170        VertexCount: ::std::os::raw::c_int,
6171        Indices: *const dTriIndex,
6172        IndexCount: ::std::os::raw::c_int,
6173    );
6174}
6175extern "C" {
6176    pub fn dGeomTriMeshDataBuildSimple1(
6177        g: dTriMeshDataID,
6178        Vertices: *const dReal,
6179        VertexCount: ::std::os::raw::c_int,
6180        Indices: *const dTriIndex,
6181        IndexCount: ::std::os::raw::c_int,
6182        Normals: *const ::std::os::raw::c_int,
6183    );
6184}
6185pub const dTRIDATAPREPROCESS_BUILD__MIN: _bindgen_ty_13 = 0;
6186pub const dTRIDATAPREPROCESS_BUILD_CONCAVE_EDGES: _bindgen_ty_13 = 0;
6187pub const dTRIDATAPREPROCESS_BUILD_FACE_ANGLES: _bindgen_ty_13 = 1;
6188pub const dTRIDATAPREPROCESS_BUILD__MAX: _bindgen_ty_13 = 2;
6189pub type _bindgen_ty_13 = ::std::os::raw::c_int;
6190pub const dTRIDATAPREPROCESS_FACE_ANGLES_EXTRA__MIN: _bindgen_ty_14 = 0;
6191pub const dTRIDATAPREPROCESS_FACE_ANGLES_EXTRA_BYTE_POSITIVE: _bindgen_ty_14 = 0;
6192pub const dTRIDATAPREPROCESS_FACE_ANGLES_EXTRA_BYTE_ALL: _bindgen_ty_14 = 1;
6193pub const dTRIDATAPREPROCESS_FACE_ANGLES_EXTRA_WORD_ALL: _bindgen_ty_14 = 2;
6194pub const dTRIDATAPREPROCESS_FACE_ANGLES_EXTRA__MAX: _bindgen_ty_14 = 3;
6195pub const dTRIDATAPREPROCESS_FACE_ANGLES_EXTRA__DEFAULT: _bindgen_ty_14 = 0;
6196pub type _bindgen_ty_14 = ::std::os::raw::c_int;
6197extern "C" {
6198    pub fn dGeomTriMeshDataPreprocess2(
6199        g: dTriMeshDataID,
6200        buildRequestFlags: ::std::os::raw::c_uint,
6201        requestExtraData: *const dintptr,
6202    ) -> ::std::os::raw::c_int;
6203}
6204extern "C" {
6205    pub fn dGeomTriMeshDataPreprocess(g: dTriMeshDataID) -> ::std::os::raw::c_int;
6206}
6207extern "C" {
6208    pub fn dGeomTriMeshDataGetBuffer(
6209        g: dTriMeshDataID,
6210        buf: *mut *mut ::std::os::raw::c_uchar,
6211        bufLen: *mut ::std::os::raw::c_int,
6212    );
6213}
6214extern "C" {
6215    pub fn dGeomTriMeshDataSetBuffer(g: dTriMeshDataID, buf: *mut ::std::os::raw::c_uchar);
6216}
6217pub type dTriCallback = ::std::option::Option<
6218    unsafe extern "C" fn(
6219        TriMesh: dGeomID,
6220        RefObject: dGeomID,
6221        TriangleIndex: ::std::os::raw::c_int,
6222    ) -> ::std::os::raw::c_int,
6223>;
6224extern "C" {
6225    pub fn dGeomTriMeshSetCallback(g: dGeomID, Callback: dTriCallback);
6226}
6227extern "C" {
6228    pub fn dGeomTriMeshGetCallback(g: dGeomID) -> dTriCallback;
6229}
6230pub type dTriArrayCallback = ::std::option::Option<
6231    unsafe extern "C" fn(
6232        TriMesh: dGeomID,
6233        RefObject: dGeomID,
6234        TriIndices: *const ::std::os::raw::c_int,
6235        TriCount: ::std::os::raw::c_int,
6236    ),
6237>;
6238extern "C" {
6239    pub fn dGeomTriMeshSetArrayCallback(g: dGeomID, ArrayCallback: dTriArrayCallback);
6240}
6241extern "C" {
6242    pub fn dGeomTriMeshGetArrayCallback(g: dGeomID) -> dTriArrayCallback;
6243}
6244pub type dTriRayCallback = ::std::option::Option<
6245    unsafe extern "C" fn(
6246        TriMesh: dGeomID,
6247        Ray: dGeomID,
6248        TriangleIndex: ::std::os::raw::c_int,
6249        u: dReal,
6250        v: dReal,
6251    ) -> ::std::os::raw::c_int,
6252>;
6253extern "C" {
6254    pub fn dGeomTriMeshSetRayCallback(g: dGeomID, Callback: dTriRayCallback);
6255}
6256extern "C" {
6257    pub fn dGeomTriMeshGetRayCallback(g: dGeomID) -> dTriRayCallback;
6258}
6259pub type dTriTriMergeCallback = ::std::option::Option<
6260    unsafe extern "C" fn(
6261        TriMesh: dGeomID,
6262        FirstTriangleIndex: ::std::os::raw::c_int,
6263        SecondTriangleIndex: ::std::os::raw::c_int,
6264    ) -> ::std::os::raw::c_int,
6265>;
6266extern "C" {
6267    pub fn dGeomTriMeshSetTriMergeCallback(g: dGeomID, Callback: dTriTriMergeCallback);
6268}
6269extern "C" {
6270    pub fn dGeomTriMeshGetTriMergeCallback(g: dGeomID) -> dTriTriMergeCallback;
6271}
6272extern "C" {
6273    pub fn dCreateTriMesh(
6274        space: dSpaceID,
6275        Data: dTriMeshDataID,
6276        Callback: dTriCallback,
6277        ArrayCallback: dTriArrayCallback,
6278        RayCallback: dTriRayCallback,
6279    ) -> dGeomID;
6280}
6281extern "C" {
6282    pub fn dGeomTriMeshSetData(g: dGeomID, Data: dTriMeshDataID);
6283}
6284extern "C" {
6285    pub fn dGeomTriMeshGetData(g: dGeomID) -> dTriMeshDataID;
6286}
6287extern "C" {
6288    pub fn dGeomTriMeshEnableTC(
6289        g: dGeomID,
6290        geomClass: ::std::os::raw::c_int,
6291        enable: ::std::os::raw::c_int,
6292    );
6293}
6294extern "C" {
6295    pub fn dGeomTriMeshIsTCEnabled(
6296        g: dGeomID,
6297        geomClass: ::std::os::raw::c_int,
6298    ) -> ::std::os::raw::c_int;
6299}
6300extern "C" {
6301    pub fn dGeomTriMeshClearTCCache(g: dGeomID);
6302}
6303extern "C" {
6304    pub fn dGeomTriMeshGetTriMeshDataID(g: dGeomID) -> dTriMeshDataID;
6305}
6306extern "C" {
6307    pub fn dGeomTriMeshGetTriangle(
6308        g: dGeomID,
6309        Index: ::std::os::raw::c_int,
6310        v0: *mut dVector3,
6311        v1: *mut dVector3,
6312        v2: *mut dVector3,
6313    );
6314}
6315extern "C" {
6316    pub fn dGeomTriMeshGetPoint(
6317        g: dGeomID,
6318        Index: ::std::os::raw::c_int,
6319        u: dReal,
6320        v: dReal,
6321        Out: *mut dReal,
6322    );
6323}
6324extern "C" {
6325    pub fn dGeomTriMeshGetTriangleCount(g: dGeomID) -> ::std::os::raw::c_int;
6326}
6327extern "C" {
6328    pub fn dGeomTriMeshDataUpdate(g: dTriMeshDataID);
6329}
6330extern "C" {
6331    pub fn dCreateGeomTransform(space: dSpaceID) -> dGeomID;
6332}
6333extern "C" {
6334    pub fn dGeomTransformSetGeom(g: dGeomID, obj: dGeomID);
6335}
6336extern "C" {
6337    pub fn dGeomTransformGetGeom(g: dGeomID) -> dGeomID;
6338}
6339extern "C" {
6340    pub fn dGeomTransformSetCleanup(g: dGeomID, mode: ::std::os::raw::c_int);
6341}
6342extern "C" {
6343    pub fn dGeomTransformGetCleanup(g: dGeomID) -> ::std::os::raw::c_int;
6344}
6345extern "C" {
6346    pub fn dGeomTransformSetInfo(g: dGeomID, mode: ::std::os::raw::c_int);
6347}
6348extern "C" {
6349    pub fn dGeomTransformGetInfo(g: dGeomID) -> ::std::os::raw::c_int;
6350}
6351#[repr(C)]
6352#[derive(Debug, Copy, Clone)]
6353pub struct dxHeightfieldData {
6354    _unused: [u8; 0],
6355}
6356pub type dHeightfieldDataID = *mut dxHeightfieldData;
6357pub type dHeightfieldGetHeight = ::std::option::Option<
6358    unsafe extern "C" fn(
6359        p_user_data: *mut ::std::os::raw::c_void,
6360        x: ::std::os::raw::c_int,
6361        z: ::std::os::raw::c_int,
6362    ) -> dReal,
6363>;
6364extern "C" {
6365    pub fn dCreateHeightfield(
6366        space: dSpaceID,
6367        data: dHeightfieldDataID,
6368        bPlaceable: ::std::os::raw::c_int,
6369    ) -> dGeomID;
6370}
6371extern "C" {
6372    pub fn dGeomHeightfieldDataCreate() -> dHeightfieldDataID;
6373}
6374extern "C" {
6375    pub fn dGeomHeightfieldDataDestroy(d: dHeightfieldDataID);
6376}
6377extern "C" {
6378    pub fn dGeomHeightfieldDataBuildCallback(
6379        d: dHeightfieldDataID,
6380        pUserData: *mut ::std::os::raw::c_void,
6381        pCallback: dHeightfieldGetHeight,
6382        width: dReal,
6383        depth: dReal,
6384        widthSamples: ::std::os::raw::c_int,
6385        depthSamples: ::std::os::raw::c_int,
6386        scale: dReal,
6387        offset: dReal,
6388        thickness: dReal,
6389        bWrap: ::std::os::raw::c_int,
6390    );
6391}
6392extern "C" {
6393    pub fn dGeomHeightfieldDataBuildByte(
6394        d: dHeightfieldDataID,
6395        pHeightData: *const ::std::os::raw::c_uchar,
6396        bCopyHeightData: ::std::os::raw::c_int,
6397        width: dReal,
6398        depth: dReal,
6399        widthSamples: ::std::os::raw::c_int,
6400        depthSamples: ::std::os::raw::c_int,
6401        scale: dReal,
6402        offset: dReal,
6403        thickness: dReal,
6404        bWrap: ::std::os::raw::c_int,
6405    );
6406}
6407extern "C" {
6408    pub fn dGeomHeightfieldDataBuildShort(
6409        d: dHeightfieldDataID,
6410        pHeightData: *const ::std::os::raw::c_short,
6411        bCopyHeightData: ::std::os::raw::c_int,
6412        width: dReal,
6413        depth: dReal,
6414        widthSamples: ::std::os::raw::c_int,
6415        depthSamples: ::std::os::raw::c_int,
6416        scale: dReal,
6417        offset: dReal,
6418        thickness: dReal,
6419        bWrap: ::std::os::raw::c_int,
6420    );
6421}
6422extern "C" {
6423    pub fn dGeomHeightfieldDataBuildSingle(
6424        d: dHeightfieldDataID,
6425        pHeightData: *const f32,
6426        bCopyHeightData: ::std::os::raw::c_int,
6427        width: dReal,
6428        depth: dReal,
6429        widthSamples: ::std::os::raw::c_int,
6430        depthSamples: ::std::os::raw::c_int,
6431        scale: dReal,
6432        offset: dReal,
6433        thickness: dReal,
6434        bWrap: ::std::os::raw::c_int,
6435    );
6436}
6437extern "C" {
6438    pub fn dGeomHeightfieldDataBuildDouble(
6439        d: dHeightfieldDataID,
6440        pHeightData: *const f64,
6441        bCopyHeightData: ::std::os::raw::c_int,
6442        width: dReal,
6443        depth: dReal,
6444        widthSamples: ::std::os::raw::c_int,
6445        depthSamples: ::std::os::raw::c_int,
6446        scale: dReal,
6447        offset: dReal,
6448        thickness: dReal,
6449        bWrap: ::std::os::raw::c_int,
6450    );
6451}
6452extern "C" {
6453    pub fn dGeomHeightfieldDataSetBounds(d: dHeightfieldDataID, minHeight: dReal, maxHeight: dReal);
6454}
6455extern "C" {
6456    pub fn dGeomHeightfieldSetHeightfieldData(g: dGeomID, d: dHeightfieldDataID);
6457}
6458extern "C" {
6459    pub fn dGeomHeightfieldGetHeightfieldData(g: dGeomID) -> dHeightfieldDataID;
6460}
6461extern "C" {
6462    pub fn dClosestLineSegmentPoints(
6463        a1: *mut dReal,
6464        a2: *mut dReal,
6465        b1: *mut dReal,
6466        b2: *mut dReal,
6467        cp1: *mut dReal,
6468        cp2: *mut dReal,
6469    );
6470}
6471extern "C" {
6472    pub fn dBoxTouchesBox(
6473        _p1: *mut dReal,
6474        R1: *mut dReal,
6475        side1: *mut dReal,
6476        _p2: *mut dReal,
6477        R2: *mut dReal,
6478        side2: *mut dReal,
6479    ) -> ::std::os::raw::c_int;
6480}
6481extern "C" {
6482    pub fn dBoxBox(
6483        p1: *mut dReal,
6484        R1: *mut dReal,
6485        side1: *mut dReal,
6486        p2: *mut dReal,
6487        R2: *mut dReal,
6488        side2: *mut dReal,
6489        normal: *mut dReal,
6490        depth: *mut dReal,
6491        return_code: *mut ::std::os::raw::c_int,
6492        flags: ::std::os::raw::c_int,
6493        contact: *mut dContactGeom,
6494        skip: ::std::os::raw::c_int,
6495    ) -> ::std::os::raw::c_int;
6496}
6497extern "C" {
6498    pub fn dInfiniteAABB(geom: dGeomID, aabb: *mut dReal);
6499}
6500pub type dGetAABBFn = ::std::option::Option<unsafe extern "C" fn(arg1: dGeomID, aabb: *mut dReal)>;
6501pub type dColliderFn = ::std::option::Option<
6502    unsafe extern "C" fn(
6503        o1: dGeomID,
6504        o2: dGeomID,
6505        flags: ::std::os::raw::c_int,
6506        contact: *mut dContactGeom,
6507        skip: ::std::os::raw::c_int,
6508    ) -> ::std::os::raw::c_int,
6509>;
6510pub type dGetColliderFnFn =
6511    ::std::option::Option<unsafe extern "C" fn(num: ::std::os::raw::c_int) -> dColliderFn>;
6512pub type dGeomDtorFn = ::std::option::Option<unsafe extern "C" fn(o: dGeomID)>;
6513pub type dAABBTestFn = ::std::option::Option<
6514    unsafe extern "C" fn(o1: dGeomID, o2: dGeomID, aabb: *mut dReal) -> ::std::os::raw::c_int,
6515>;
6516#[repr(C)]
6517#[derive(Debug, Copy, Clone)]
6518pub struct dGeomClass {
6519    pub bytes: ::std::os::raw::c_int,
6520    pub collider: dGetColliderFnFn,
6521    pub aabb: dGetAABBFn,
6522    pub aabb_test: dAABBTestFn,
6523    pub dtor: dGeomDtorFn,
6524}
6525#[test]
6526fn bindgen_test_layout_dGeomClass() {
6527    const UNINIT: ::std::mem::MaybeUninit<dGeomClass> = ::std::mem::MaybeUninit::uninit();
6528    let ptr = UNINIT.as_ptr();
6529    assert_eq!(
6530        ::std::mem::size_of::<dGeomClass>(),
6531        40usize,
6532        concat!("Size of: ", stringify!(dGeomClass))
6533    );
6534    assert_eq!(
6535        ::std::mem::align_of::<dGeomClass>(),
6536        8usize,
6537        concat!("Alignment of ", stringify!(dGeomClass))
6538    );
6539    assert_eq!(
6540        unsafe { ::std::ptr::addr_of!((*ptr).bytes) as usize - ptr as usize },
6541        0usize,
6542        concat!(
6543            "Offset of field: ",
6544            stringify!(dGeomClass),
6545            "::",
6546            stringify!(bytes)
6547        )
6548    );
6549    assert_eq!(
6550        unsafe { ::std::ptr::addr_of!((*ptr).collider) as usize - ptr as usize },
6551        8usize,
6552        concat!(
6553            "Offset of field: ",
6554            stringify!(dGeomClass),
6555            "::",
6556            stringify!(collider)
6557        )
6558    );
6559    assert_eq!(
6560        unsafe { ::std::ptr::addr_of!((*ptr).aabb) as usize - ptr as usize },
6561        16usize,
6562        concat!(
6563            "Offset of field: ",
6564            stringify!(dGeomClass),
6565            "::",
6566            stringify!(aabb)
6567        )
6568    );
6569    assert_eq!(
6570        unsafe { ::std::ptr::addr_of!((*ptr).aabb_test) as usize - ptr as usize },
6571        24usize,
6572        concat!(
6573            "Offset of field: ",
6574            stringify!(dGeomClass),
6575            "::",
6576            stringify!(aabb_test)
6577        )
6578    );
6579    assert_eq!(
6580        unsafe { ::std::ptr::addr_of!((*ptr).dtor) as usize - ptr as usize },
6581        32usize,
6582        concat!(
6583            "Offset of field: ",
6584            stringify!(dGeomClass),
6585            "::",
6586            stringify!(dtor)
6587        )
6588    );
6589}
6590extern "C" {
6591    pub fn dCreateGeomClass(classptr: *const dGeomClass) -> ::std::os::raw::c_int;
6592}
6593extern "C" {
6594    pub fn dGeomGetClassData(arg1: dGeomID) -> *mut ::std::os::raw::c_void;
6595}
6596extern "C" {
6597    pub fn dCreateGeom(classnum: ::std::os::raw::c_int) -> dGeomID;
6598}
6599extern "C" {
6600    pub fn dSetColliderOverride(
6601        i: ::std::os::raw::c_int,
6602        j: ::std::os::raw::c_int,
6603        fn_: dColliderFn,
6604    );
6605}
6606#[repr(C)]
6607#[derive(Debug, Copy, Clone)]
6608pub struct dxThreadingThreadPool {
6609    _unused: [u8; 0],
6610}
6611pub type dThreadingThreadPoolID = *mut dxThreadingThreadPool;
6612extern "C" {
6613    pub fn dThreadingAllocateSelfThreadedImplementation() -> dThreadingImplementationID;
6614}
6615extern "C" {
6616    pub fn dThreadingAllocateMultiThreadedImplementation() -> dThreadingImplementationID;
6617}
6618extern "C" {
6619    pub fn dThreadingImplementationGetFunctions(
6620        impl_: dThreadingImplementationID,
6621    ) -> *const dThreadingFunctionsInfo;
6622}
6623extern "C" {
6624    pub fn dThreadingImplementationShutdownProcessing(impl_: dThreadingImplementationID);
6625}
6626extern "C" {
6627    pub fn dThreadingImplementationCleanupForRestart(impl_: dThreadingImplementationID);
6628}
6629extern "C" {
6630    pub fn dThreadingFreeImplementation(impl_: dThreadingImplementationID);
6631}
6632pub type dThreadReadyToServeCallback =
6633    ::std::option::Option<unsafe extern "C" fn(callback_context: *mut ::std::os::raw::c_void)>;
6634extern "C" {
6635    pub fn dExternalThreadingServeMultiThreadedImplementation(
6636        impl_: dThreadingImplementationID,
6637        readiness_callback: dThreadReadyToServeCallback,
6638        callback_context: *mut ::std::os::raw::c_void,
6639    );
6640}
6641extern "C" {
6642    pub fn dThreadingAllocateThreadPool(
6643        thread_count: ::std::os::raw::c_uint,
6644        stack_size: dsizeint,
6645        ode_data_allocate_flags: ::std::os::raw::c_uint,
6646        reserved: *mut ::std::os::raw::c_void,
6647    ) -> dThreadingThreadPoolID;
6648}
6649extern "C" {
6650    pub fn dThreadingThreadPoolServeMultiThreadedImplementation(
6651        pool: dThreadingThreadPoolID,
6652        impl_: dThreadingImplementationID,
6653    );
6654}
6655extern "C" {
6656    pub fn dThreadingThreadPoolWaitIdleState(pool: dThreadingThreadPoolID);
6657}
6658extern "C" {
6659    pub fn dThreadingFreeThreadPool(pool: dThreadingThreadPoolID);
6660}
6661extern "C" {
6662    pub fn dWorldExportDIF(w: dWorldID, file: *mut FILE, world_name: *const ::std::os::raw::c_char);
6663}
6664#[repr(C)]
6665#[derive(Debug)]
6666pub struct dWorldSimpleIDContainer {
6667    pub _id: dWorldID,
6668}
6669#[test]
6670fn bindgen_test_layout_dWorldSimpleIDContainer() {
6671    const UNINIT: ::std::mem::MaybeUninit<dWorldSimpleIDContainer> =
6672        ::std::mem::MaybeUninit::uninit();
6673    let ptr = UNINIT.as_ptr();
6674    assert_eq!(
6675        ::std::mem::size_of::<dWorldSimpleIDContainer>(),
6676        8usize,
6677        concat!("Size of: ", stringify!(dWorldSimpleIDContainer))
6678    );
6679    assert_eq!(
6680        ::std::mem::align_of::<dWorldSimpleIDContainer>(),
6681        8usize,
6682        concat!("Alignment of ", stringify!(dWorldSimpleIDContainer))
6683    );
6684    assert_eq!(
6685        unsafe { ::std::ptr::addr_of!((*ptr)._id) as usize - ptr as usize },
6686        0usize,
6687        concat!(
6688            "Offset of field: ",
6689            stringify!(dWorldSimpleIDContainer),
6690            "::",
6691            stringify!(_id)
6692        )
6693    );
6694}
6695#[repr(C)]
6696pub struct dWorldDynamicIDContainer__bindgen_vtable(::std::os::raw::c_void);
6697#[repr(C)]
6698#[derive(Debug)]
6699pub struct dWorldDynamicIDContainer {
6700    pub vtable_: *const dWorldDynamicIDContainer__bindgen_vtable,
6701    pub _base: dWorldSimpleIDContainer,
6702}
6703#[test]
6704fn bindgen_test_layout_dWorldDynamicIDContainer() {
6705    assert_eq!(
6706        ::std::mem::size_of::<dWorldDynamicIDContainer>(),
6707        16usize,
6708        concat!("Size of: ", stringify!(dWorldDynamicIDContainer))
6709    );
6710    assert_eq!(
6711        ::std::mem::align_of::<dWorldDynamicIDContainer>(),
6712        8usize,
6713        concat!("Alignment of ", stringify!(dWorldDynamicIDContainer))
6714    );
6715}
6716#[repr(C)]
6717#[derive(Debug, Copy, Clone)]
6718pub struct dWorldTemplate<dWorldTemplateBase> {
6719    pub _base: dWorldTemplateBase,
6720    pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<dWorldTemplateBase>>,
6721}
6722#[repr(C)]
6723#[derive(Debug)]
6724pub struct dBodySimpleIDContainer {
6725    pub _id: dBodyID,
6726}
6727#[test]
6728fn bindgen_test_layout_dBodySimpleIDContainer() {
6729    const UNINIT: ::std::mem::MaybeUninit<dBodySimpleIDContainer> =
6730        ::std::mem::MaybeUninit::uninit();
6731    let ptr = UNINIT.as_ptr();
6732    assert_eq!(
6733        ::std::mem::size_of::<dBodySimpleIDContainer>(),
6734        8usize,
6735        concat!("Size of: ", stringify!(dBodySimpleIDContainer))
6736    );
6737    assert_eq!(
6738        ::std::mem::align_of::<dBodySimpleIDContainer>(),
6739        8usize,
6740        concat!("Alignment of ", stringify!(dBodySimpleIDContainer))
6741    );
6742    assert_eq!(
6743        unsafe { ::std::ptr::addr_of!((*ptr)._id) as usize - ptr as usize },
6744        0usize,
6745        concat!(
6746            "Offset of field: ",
6747            stringify!(dBodySimpleIDContainer),
6748            "::",
6749            stringify!(_id)
6750        )
6751    );
6752}
6753#[repr(C)]
6754pub struct dBodyDynamicIDContainer__bindgen_vtable(::std::os::raw::c_void);
6755#[repr(C)]
6756#[derive(Debug)]
6757pub struct dBodyDynamicIDContainer {
6758    pub vtable_: *const dBodyDynamicIDContainer__bindgen_vtable,
6759    pub _base: dBodySimpleIDContainer,
6760}
6761#[test]
6762fn bindgen_test_layout_dBodyDynamicIDContainer() {
6763    assert_eq!(
6764        ::std::mem::size_of::<dBodyDynamicIDContainer>(),
6765        16usize,
6766        concat!("Size of: ", stringify!(dBodyDynamicIDContainer))
6767    );
6768    assert_eq!(
6769        ::std::mem::align_of::<dBodyDynamicIDContainer>(),
6770        8usize,
6771        concat!("Alignment of ", stringify!(dBodyDynamicIDContainer))
6772    );
6773}
6774#[repr(C)]
6775#[derive(Debug, Copy, Clone)]
6776pub struct dBodyTemplate<dBodyTemplateBase> {
6777    pub _base: dBodyTemplateBase,
6778    pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<dBodyTemplateBase>>,
6779}
6780#[repr(C)]
6781#[derive(Debug)]
6782pub struct dJointGroupSimpleIDContainer {
6783    pub _id: dJointGroupID,
6784}
6785#[test]
6786fn bindgen_test_layout_dJointGroupSimpleIDContainer() {
6787    const UNINIT: ::std::mem::MaybeUninit<dJointGroupSimpleIDContainer> =
6788        ::std::mem::MaybeUninit::uninit();
6789    let ptr = UNINIT.as_ptr();
6790    assert_eq!(
6791        ::std::mem::size_of::<dJointGroupSimpleIDContainer>(),
6792        8usize,
6793        concat!("Size of: ", stringify!(dJointGroupSimpleIDContainer))
6794    );
6795    assert_eq!(
6796        ::std::mem::align_of::<dJointGroupSimpleIDContainer>(),
6797        8usize,
6798        concat!("Alignment of ", stringify!(dJointGroupSimpleIDContainer))
6799    );
6800    assert_eq!(
6801        unsafe { ::std::ptr::addr_of!((*ptr)._id) as usize - ptr as usize },
6802        0usize,
6803        concat!(
6804            "Offset of field: ",
6805            stringify!(dJointGroupSimpleIDContainer),
6806            "::",
6807            stringify!(_id)
6808        )
6809    );
6810}
6811#[repr(C)]
6812pub struct dJointGroupDynamicIDContainer__bindgen_vtable(::std::os::raw::c_void);
6813#[repr(C)]
6814#[derive(Debug)]
6815pub struct dJointGroupDynamicIDContainer {
6816    pub vtable_: *const dJointGroupDynamicIDContainer__bindgen_vtable,
6817    pub _base: dJointGroupSimpleIDContainer,
6818}
6819#[test]
6820fn bindgen_test_layout_dJointGroupDynamicIDContainer() {
6821    assert_eq!(
6822        ::std::mem::size_of::<dJointGroupDynamicIDContainer>(),
6823        16usize,
6824        concat!("Size of: ", stringify!(dJointGroupDynamicIDContainer))
6825    );
6826    assert_eq!(
6827        ::std::mem::align_of::<dJointGroupDynamicIDContainer>(),
6828        8usize,
6829        concat!("Alignment of ", stringify!(dJointGroupDynamicIDContainer))
6830    );
6831}
6832#[repr(C)]
6833#[derive(Debug, Copy, Clone)]
6834pub struct dJointGroupTemplate<dJointGroupTemplateBase> {
6835    pub _base: dJointGroupTemplateBase,
6836    pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<dJointGroupTemplateBase>>,
6837}
6838#[repr(C)]
6839#[derive(Debug)]
6840pub struct dJointSimpleIDContainer {
6841    pub _id: dJointID,
6842}
6843#[test]
6844fn bindgen_test_layout_dJointSimpleIDContainer() {
6845    const UNINIT: ::std::mem::MaybeUninit<dJointSimpleIDContainer> =
6846        ::std::mem::MaybeUninit::uninit();
6847    let ptr = UNINIT.as_ptr();
6848    assert_eq!(
6849        ::std::mem::size_of::<dJointSimpleIDContainer>(),
6850        8usize,
6851        concat!("Size of: ", stringify!(dJointSimpleIDContainer))
6852    );
6853    assert_eq!(
6854        ::std::mem::align_of::<dJointSimpleIDContainer>(),
6855        8usize,
6856        concat!("Alignment of ", stringify!(dJointSimpleIDContainer))
6857    );
6858    assert_eq!(
6859        unsafe { ::std::ptr::addr_of!((*ptr)._id) as usize - ptr as usize },
6860        0usize,
6861        concat!(
6862            "Offset of field: ",
6863            stringify!(dJointSimpleIDContainer),
6864            "::",
6865            stringify!(_id)
6866        )
6867    );
6868}
6869#[repr(C)]
6870pub struct dJointDynamicIDContainer__bindgen_vtable(::std::os::raw::c_void);
6871#[repr(C)]
6872#[derive(Debug)]
6873pub struct dJointDynamicIDContainer {
6874    pub vtable_: *const dJointDynamicIDContainer__bindgen_vtable,
6875    pub _base: dJointSimpleIDContainer,
6876}
6877#[test]
6878fn bindgen_test_layout_dJointDynamicIDContainer() {
6879    assert_eq!(
6880        ::std::mem::size_of::<dJointDynamicIDContainer>(),
6881        16usize,
6882        concat!("Size of: ", stringify!(dJointDynamicIDContainer))
6883    );
6884    assert_eq!(
6885        ::std::mem::align_of::<dJointDynamicIDContainer>(),
6886        8usize,
6887        concat!("Alignment of ", stringify!(dJointDynamicIDContainer))
6888    );
6889}
6890#[repr(C)]
6891pub struct dJointTemplate__bindgen_vtable(::std::os::raw::c_void);
6892#[repr(C)]
6893#[derive(Debug, Copy, Clone)]
6894pub struct dJointTemplate<dJointTemplateBase> {
6895    pub vtable_: *const dJointTemplate__bindgen_vtable,
6896    pub _base: dJointTemplateBase,
6897    pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<dJointTemplateBase>>,
6898}
6899#[repr(C)]
6900#[derive(Debug, Copy, Clone)]
6901pub struct dBallJointTemplate<dJointTemplateBase> {
6902    pub _base: dJointTemplate<dJointTemplateBase>,
6903    pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<dJointTemplateBase>>,
6904}
6905pub type dBallJointTemplate_dBaseTemplate<dJointTemplateBase> = dJointTemplate<dJointTemplateBase>;
6906#[repr(C)]
6907#[derive(Debug, Copy, Clone)]
6908pub struct dHingeJointTemplate<dJointTemplateBase> {
6909    pub _base: dJointTemplate<dJointTemplateBase>,
6910    pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<dJointTemplateBase>>,
6911}
6912pub type dHingeJointTemplate_dBaseTemplate<dJointTemplateBase> = dJointTemplate<dJointTemplateBase>;
6913#[repr(C)]
6914#[derive(Debug, Copy, Clone)]
6915pub struct dSliderJointTemplate<dJointTemplateBase> {
6916    pub _base: dJointTemplate<dJointTemplateBase>,
6917    pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<dJointTemplateBase>>,
6918}
6919pub type dSliderJointTemplate_dBaseTemplate<dJointTemplateBase> =
6920    dJointTemplate<dJointTemplateBase>;
6921#[repr(C)]
6922#[derive(Debug, Copy, Clone)]
6923pub struct dUniversalJointTemplate<dJointTemplateBase> {
6924    pub _base: dJointTemplate<dJointTemplateBase>,
6925    pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<dJointTemplateBase>>,
6926}
6927pub type dUniversalJointTemplate_dBaseTemplate<dJointTemplateBase> =
6928    dJointTemplate<dJointTemplateBase>;
6929#[repr(C)]
6930#[derive(Debug, Copy, Clone)]
6931pub struct dHinge2JointTemplate<dJointTemplateBase> {
6932    pub _base: dJointTemplate<dJointTemplateBase>,
6933    pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<dJointTemplateBase>>,
6934}
6935pub type dHinge2JointTemplate_dBaseTemplate<dJointTemplateBase> =
6936    dJointTemplate<dJointTemplateBase>;
6937#[repr(C)]
6938#[derive(Debug, Copy, Clone)]
6939pub struct dPRJointTemplate<dJointTemplateBase> {
6940    pub _base: dJointTemplate<dJointTemplateBase>,
6941    pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<dJointTemplateBase>>,
6942}
6943pub type dPRJointTemplate_dBaseTemplate<dJointTemplateBase> = dJointTemplate<dJointTemplateBase>;
6944#[repr(C)]
6945#[derive(Debug, Copy, Clone)]
6946pub struct dPUJointTemplate<dJointTemplateBase> {
6947    pub _base: dJointTemplate<dJointTemplateBase>,
6948    pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<dJointTemplateBase>>,
6949}
6950pub type dPUJointTemplate_dBaseTemplate<dJointTemplateBase> = dJointTemplate<dJointTemplateBase>;
6951#[repr(C)]
6952#[derive(Debug, Copy, Clone)]
6953pub struct dPistonJointTemplate<dJointTemplateBase> {
6954    pub _base: dJointTemplate<dJointTemplateBase>,
6955    pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<dJointTemplateBase>>,
6956}
6957pub type dPistonJointTemplate_dBaseTemplate<dJointTemplateBase> =
6958    dJointTemplate<dJointTemplateBase>;
6959#[repr(C)]
6960#[derive(Debug, Copy, Clone)]
6961pub struct dFixedJointTemplate<dJointTemplateBase> {
6962    pub _base: dJointTemplate<dJointTemplateBase>,
6963    pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<dJointTemplateBase>>,
6964}
6965pub type dFixedJointTemplate_dBaseTemplate<dJointTemplateBase> = dJointTemplate<dJointTemplateBase>;
6966#[repr(C)]
6967#[derive(Debug, Copy, Clone)]
6968pub struct dContactJointTemplate<dJointTemplateBase> {
6969    pub _base: dJointTemplate<dJointTemplateBase>,
6970    pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<dJointTemplateBase>>,
6971}
6972pub type dContactJointTemplate_dBaseTemplate<dJointTemplateBase> =
6973    dJointTemplate<dJointTemplateBase>;
6974#[repr(C)]
6975#[derive(Debug, Copy, Clone)]
6976pub struct dNullJointTemplate<dJointTemplateBase> {
6977    pub _base: dJointTemplate<dJointTemplateBase>,
6978    pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<dJointTemplateBase>>,
6979}
6980pub type dNullJointTemplate_dBaseTemplate<dJointTemplateBase> = dJointTemplate<dJointTemplateBase>;
6981#[repr(C)]
6982#[derive(Debug, Copy, Clone)]
6983pub struct dAMotorJointTemplate<dJointTemplateBase> {
6984    pub _base: dJointTemplate<dJointTemplateBase>,
6985    pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<dJointTemplateBase>>,
6986}
6987pub type dAMotorJointTemplate_dBaseTemplate<dJointTemplateBase> =
6988    dJointTemplate<dJointTemplateBase>;
6989#[repr(C)]
6990#[derive(Debug, Copy, Clone)]
6991pub struct dLMotorJointTemplate<dJointTemplateBase> {
6992    pub _base: dJointTemplate<dJointTemplateBase>,
6993    pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<dJointTemplateBase>>,
6994}
6995pub type dLMotorJointTemplate_dBaseTemplate<dJointTemplateBase> =
6996    dJointTemplate<dJointTemplateBase>;
6997pub type dWorld = dWorldTemplate<dWorldDynamicIDContainer>;
6998pub type dBody = dBodyTemplate<dBodyDynamicIDContainer>;
6999pub type dJointGroup = dJointGroupTemplate<dJointGroupDynamicIDContainer>;
7000pub type dJoint = dJointTemplate<dJointDynamicIDContainer>;
7001pub type dBallJoint = dBallJointTemplate<dJointDynamicIDContainer>;
7002pub type dHingeJoint = dHingeJointTemplate<dJointDynamicIDContainer>;
7003pub type dSliderJoint = dSliderJointTemplate<dJointDynamicIDContainer>;
7004pub type dUniversalJoint = dUniversalJointTemplate<dJointDynamicIDContainer>;
7005pub type dHinge2Joint = dHinge2JointTemplate<dJointDynamicIDContainer>;
7006pub type dPRJoint = dPRJointTemplate<dJointDynamicIDContainer>;
7007pub type dPUJoint = dPUJointTemplate<dJointDynamicIDContainer>;
7008pub type dPistonJoint = dPistonJointTemplate<dJointDynamicIDContainer>;
7009pub type dFixedJoint = dFixedJointTemplate<dJointDynamicIDContainer>;
7010pub type dContactJoint = dContactJointTemplate<dJointDynamicIDContainer>;
7011pub type dNullJoint = dNullJointTemplate<dJointDynamicIDContainer>;
7012pub type dAMotorJoint = dAMotorJointTemplate<dJointDynamicIDContainer>;
7013pub type dLMotorJoint = dLMotorJointTemplate<dJointDynamicIDContainer>;
7014#[repr(C)]
7015#[derive(Debug)]
7016pub struct dGeom {
7017    pub _id: dGeomID,
7018}
7019#[test]
7020fn bindgen_test_layout_dGeom() {
7021    const UNINIT: ::std::mem::MaybeUninit<dGeom> = ::std::mem::MaybeUninit::uninit();
7022    let ptr = UNINIT.as_ptr();
7023    assert_eq!(
7024        ::std::mem::size_of::<dGeom>(),
7025        8usize,
7026        concat!("Size of: ", stringify!(dGeom))
7027    );
7028    assert_eq!(
7029        ::std::mem::align_of::<dGeom>(),
7030        8usize,
7031        concat!("Alignment of ", stringify!(dGeom))
7032    );
7033    assert_eq!(
7034        unsafe { ::std::ptr::addr_of!((*ptr)._id) as usize - ptr as usize },
7035        0usize,
7036        concat!(
7037            "Offset of field: ",
7038            stringify!(dGeom),
7039            "::",
7040            stringify!(_id)
7041        )
7042    );
7043}
7044#[repr(C)]
7045#[derive(Debug)]
7046pub struct dSpace {
7047    pub _base: dGeom,
7048}
7049#[test]
7050fn bindgen_test_layout_dSpace() {
7051    assert_eq!(
7052        ::std::mem::size_of::<dSpace>(),
7053        8usize,
7054        concat!("Size of: ", stringify!(dSpace))
7055    );
7056    assert_eq!(
7057        ::std::mem::align_of::<dSpace>(),
7058        8usize,
7059        concat!("Alignment of ", stringify!(dSpace))
7060    );
7061}
7062#[repr(C)]
7063#[derive(Debug)]
7064pub struct dSimpleSpace {
7065    pub _base: dSpace,
7066}
7067#[test]
7068fn bindgen_test_layout_dSimpleSpace() {
7069    assert_eq!(
7070        ::std::mem::size_of::<dSimpleSpace>(),
7071        8usize,
7072        concat!("Size of: ", stringify!(dSimpleSpace))
7073    );
7074    assert_eq!(
7075        ::std::mem::align_of::<dSimpleSpace>(),
7076        8usize,
7077        concat!("Alignment of ", stringify!(dSimpleSpace))
7078    );
7079}
7080#[repr(C)]
7081#[derive(Debug)]
7082pub struct dHashSpace {
7083    pub _base: dSpace,
7084}
7085#[test]
7086fn bindgen_test_layout_dHashSpace() {
7087    assert_eq!(
7088        ::std::mem::size_of::<dHashSpace>(),
7089        8usize,
7090        concat!("Size of: ", stringify!(dHashSpace))
7091    );
7092    assert_eq!(
7093        ::std::mem::align_of::<dHashSpace>(),
7094        8usize,
7095        concat!("Alignment of ", stringify!(dHashSpace))
7096    );
7097}
7098#[repr(C)]
7099#[derive(Debug)]
7100pub struct dQuadTreeSpace {
7101    pub _base: dSpace,
7102}
7103#[test]
7104fn bindgen_test_layout_dQuadTreeSpace() {
7105    assert_eq!(
7106        ::std::mem::size_of::<dQuadTreeSpace>(),
7107        8usize,
7108        concat!("Size of: ", stringify!(dQuadTreeSpace))
7109    );
7110    assert_eq!(
7111        ::std::mem::align_of::<dQuadTreeSpace>(),
7112        8usize,
7113        concat!("Alignment of ", stringify!(dQuadTreeSpace))
7114    );
7115}
7116#[repr(C)]
7117#[derive(Debug)]
7118pub struct dSphere {
7119    pub _base: dGeom,
7120}
7121#[test]
7122fn bindgen_test_layout_dSphere() {
7123    assert_eq!(
7124        ::std::mem::size_of::<dSphere>(),
7125        8usize,
7126        concat!("Size of: ", stringify!(dSphere))
7127    );
7128    assert_eq!(
7129        ::std::mem::align_of::<dSphere>(),
7130        8usize,
7131        concat!("Alignment of ", stringify!(dSphere))
7132    );
7133}
7134#[repr(C)]
7135#[derive(Debug)]
7136pub struct dBox {
7137    pub _base: dGeom,
7138}
7139#[test]
7140fn bindgen_test_layout_dBox() {
7141    assert_eq!(
7142        ::std::mem::size_of::<dBox>(),
7143        8usize,
7144        concat!("Size of: ", stringify!(dBox))
7145    );
7146    assert_eq!(
7147        ::std::mem::align_of::<dBox>(),
7148        8usize,
7149        concat!("Alignment of ", stringify!(dBox))
7150    );
7151}
7152#[repr(C)]
7153#[derive(Debug)]
7154pub struct dPlane {
7155    pub _base: dGeom,
7156}
7157#[test]
7158fn bindgen_test_layout_dPlane() {
7159    assert_eq!(
7160        ::std::mem::size_of::<dPlane>(),
7161        8usize,
7162        concat!("Size of: ", stringify!(dPlane))
7163    );
7164    assert_eq!(
7165        ::std::mem::align_of::<dPlane>(),
7166        8usize,
7167        concat!("Alignment of ", stringify!(dPlane))
7168    );
7169}
7170#[repr(C)]
7171#[derive(Debug)]
7172pub struct dCapsule {
7173    pub _base: dGeom,
7174}
7175#[test]
7176fn bindgen_test_layout_dCapsule() {
7177    assert_eq!(
7178        ::std::mem::size_of::<dCapsule>(),
7179        8usize,
7180        concat!("Size of: ", stringify!(dCapsule))
7181    );
7182    assert_eq!(
7183        ::std::mem::align_of::<dCapsule>(),
7184        8usize,
7185        concat!("Alignment of ", stringify!(dCapsule))
7186    );
7187}
7188#[repr(C)]
7189#[derive(Debug)]
7190pub struct dCylinder {
7191    pub _base: dGeom,
7192}
7193#[test]
7194fn bindgen_test_layout_dCylinder() {
7195    assert_eq!(
7196        ::std::mem::size_of::<dCylinder>(),
7197        8usize,
7198        concat!("Size of: ", stringify!(dCylinder))
7199    );
7200    assert_eq!(
7201        ::std::mem::align_of::<dCylinder>(),
7202        8usize,
7203        concat!("Alignment of ", stringify!(dCylinder))
7204    );
7205}
7206#[repr(C)]
7207#[derive(Debug)]
7208pub struct dRay {
7209    pub _base: dGeom,
7210}
7211#[test]
7212fn bindgen_test_layout_dRay() {
7213    assert_eq!(
7214        ::std::mem::size_of::<dRay>(),
7215        8usize,
7216        concat!("Size of: ", stringify!(dRay))
7217    );
7218    assert_eq!(
7219        ::std::mem::align_of::<dRay>(),
7220        8usize,
7221        concat!("Alignment of ", stringify!(dRay))
7222    );
7223}
7224#[repr(C)]
7225#[derive(Debug)]
7226pub struct dGeomTransform {
7227    pub _base: dGeom,
7228}
7229#[test]
7230fn bindgen_test_layout_dGeomTransform() {
7231    assert_eq!(
7232        ::std::mem::size_of::<dGeomTransform>(),
7233        8usize,
7234        concat!("Size of: ", stringify!(dGeomTransform))
7235    );
7236    assert_eq!(
7237        ::std::mem::align_of::<dGeomTransform>(),
7238        8usize,
7239        concat!("Alignment of ", stringify!(dGeomTransform))
7240    );
7241}
7242#[repr(C)]
7243#[derive(Debug, Copy, Clone)]
7244pub struct __crt_locale_data {
7245    pub _address: u8,
7246}
7247#[repr(C)]
7248#[derive(Debug, Copy, Clone)]
7249pub struct __crt_multibyte_data {
7250    pub _address: u8,
7251}