openconnect_sys/
bindings_x86_64_linux_gnu.rs

1/* automatically generated by rust-bindgen 0.69.4 */
2
3pub const DEFAULT_EXTERNAL_BROWSER: &[u8; 18] = b"/usr/bin/xdg-open\0";
4pub const DEFAULT_VPNCSCRIPT: &[u8; 14] = b"./vpnc-script\0";
5pub const ENABLE_NLS: u32 = 1;
6pub const HAVE_ALLOCA_H: u32 = 1;
7pub const HAVE_ASPRINTF: u32 = 1;
8pub const HAVE_BIO_METH_FREE: u32 = 1;
9pub const HAVE_BUILTIN_CLZ: u32 = 1;
10pub const HAVE_DLFCN_H: u32 = 1;
11pub const HAVE_DTLS: u32 = 1;
12pub const HAVE_DTLS12: u32 = 1;
13pub const HAVE_ENGINE: u32 = 1;
14pub const HAVE_EPOLL: u32 = 1;
15pub const HAVE_ESP: u32 = 1;
16pub const HAVE_EXPLICIT_BZERO: u32 = 1;
17pub const HAVE_GETLINE: u32 = 1;
18pub const HAVE_HPKE_SUPPORT: u32 = 1;
19pub const HAVE_ICONV: u32 = 1;
20pub const HAVE_INET_ATON: u32 = 1;
21pub const HAVE_IPV6_PATHMTU: u32 = 1;
22pub const HAVE_JSON: u32 = 1;
23pub const HAVE_LOCALTIME_R: u32 = 1;
24pub const HAVE_NL_LANGINFO: u32 = 1;
25pub const HAVE_POSIX_SPAWN: u32 = 1;
26pub const HAVE_SSL_CIPHER_FIND: u32 = 1;
27pub const HAVE_SSL_CTX_PROTOVER: u32 = 1;
28pub const HAVE_STATFS: u32 = 1;
29pub const HAVE_STRCASESTR: u32 = 1;
30pub const HAVE_STRCHRNUL: u32 = 1;
31pub const HAVE_STRNDUP: u32 = 1;
32pub const HAVE_VASPRINTF: u32 = 1;
33pub const HAVE_VHOST: u32 = 1;
34pub const IF_TUN_HDR: &[u8; 15] = b"linux/if_tun.h\0";
35pub const LT_OBJDIR: &[u8; 7] = b".libs/\0";
36pub const OPENCONNECT_OPENSSL: u32 = 1;
37pub const OPENSSL_SUPPRESS_DEPRECATED: u32 = 1;
38pub const PACKAGE: &[u8; 12] = b"openconnect\0";
39pub const PACKAGE_BUGREPORT: &[u8; 1] = b"\0";
40pub const PACKAGE_NAME: &[u8; 12] = b"openconnect\0";
41pub const PACKAGE_STRING: &[u8; 17] = b"openconnect 9.12\0";
42pub const PACKAGE_TARNAME: &[u8; 12] = b"openconnect\0";
43pub const PACKAGE_URL: &[u8; 1] = b"\0";
44pub const PACKAGE_VERSION: &[u8; 5] = b"9.12\0";
45pub const VERSION: &[u8; 5] = b"9.12\0";
46pub const _GNU_SOURCE: u32 = 1;
47pub const _SYS_TYPES_H: u32 = 1;
48pub const _FEATURES_H: u32 = 1;
49pub const _ISOC95_SOURCE: u32 = 1;
50pub const _ISOC99_SOURCE: u32 = 1;
51pub const _ISOC11_SOURCE: u32 = 1;
52pub const _ISOC2X_SOURCE: u32 = 1;
53pub const _POSIX_SOURCE: u32 = 1;
54pub const _POSIX_C_SOURCE: u32 = 200809;
55pub const _XOPEN_SOURCE: u32 = 700;
56pub const _XOPEN_SOURCE_EXTENDED: u32 = 1;
57pub const _LARGEFILE64_SOURCE: u32 = 1;
58pub const _DEFAULT_SOURCE: u32 = 1;
59pub const _ATFILE_SOURCE: u32 = 1;
60pub const _DYNAMIC_STACK_SIZE_SOURCE: u32 = 1;
61pub const __GLIBC_USE_ISOC2X: u32 = 1;
62pub const __USE_ISOC11: u32 = 1;
63pub const __USE_ISOC99: u32 = 1;
64pub const __USE_ISOC95: u32 = 1;
65pub const __USE_POSIX: u32 = 1;
66pub const __USE_POSIX2: u32 = 1;
67pub const __USE_POSIX199309: u32 = 1;
68pub const __USE_POSIX199506: u32 = 1;
69pub const __USE_XOPEN2K: u32 = 1;
70pub const __USE_XOPEN2K8: u32 = 1;
71pub const __USE_XOPEN: u32 = 1;
72pub const __USE_XOPEN_EXTENDED: u32 = 1;
73pub const __USE_UNIX98: u32 = 1;
74pub const _LARGEFILE_SOURCE: u32 = 1;
75pub const __USE_XOPEN2K8XSI: u32 = 1;
76pub const __USE_XOPEN2KXSI: u32 = 1;
77pub const __USE_LARGEFILE: u32 = 1;
78pub const __USE_LARGEFILE64: u32 = 1;
79pub const __WORDSIZE: u32 = 64;
80pub const __WORDSIZE_TIME64_COMPAT32: u32 = 1;
81pub const __SYSCALL_WORDSIZE: u32 = 64;
82pub const __TIMESIZE: u32 = 64;
83pub const __USE_MISC: u32 = 1;
84pub const __USE_ATFILE: u32 = 1;
85pub const __USE_DYNAMIC_STACK_SIZE: u32 = 1;
86pub const __USE_GNU: u32 = 1;
87pub const __USE_FORTIFY_LEVEL: u32 = 0;
88pub const __GLIBC_USE_DEPRECATED_GETS: u32 = 0;
89pub const __GLIBC_USE_DEPRECATED_SCANF: u32 = 0;
90pub const _STDC_PREDEF_H: u32 = 1;
91pub const __STDC_IEC_559__: u32 = 1;
92pub const __STDC_IEC_60559_BFP__: u32 = 201404;
93pub const __STDC_IEC_559_COMPLEX__: u32 = 1;
94pub const __STDC_IEC_60559_COMPLEX__: u32 = 201404;
95pub const __STDC_ISO_10646__: u32 = 201706;
96pub const __GNU_LIBRARY__: u32 = 6;
97pub const __GLIBC__: u32 = 2;
98pub const __GLIBC_MINOR__: u32 = 35;
99pub const _SYS_CDEFS_H: u32 = 1;
100pub const __glibc_c99_flexarr_available: u32 = 1;
101pub const __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI: u32 = 0;
102pub const __HAVE_GENERIC_SELECTION: u32 = 1;
103pub const _BITS_TYPES_H: u32 = 1;
104pub const _BITS_TYPESIZES_H: u32 = 1;
105pub const __OFF_T_MATCHES_OFF64_T: u32 = 1;
106pub const __INO_T_MATCHES_INO64_T: u32 = 1;
107pub const __RLIM_T_MATCHES_RLIM64_T: u32 = 1;
108pub const __STATFS_MATCHES_STATFS64: u32 = 1;
109pub const __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64: u32 = 1;
110pub const __FD_SETSIZE: u32 = 1024;
111pub const _BITS_TIME64_H: u32 = 1;
112pub const __clock_t_defined: u32 = 1;
113pub const __clockid_t_defined: u32 = 1;
114pub const __time_t_defined: u32 = 1;
115pub const __timer_t_defined: u32 = 1;
116pub const _BITS_STDINT_INTN_H: u32 = 1;
117pub const __BIT_TYPES_DEFINED__: u32 = 1;
118pub const _ENDIAN_H: u32 = 1;
119pub const _BITS_ENDIAN_H: u32 = 1;
120pub const __LITTLE_ENDIAN: u32 = 1234;
121pub const __BIG_ENDIAN: u32 = 4321;
122pub const __PDP_ENDIAN: u32 = 3412;
123pub const _BITS_ENDIANNESS_H: u32 = 1;
124pub const __BYTE_ORDER: u32 = 1234;
125pub const __FLOAT_WORD_ORDER: u32 = 1234;
126pub const LITTLE_ENDIAN: u32 = 1234;
127pub const BIG_ENDIAN: u32 = 4321;
128pub const PDP_ENDIAN: u32 = 3412;
129pub const BYTE_ORDER: u32 = 1234;
130pub const _BITS_BYTESWAP_H: u32 = 1;
131pub const _BITS_UINTN_IDENTITY_H: u32 = 1;
132pub const _SYS_SELECT_H: u32 = 1;
133pub const __sigset_t_defined: u32 = 1;
134pub const __timeval_defined: u32 = 1;
135pub const _STRUCT_TIMESPEC: u32 = 1;
136pub const FD_SETSIZE: u32 = 1024;
137pub const _BITS_PTHREADTYPES_COMMON_H: u32 = 1;
138pub const _THREAD_SHARED_TYPES_H: u32 = 1;
139pub const _BITS_PTHREADTYPES_ARCH_H: u32 = 1;
140pub const __SIZEOF_PTHREAD_MUTEX_T: u32 = 40;
141pub const __SIZEOF_PTHREAD_ATTR_T: u32 = 56;
142pub const __SIZEOF_PTHREAD_RWLOCK_T: u32 = 56;
143pub const __SIZEOF_PTHREAD_BARRIER_T: u32 = 32;
144pub const __SIZEOF_PTHREAD_MUTEXATTR_T: u32 = 4;
145pub const __SIZEOF_PTHREAD_COND_T: u32 = 48;
146pub const __SIZEOF_PTHREAD_CONDATTR_T: u32 = 4;
147pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: u32 = 8;
148pub const __SIZEOF_PTHREAD_BARRIERATTR_T: u32 = 4;
149pub const _THREAD_MUTEX_INTERNAL_H: u32 = 1;
150pub const __PTHREAD_MUTEX_HAVE_PREV: u32 = 1;
151pub const __have_pthread_attr_t: u32 = 1;
152pub const _STDINT_H: u32 = 1;
153pub const __GLIBC_USE_LIB_EXT2: u32 = 1;
154pub const __GLIBC_USE_IEC_60559_BFP_EXT: u32 = 1;
155pub const __GLIBC_USE_IEC_60559_BFP_EXT_C2X: u32 = 1;
156pub const __GLIBC_USE_IEC_60559_EXT: u32 = 1;
157pub const __GLIBC_USE_IEC_60559_FUNCS_EXT: u32 = 1;
158pub const __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X: u32 = 1;
159pub const __GLIBC_USE_IEC_60559_TYPES_EXT: u32 = 1;
160pub const _BITS_WCHAR_H: u32 = 1;
161pub const _BITS_STDINT_UINTN_H: u32 = 1;
162pub const INT8_MIN: i32 = -128;
163pub const INT16_MIN: i32 = -32768;
164pub const INT32_MIN: i32 = -2147483648;
165pub const INT8_MAX: u32 = 127;
166pub const INT16_MAX: u32 = 32767;
167pub const INT32_MAX: u32 = 2147483647;
168pub const UINT8_MAX: u32 = 255;
169pub const UINT16_MAX: u32 = 65535;
170pub const UINT32_MAX: u32 = 4294967295;
171pub const INT_LEAST8_MIN: i32 = -128;
172pub const INT_LEAST16_MIN: i32 = -32768;
173pub const INT_LEAST32_MIN: i32 = -2147483648;
174pub const INT_LEAST8_MAX: u32 = 127;
175pub const INT_LEAST16_MAX: u32 = 32767;
176pub const INT_LEAST32_MAX: u32 = 2147483647;
177pub const UINT_LEAST8_MAX: u32 = 255;
178pub const UINT_LEAST16_MAX: u32 = 65535;
179pub const UINT_LEAST32_MAX: u32 = 4294967295;
180pub const INT_FAST8_MIN: i32 = -128;
181pub const INT_FAST16_MIN: i64 = -9223372036854775808;
182pub const INT_FAST32_MIN: i64 = -9223372036854775808;
183pub const INT_FAST8_MAX: u32 = 127;
184pub const INT_FAST16_MAX: u64 = 9223372036854775807;
185pub const INT_FAST32_MAX: u64 = 9223372036854775807;
186pub const UINT_FAST8_MAX: u32 = 255;
187pub const UINT_FAST16_MAX: i32 = -1;
188pub const UINT_FAST32_MAX: i32 = -1;
189pub const INTPTR_MIN: i64 = -9223372036854775808;
190pub const INTPTR_MAX: u64 = 9223372036854775807;
191pub const UINTPTR_MAX: i32 = -1;
192pub const PTRDIFF_MIN: i64 = -9223372036854775808;
193pub const PTRDIFF_MAX: u64 = 9223372036854775807;
194pub const SIG_ATOMIC_MIN: i32 = -2147483648;
195pub const SIG_ATOMIC_MAX: u32 = 2147483647;
196pub const SIZE_MAX: i32 = -1;
197pub const WINT_MIN: u32 = 0;
198pub const WINT_MAX: u32 = 4294967295;
199pub const INT8_WIDTH: u32 = 8;
200pub const UINT8_WIDTH: u32 = 8;
201pub const INT16_WIDTH: u32 = 16;
202pub const UINT16_WIDTH: u32 = 16;
203pub const INT32_WIDTH: u32 = 32;
204pub const UINT32_WIDTH: u32 = 32;
205pub const INT64_WIDTH: u32 = 64;
206pub const UINT64_WIDTH: u32 = 64;
207pub const INT_LEAST8_WIDTH: u32 = 8;
208pub const UINT_LEAST8_WIDTH: u32 = 8;
209pub const INT_LEAST16_WIDTH: u32 = 16;
210pub const UINT_LEAST16_WIDTH: u32 = 16;
211pub const INT_LEAST32_WIDTH: u32 = 32;
212pub const UINT_LEAST32_WIDTH: u32 = 32;
213pub const INT_LEAST64_WIDTH: u32 = 64;
214pub const UINT_LEAST64_WIDTH: u32 = 64;
215pub const INT_FAST8_WIDTH: u32 = 8;
216pub const UINT_FAST8_WIDTH: u32 = 8;
217pub const INT_FAST16_WIDTH: u32 = 64;
218pub const UINT_FAST16_WIDTH: u32 = 64;
219pub const INT_FAST32_WIDTH: u32 = 64;
220pub const UINT_FAST32_WIDTH: u32 = 64;
221pub const INT_FAST64_WIDTH: u32 = 64;
222pub const UINT_FAST64_WIDTH: u32 = 64;
223pub const INTPTR_WIDTH: u32 = 64;
224pub const UINTPTR_WIDTH: u32 = 64;
225pub const INTMAX_WIDTH: u32 = 64;
226pub const UINTMAX_WIDTH: u32 = 64;
227pub const PTRDIFF_WIDTH: u32 = 64;
228pub const SIG_ATOMIC_WIDTH: u32 = 32;
229pub const SIZE_WIDTH: u32 = 64;
230pub const WCHAR_WIDTH: u32 = 32;
231pub const WINT_WIDTH: u32 = 32;
232pub const OPENCONNECT_API_VERSION_MAJOR: u32 = 5;
233pub const OPENCONNECT_API_VERSION_MINOR: u32 = 9;
234pub const OC_PROTO_PROXY: u32 = 1;
235pub const OC_PROTO_CSD: u32 = 2;
236pub const OC_PROTO_AUTH_CERT: u32 = 4;
237pub const OC_PROTO_AUTH_OTP: u32 = 8;
238pub const OC_PROTO_AUTH_STOKEN: u32 = 16;
239pub const OC_PROTO_PERIODIC_TROJAN: u32 = 32;
240pub const OC_PROTO_HIDDEN: u32 = 64;
241pub const OC_PROTO_AUTH_MCA: u32 = 128;
242pub const OC_FORM_OPT_TEXT: u32 = 1;
243pub const OC_FORM_OPT_PASSWORD: u32 = 2;
244pub const OC_FORM_OPT_SELECT: u32 = 3;
245pub const OC_FORM_OPT_HIDDEN: u32 = 4;
246pub const OC_FORM_OPT_TOKEN: u32 = 5;
247pub const OC_FORM_OPT_SSO_TOKEN: u32 = 6;
248pub const OC_FORM_OPT_SSO_USER: u32 = 7;
249pub const OC_FORM_RESULT_ERR: i32 = -1;
250pub const OC_FORM_RESULT_OK: u32 = 0;
251pub const OC_FORM_RESULT_CANCELLED: u32 = 1;
252pub const OC_FORM_RESULT_NEWGROUP: u32 = 2;
253pub const OC_FORM_OPT_IGNORE: u32 = 1;
254pub const OC_FORM_OPT_NUMERIC: u32 = 2;
255pub const PRG_ERR: u32 = 0;
256pub const PRG_INFO: u32 = 1;
257pub const PRG_DEBUG: u32 = 2;
258pub const PRG_TRACE: u32 = 3;
259pub const OC_CMD_CANCEL: u8 = 120u8;
260pub const OC_CMD_PAUSE: u8 = 112u8;
261pub const OC_CMD_DETACH: u8 = 100u8;
262pub const OC_CMD_STATS: u8 = 115u8;
263pub const RECONNECT_INTERVAL_MIN: u32 = 10;
264pub const RECONNECT_INTERVAL_MAX: u32 = 100;
265pub type __u_char = ::std::os::raw::c_uchar;
266pub type __u_short = ::std::os::raw::c_ushort;
267pub type __u_int = ::std::os::raw::c_uint;
268pub type __u_long = ::std::os::raw::c_ulong;
269pub type __int8_t = ::std::os::raw::c_schar;
270pub type __uint8_t = ::std::os::raw::c_uchar;
271pub type __int16_t = ::std::os::raw::c_short;
272pub type __uint16_t = ::std::os::raw::c_ushort;
273pub type __int32_t = ::std::os::raw::c_int;
274pub type __uint32_t = ::std::os::raw::c_uint;
275pub type __int64_t = ::std::os::raw::c_long;
276pub type __uint64_t = ::std::os::raw::c_ulong;
277pub type __int_least8_t = __int8_t;
278pub type __uint_least8_t = __uint8_t;
279pub type __int_least16_t = __int16_t;
280pub type __uint_least16_t = __uint16_t;
281pub type __int_least32_t = __int32_t;
282pub type __uint_least32_t = __uint32_t;
283pub type __int_least64_t = __int64_t;
284pub type __uint_least64_t = __uint64_t;
285pub type __quad_t = ::std::os::raw::c_long;
286pub type __u_quad_t = ::std::os::raw::c_ulong;
287pub type __intmax_t = ::std::os::raw::c_long;
288pub type __uintmax_t = ::std::os::raw::c_ulong;
289pub type __dev_t = ::std::os::raw::c_ulong;
290pub type __uid_t = ::std::os::raw::c_uint;
291pub type __gid_t = ::std::os::raw::c_uint;
292pub type __ino_t = ::std::os::raw::c_ulong;
293pub type __ino64_t = ::std::os::raw::c_ulong;
294pub type __mode_t = ::std::os::raw::c_uint;
295pub type __nlink_t = ::std::os::raw::c_ulong;
296pub type __off_t = ::std::os::raw::c_long;
297pub type __off64_t = ::std::os::raw::c_long;
298pub type __pid_t = ::std::os::raw::c_int;
299#[repr(C)]
300#[derive(Debug, Copy, Clone)]
301pub struct __fsid_t {
302    pub __val: [::std::os::raw::c_int; 2usize],
303}
304#[test]
305fn bindgen_test_layout___fsid_t() {
306    const UNINIT: ::std::mem::MaybeUninit<__fsid_t> = ::std::mem::MaybeUninit::uninit();
307    let ptr = UNINIT.as_ptr();
308    assert_eq!(
309        ::std::mem::size_of::<__fsid_t>(),
310        8usize,
311        concat!("Size of: ", stringify!(__fsid_t))
312    );
313    assert_eq!(
314        ::std::mem::align_of::<__fsid_t>(),
315        4usize,
316        concat!("Alignment of ", stringify!(__fsid_t))
317    );
318    assert_eq!(
319        unsafe { ::std::ptr::addr_of!((*ptr).__val) as usize - ptr as usize },
320        0usize,
321        concat!(
322            "Offset of field: ",
323            stringify!(__fsid_t),
324            "::",
325            stringify!(__val)
326        )
327    );
328}
329pub type __clock_t = ::std::os::raw::c_long;
330pub type __rlim_t = ::std::os::raw::c_ulong;
331pub type __rlim64_t = ::std::os::raw::c_ulong;
332pub type __id_t = ::std::os::raw::c_uint;
333pub type __time_t = ::std::os::raw::c_long;
334pub type __useconds_t = ::std::os::raw::c_uint;
335pub type __suseconds_t = ::std::os::raw::c_long;
336pub type __suseconds64_t = ::std::os::raw::c_long;
337pub type __daddr_t = ::std::os::raw::c_int;
338pub type __key_t = ::std::os::raw::c_int;
339pub type __clockid_t = ::std::os::raw::c_int;
340pub type __timer_t = *mut ::std::os::raw::c_void;
341pub type __blksize_t = ::std::os::raw::c_long;
342pub type __blkcnt_t = ::std::os::raw::c_long;
343pub type __blkcnt64_t = ::std::os::raw::c_long;
344pub type __fsblkcnt_t = ::std::os::raw::c_ulong;
345pub type __fsblkcnt64_t = ::std::os::raw::c_ulong;
346pub type __fsfilcnt_t = ::std::os::raw::c_ulong;
347pub type __fsfilcnt64_t = ::std::os::raw::c_ulong;
348pub type __fsword_t = ::std::os::raw::c_long;
349pub type __ssize_t = ::std::os::raw::c_long;
350pub type __syscall_slong_t = ::std::os::raw::c_long;
351pub type __syscall_ulong_t = ::std::os::raw::c_ulong;
352pub type __loff_t = __off64_t;
353pub type __caddr_t = *mut ::std::os::raw::c_char;
354pub type __intptr_t = ::std::os::raw::c_long;
355pub type __socklen_t = ::std::os::raw::c_uint;
356pub type __sig_atomic_t = ::std::os::raw::c_int;
357pub type u_char = __u_char;
358pub type u_short = __u_short;
359pub type u_int = __u_int;
360pub type u_long = __u_long;
361pub type quad_t = __quad_t;
362pub type u_quad_t = __u_quad_t;
363pub type fsid_t = __fsid_t;
364pub type loff_t = __loff_t;
365pub type ino_t = __ino_t;
366pub type ino64_t = __ino64_t;
367pub type dev_t = __dev_t;
368pub type gid_t = __gid_t;
369pub type mode_t = __mode_t;
370pub type nlink_t = __nlink_t;
371pub type uid_t = __uid_t;
372pub type off_t = __off_t;
373pub type off64_t = __off64_t;
374pub type pid_t = __pid_t;
375pub type id_t = __id_t;
376pub type daddr_t = __daddr_t;
377pub type caddr_t = __caddr_t;
378pub type key_t = __key_t;
379pub type clock_t = __clock_t;
380pub type clockid_t = __clockid_t;
381pub type time_t = __time_t;
382pub type timer_t = __timer_t;
383pub type useconds_t = __useconds_t;
384pub type suseconds_t = __suseconds_t;
385pub type ulong = ::std::os::raw::c_ulong;
386pub type ushort = ::std::os::raw::c_ushort;
387pub type uint = ::std::os::raw::c_uint;
388pub type u_int8_t = __uint8_t;
389pub type u_int16_t = __uint16_t;
390pub type u_int32_t = __uint32_t;
391pub type u_int64_t = __uint64_t;
392pub type register_t = ::std::os::raw::c_long;
393#[repr(C)]
394#[derive(Debug, Copy, Clone)]
395pub struct __sigset_t {
396    pub __val: [::std::os::raw::c_ulong; 16usize],
397}
398#[test]
399fn bindgen_test_layout___sigset_t() {
400    const UNINIT: ::std::mem::MaybeUninit<__sigset_t> = ::std::mem::MaybeUninit::uninit();
401    let ptr = UNINIT.as_ptr();
402    assert_eq!(
403        ::std::mem::size_of::<__sigset_t>(),
404        128usize,
405        concat!("Size of: ", stringify!(__sigset_t))
406    );
407    assert_eq!(
408        ::std::mem::align_of::<__sigset_t>(),
409        8usize,
410        concat!("Alignment of ", stringify!(__sigset_t))
411    );
412    assert_eq!(
413        unsafe { ::std::ptr::addr_of!((*ptr).__val) as usize - ptr as usize },
414        0usize,
415        concat!(
416            "Offset of field: ",
417            stringify!(__sigset_t),
418            "::",
419            stringify!(__val)
420        )
421    );
422}
423pub type sigset_t = __sigset_t;
424#[repr(C)]
425#[derive(Debug, Copy, Clone)]
426pub struct timeval {
427    pub tv_sec: __time_t,
428    pub tv_usec: __suseconds_t,
429}
430#[test]
431fn bindgen_test_layout_timeval() {
432    const UNINIT: ::std::mem::MaybeUninit<timeval> = ::std::mem::MaybeUninit::uninit();
433    let ptr = UNINIT.as_ptr();
434    assert_eq!(
435        ::std::mem::size_of::<timeval>(),
436        16usize,
437        concat!("Size of: ", stringify!(timeval))
438    );
439    assert_eq!(
440        ::std::mem::align_of::<timeval>(),
441        8usize,
442        concat!("Alignment of ", stringify!(timeval))
443    );
444    assert_eq!(
445        unsafe { ::std::ptr::addr_of!((*ptr).tv_sec) as usize - ptr as usize },
446        0usize,
447        concat!(
448            "Offset of field: ",
449            stringify!(timeval),
450            "::",
451            stringify!(tv_sec)
452        )
453    );
454    assert_eq!(
455        unsafe { ::std::ptr::addr_of!((*ptr).tv_usec) as usize - ptr as usize },
456        8usize,
457        concat!(
458            "Offset of field: ",
459            stringify!(timeval),
460            "::",
461            stringify!(tv_usec)
462        )
463    );
464}
465#[repr(C)]
466#[derive(Debug, Copy, Clone)]
467pub struct timespec {
468    pub tv_sec: __time_t,
469    pub tv_nsec: __syscall_slong_t,
470}
471#[test]
472fn bindgen_test_layout_timespec() {
473    const UNINIT: ::std::mem::MaybeUninit<timespec> = ::std::mem::MaybeUninit::uninit();
474    let ptr = UNINIT.as_ptr();
475    assert_eq!(
476        ::std::mem::size_of::<timespec>(),
477        16usize,
478        concat!("Size of: ", stringify!(timespec))
479    );
480    assert_eq!(
481        ::std::mem::align_of::<timespec>(),
482        8usize,
483        concat!("Alignment of ", stringify!(timespec))
484    );
485    assert_eq!(
486        unsafe { ::std::ptr::addr_of!((*ptr).tv_sec) as usize - ptr as usize },
487        0usize,
488        concat!(
489            "Offset of field: ",
490            stringify!(timespec),
491            "::",
492            stringify!(tv_sec)
493        )
494    );
495    assert_eq!(
496        unsafe { ::std::ptr::addr_of!((*ptr).tv_nsec) as usize - ptr as usize },
497        8usize,
498        concat!(
499            "Offset of field: ",
500            stringify!(timespec),
501            "::",
502            stringify!(tv_nsec)
503        )
504    );
505}
506pub type __fd_mask = ::std::os::raw::c_long;
507#[repr(C)]
508#[derive(Debug, Copy, Clone)]
509pub struct fd_set {
510    pub fds_bits: [__fd_mask; 16usize],
511}
512#[test]
513fn bindgen_test_layout_fd_set() {
514    const UNINIT: ::std::mem::MaybeUninit<fd_set> = ::std::mem::MaybeUninit::uninit();
515    let ptr = UNINIT.as_ptr();
516    assert_eq!(
517        ::std::mem::size_of::<fd_set>(),
518        128usize,
519        concat!("Size of: ", stringify!(fd_set))
520    );
521    assert_eq!(
522        ::std::mem::align_of::<fd_set>(),
523        8usize,
524        concat!("Alignment of ", stringify!(fd_set))
525    );
526    assert_eq!(
527        unsafe { ::std::ptr::addr_of!((*ptr).fds_bits) as usize - ptr as usize },
528        0usize,
529        concat!(
530            "Offset of field: ",
531            stringify!(fd_set),
532            "::",
533            stringify!(fds_bits)
534        )
535    );
536}
537pub type fd_mask = __fd_mask;
538extern "C" {
539    pub fn select(
540        __nfds: ::std::os::raw::c_int,
541        __readfds: *mut fd_set,
542        __writefds: *mut fd_set,
543        __exceptfds: *mut fd_set,
544        __timeout: *mut timeval,
545    ) -> ::std::os::raw::c_int;
546}
547extern "C" {
548    pub fn pselect(
549        __nfds: ::std::os::raw::c_int,
550        __readfds: *mut fd_set,
551        __writefds: *mut fd_set,
552        __exceptfds: *mut fd_set,
553        __timeout: *const timespec,
554        __sigmask: *const __sigset_t,
555    ) -> ::std::os::raw::c_int;
556}
557pub type blksize_t = __blksize_t;
558pub type blkcnt_t = __blkcnt_t;
559pub type fsblkcnt_t = __fsblkcnt_t;
560pub type fsfilcnt_t = __fsfilcnt_t;
561pub type blkcnt64_t = __blkcnt64_t;
562pub type fsblkcnt64_t = __fsblkcnt64_t;
563pub type fsfilcnt64_t = __fsfilcnt64_t;
564#[repr(C)]
565#[derive(Copy, Clone)]
566pub union __atomic_wide_counter {
567    pub __value64: ::std::os::raw::c_ulonglong,
568    pub __value32: __atomic_wide_counter__bindgen_ty_1,
569}
570#[repr(C)]
571#[derive(Debug, Copy, Clone)]
572pub struct __atomic_wide_counter__bindgen_ty_1 {
573    pub __low: ::std::os::raw::c_uint,
574    pub __high: ::std::os::raw::c_uint,
575}
576#[test]
577fn bindgen_test_layout___atomic_wide_counter__bindgen_ty_1() {
578    const UNINIT: ::std::mem::MaybeUninit<__atomic_wide_counter__bindgen_ty_1> =
579        ::std::mem::MaybeUninit::uninit();
580    let ptr = UNINIT.as_ptr();
581    assert_eq!(
582        ::std::mem::size_of::<__atomic_wide_counter__bindgen_ty_1>(),
583        8usize,
584        concat!("Size of: ", stringify!(__atomic_wide_counter__bindgen_ty_1))
585    );
586    assert_eq!(
587        ::std::mem::align_of::<__atomic_wide_counter__bindgen_ty_1>(),
588        4usize,
589        concat!(
590            "Alignment of ",
591            stringify!(__atomic_wide_counter__bindgen_ty_1)
592        )
593    );
594    assert_eq!(
595        unsafe { ::std::ptr::addr_of!((*ptr).__low) as usize - ptr as usize },
596        0usize,
597        concat!(
598            "Offset of field: ",
599            stringify!(__atomic_wide_counter__bindgen_ty_1),
600            "::",
601            stringify!(__low)
602        )
603    );
604    assert_eq!(
605        unsafe { ::std::ptr::addr_of!((*ptr).__high) as usize - ptr as usize },
606        4usize,
607        concat!(
608            "Offset of field: ",
609            stringify!(__atomic_wide_counter__bindgen_ty_1),
610            "::",
611            stringify!(__high)
612        )
613    );
614}
615#[test]
616fn bindgen_test_layout___atomic_wide_counter() {
617    const UNINIT: ::std::mem::MaybeUninit<__atomic_wide_counter> =
618        ::std::mem::MaybeUninit::uninit();
619    let ptr = UNINIT.as_ptr();
620    assert_eq!(
621        ::std::mem::size_of::<__atomic_wide_counter>(),
622        8usize,
623        concat!("Size of: ", stringify!(__atomic_wide_counter))
624    );
625    assert_eq!(
626        ::std::mem::align_of::<__atomic_wide_counter>(),
627        8usize,
628        concat!("Alignment of ", stringify!(__atomic_wide_counter))
629    );
630    assert_eq!(
631        unsafe { ::std::ptr::addr_of!((*ptr).__value64) as usize - ptr as usize },
632        0usize,
633        concat!(
634            "Offset of field: ",
635            stringify!(__atomic_wide_counter),
636            "::",
637            stringify!(__value64)
638        )
639    );
640    assert_eq!(
641        unsafe { ::std::ptr::addr_of!((*ptr).__value32) as usize - ptr as usize },
642        0usize,
643        concat!(
644            "Offset of field: ",
645            stringify!(__atomic_wide_counter),
646            "::",
647            stringify!(__value32)
648        )
649    );
650}
651#[repr(C)]
652#[derive(Debug, Copy, Clone)]
653pub struct __pthread_internal_list {
654    pub __prev: *mut __pthread_internal_list,
655    pub __next: *mut __pthread_internal_list,
656}
657#[test]
658fn bindgen_test_layout___pthread_internal_list() {
659    const UNINIT: ::std::mem::MaybeUninit<__pthread_internal_list> =
660        ::std::mem::MaybeUninit::uninit();
661    let ptr = UNINIT.as_ptr();
662    assert_eq!(
663        ::std::mem::size_of::<__pthread_internal_list>(),
664        16usize,
665        concat!("Size of: ", stringify!(__pthread_internal_list))
666    );
667    assert_eq!(
668        ::std::mem::align_of::<__pthread_internal_list>(),
669        8usize,
670        concat!("Alignment of ", stringify!(__pthread_internal_list))
671    );
672    assert_eq!(
673        unsafe { ::std::ptr::addr_of!((*ptr).__prev) as usize - ptr as usize },
674        0usize,
675        concat!(
676            "Offset of field: ",
677            stringify!(__pthread_internal_list),
678            "::",
679            stringify!(__prev)
680        )
681    );
682    assert_eq!(
683        unsafe { ::std::ptr::addr_of!((*ptr).__next) as usize - ptr as usize },
684        8usize,
685        concat!(
686            "Offset of field: ",
687            stringify!(__pthread_internal_list),
688            "::",
689            stringify!(__next)
690        )
691    );
692}
693pub type __pthread_list_t = __pthread_internal_list;
694#[repr(C)]
695#[derive(Debug, Copy, Clone)]
696pub struct __pthread_internal_slist {
697    pub __next: *mut __pthread_internal_slist,
698}
699#[test]
700fn bindgen_test_layout___pthread_internal_slist() {
701    const UNINIT: ::std::mem::MaybeUninit<__pthread_internal_slist> =
702        ::std::mem::MaybeUninit::uninit();
703    let ptr = UNINIT.as_ptr();
704    assert_eq!(
705        ::std::mem::size_of::<__pthread_internal_slist>(),
706        8usize,
707        concat!("Size of: ", stringify!(__pthread_internal_slist))
708    );
709    assert_eq!(
710        ::std::mem::align_of::<__pthread_internal_slist>(),
711        8usize,
712        concat!("Alignment of ", stringify!(__pthread_internal_slist))
713    );
714    assert_eq!(
715        unsafe { ::std::ptr::addr_of!((*ptr).__next) as usize - ptr as usize },
716        0usize,
717        concat!(
718            "Offset of field: ",
719            stringify!(__pthread_internal_slist),
720            "::",
721            stringify!(__next)
722        )
723    );
724}
725pub type __pthread_slist_t = __pthread_internal_slist;
726#[repr(C)]
727#[derive(Debug, Copy, Clone)]
728pub struct __pthread_mutex_s {
729    pub __lock: ::std::os::raw::c_int,
730    pub __count: ::std::os::raw::c_uint,
731    pub __owner: ::std::os::raw::c_int,
732    pub __nusers: ::std::os::raw::c_uint,
733    pub __kind: ::std::os::raw::c_int,
734    pub __spins: ::std::os::raw::c_short,
735    pub __elision: ::std::os::raw::c_short,
736    pub __list: __pthread_list_t,
737}
738#[test]
739fn bindgen_test_layout___pthread_mutex_s() {
740    const UNINIT: ::std::mem::MaybeUninit<__pthread_mutex_s> = ::std::mem::MaybeUninit::uninit();
741    let ptr = UNINIT.as_ptr();
742    assert_eq!(
743        ::std::mem::size_of::<__pthread_mutex_s>(),
744        40usize,
745        concat!("Size of: ", stringify!(__pthread_mutex_s))
746    );
747    assert_eq!(
748        ::std::mem::align_of::<__pthread_mutex_s>(),
749        8usize,
750        concat!("Alignment of ", stringify!(__pthread_mutex_s))
751    );
752    assert_eq!(
753        unsafe { ::std::ptr::addr_of!((*ptr).__lock) as usize - ptr as usize },
754        0usize,
755        concat!(
756            "Offset of field: ",
757            stringify!(__pthread_mutex_s),
758            "::",
759            stringify!(__lock)
760        )
761    );
762    assert_eq!(
763        unsafe { ::std::ptr::addr_of!((*ptr).__count) as usize - ptr as usize },
764        4usize,
765        concat!(
766            "Offset of field: ",
767            stringify!(__pthread_mutex_s),
768            "::",
769            stringify!(__count)
770        )
771    );
772    assert_eq!(
773        unsafe { ::std::ptr::addr_of!((*ptr).__owner) as usize - ptr as usize },
774        8usize,
775        concat!(
776            "Offset of field: ",
777            stringify!(__pthread_mutex_s),
778            "::",
779            stringify!(__owner)
780        )
781    );
782    assert_eq!(
783        unsafe { ::std::ptr::addr_of!((*ptr).__nusers) as usize - ptr as usize },
784        12usize,
785        concat!(
786            "Offset of field: ",
787            stringify!(__pthread_mutex_s),
788            "::",
789            stringify!(__nusers)
790        )
791    );
792    assert_eq!(
793        unsafe { ::std::ptr::addr_of!((*ptr).__kind) as usize - ptr as usize },
794        16usize,
795        concat!(
796            "Offset of field: ",
797            stringify!(__pthread_mutex_s),
798            "::",
799            stringify!(__kind)
800        )
801    );
802    assert_eq!(
803        unsafe { ::std::ptr::addr_of!((*ptr).__spins) as usize - ptr as usize },
804        20usize,
805        concat!(
806            "Offset of field: ",
807            stringify!(__pthread_mutex_s),
808            "::",
809            stringify!(__spins)
810        )
811    );
812    assert_eq!(
813        unsafe { ::std::ptr::addr_of!((*ptr).__elision) as usize - ptr as usize },
814        22usize,
815        concat!(
816            "Offset of field: ",
817            stringify!(__pthread_mutex_s),
818            "::",
819            stringify!(__elision)
820        )
821    );
822    assert_eq!(
823        unsafe { ::std::ptr::addr_of!((*ptr).__list) as usize - ptr as usize },
824        24usize,
825        concat!(
826            "Offset of field: ",
827            stringify!(__pthread_mutex_s),
828            "::",
829            stringify!(__list)
830        )
831    );
832}
833#[repr(C)]
834#[derive(Debug, Copy, Clone)]
835pub struct __pthread_rwlock_arch_t {
836    pub __readers: ::std::os::raw::c_uint,
837    pub __writers: ::std::os::raw::c_uint,
838    pub __wrphase_futex: ::std::os::raw::c_uint,
839    pub __writers_futex: ::std::os::raw::c_uint,
840    pub __pad3: ::std::os::raw::c_uint,
841    pub __pad4: ::std::os::raw::c_uint,
842    pub __cur_writer: ::std::os::raw::c_int,
843    pub __shared: ::std::os::raw::c_int,
844    pub __rwelision: ::std::os::raw::c_schar,
845    pub __pad1: [::std::os::raw::c_uchar; 7usize],
846    pub __pad2: ::std::os::raw::c_ulong,
847    pub __flags: ::std::os::raw::c_uint,
848}
849#[test]
850fn bindgen_test_layout___pthread_rwlock_arch_t() {
851    const UNINIT: ::std::mem::MaybeUninit<__pthread_rwlock_arch_t> =
852        ::std::mem::MaybeUninit::uninit();
853    let ptr = UNINIT.as_ptr();
854    assert_eq!(
855        ::std::mem::size_of::<__pthread_rwlock_arch_t>(),
856        56usize,
857        concat!("Size of: ", stringify!(__pthread_rwlock_arch_t))
858    );
859    assert_eq!(
860        ::std::mem::align_of::<__pthread_rwlock_arch_t>(),
861        8usize,
862        concat!("Alignment of ", stringify!(__pthread_rwlock_arch_t))
863    );
864    assert_eq!(
865        unsafe { ::std::ptr::addr_of!((*ptr).__readers) as usize - ptr as usize },
866        0usize,
867        concat!(
868            "Offset of field: ",
869            stringify!(__pthread_rwlock_arch_t),
870            "::",
871            stringify!(__readers)
872        )
873    );
874    assert_eq!(
875        unsafe { ::std::ptr::addr_of!((*ptr).__writers) as usize - ptr as usize },
876        4usize,
877        concat!(
878            "Offset of field: ",
879            stringify!(__pthread_rwlock_arch_t),
880            "::",
881            stringify!(__writers)
882        )
883    );
884    assert_eq!(
885        unsafe { ::std::ptr::addr_of!((*ptr).__wrphase_futex) as usize - ptr as usize },
886        8usize,
887        concat!(
888            "Offset of field: ",
889            stringify!(__pthread_rwlock_arch_t),
890            "::",
891            stringify!(__wrphase_futex)
892        )
893    );
894    assert_eq!(
895        unsafe { ::std::ptr::addr_of!((*ptr).__writers_futex) as usize - ptr as usize },
896        12usize,
897        concat!(
898            "Offset of field: ",
899            stringify!(__pthread_rwlock_arch_t),
900            "::",
901            stringify!(__writers_futex)
902        )
903    );
904    assert_eq!(
905        unsafe { ::std::ptr::addr_of!((*ptr).__pad3) as usize - ptr as usize },
906        16usize,
907        concat!(
908            "Offset of field: ",
909            stringify!(__pthread_rwlock_arch_t),
910            "::",
911            stringify!(__pad3)
912        )
913    );
914    assert_eq!(
915        unsafe { ::std::ptr::addr_of!((*ptr).__pad4) as usize - ptr as usize },
916        20usize,
917        concat!(
918            "Offset of field: ",
919            stringify!(__pthread_rwlock_arch_t),
920            "::",
921            stringify!(__pad4)
922        )
923    );
924    assert_eq!(
925        unsafe { ::std::ptr::addr_of!((*ptr).__cur_writer) as usize - ptr as usize },
926        24usize,
927        concat!(
928            "Offset of field: ",
929            stringify!(__pthread_rwlock_arch_t),
930            "::",
931            stringify!(__cur_writer)
932        )
933    );
934    assert_eq!(
935        unsafe { ::std::ptr::addr_of!((*ptr).__shared) as usize - ptr as usize },
936        28usize,
937        concat!(
938            "Offset of field: ",
939            stringify!(__pthread_rwlock_arch_t),
940            "::",
941            stringify!(__shared)
942        )
943    );
944    assert_eq!(
945        unsafe { ::std::ptr::addr_of!((*ptr).__rwelision) as usize - ptr as usize },
946        32usize,
947        concat!(
948            "Offset of field: ",
949            stringify!(__pthread_rwlock_arch_t),
950            "::",
951            stringify!(__rwelision)
952        )
953    );
954    assert_eq!(
955        unsafe { ::std::ptr::addr_of!((*ptr).__pad1) as usize - ptr as usize },
956        33usize,
957        concat!(
958            "Offset of field: ",
959            stringify!(__pthread_rwlock_arch_t),
960            "::",
961            stringify!(__pad1)
962        )
963    );
964    assert_eq!(
965        unsafe { ::std::ptr::addr_of!((*ptr).__pad2) as usize - ptr as usize },
966        40usize,
967        concat!(
968            "Offset of field: ",
969            stringify!(__pthread_rwlock_arch_t),
970            "::",
971            stringify!(__pad2)
972        )
973    );
974    assert_eq!(
975        unsafe { ::std::ptr::addr_of!((*ptr).__flags) as usize - ptr as usize },
976        48usize,
977        concat!(
978            "Offset of field: ",
979            stringify!(__pthread_rwlock_arch_t),
980            "::",
981            stringify!(__flags)
982        )
983    );
984}
985#[repr(C)]
986#[derive(Copy, Clone)]
987pub struct __pthread_cond_s {
988    pub __wseq: __atomic_wide_counter,
989    pub __g1_start: __atomic_wide_counter,
990    pub __g_refs: [::std::os::raw::c_uint; 2usize],
991    pub __g_size: [::std::os::raw::c_uint; 2usize],
992    pub __g1_orig_size: ::std::os::raw::c_uint,
993    pub __wrefs: ::std::os::raw::c_uint,
994    pub __g_signals: [::std::os::raw::c_uint; 2usize],
995}
996#[test]
997fn bindgen_test_layout___pthread_cond_s() {
998    const UNINIT: ::std::mem::MaybeUninit<__pthread_cond_s> = ::std::mem::MaybeUninit::uninit();
999    let ptr = UNINIT.as_ptr();
1000    assert_eq!(
1001        ::std::mem::size_of::<__pthread_cond_s>(),
1002        48usize,
1003        concat!("Size of: ", stringify!(__pthread_cond_s))
1004    );
1005    assert_eq!(
1006        ::std::mem::align_of::<__pthread_cond_s>(),
1007        8usize,
1008        concat!("Alignment of ", stringify!(__pthread_cond_s))
1009    );
1010    assert_eq!(
1011        unsafe { ::std::ptr::addr_of!((*ptr).__wseq) as usize - ptr as usize },
1012        0usize,
1013        concat!(
1014            "Offset of field: ",
1015            stringify!(__pthread_cond_s),
1016            "::",
1017            stringify!(__wseq)
1018        )
1019    );
1020    assert_eq!(
1021        unsafe { ::std::ptr::addr_of!((*ptr).__g1_start) as usize - ptr as usize },
1022        8usize,
1023        concat!(
1024            "Offset of field: ",
1025            stringify!(__pthread_cond_s),
1026            "::",
1027            stringify!(__g1_start)
1028        )
1029    );
1030    assert_eq!(
1031        unsafe { ::std::ptr::addr_of!((*ptr).__g_refs) as usize - ptr as usize },
1032        16usize,
1033        concat!(
1034            "Offset of field: ",
1035            stringify!(__pthread_cond_s),
1036            "::",
1037            stringify!(__g_refs)
1038        )
1039    );
1040    assert_eq!(
1041        unsafe { ::std::ptr::addr_of!((*ptr).__g_size) as usize - ptr as usize },
1042        24usize,
1043        concat!(
1044            "Offset of field: ",
1045            stringify!(__pthread_cond_s),
1046            "::",
1047            stringify!(__g_size)
1048        )
1049    );
1050    assert_eq!(
1051        unsafe { ::std::ptr::addr_of!((*ptr).__g1_orig_size) as usize - ptr as usize },
1052        32usize,
1053        concat!(
1054            "Offset of field: ",
1055            stringify!(__pthread_cond_s),
1056            "::",
1057            stringify!(__g1_orig_size)
1058        )
1059    );
1060    assert_eq!(
1061        unsafe { ::std::ptr::addr_of!((*ptr).__wrefs) as usize - ptr as usize },
1062        36usize,
1063        concat!(
1064            "Offset of field: ",
1065            stringify!(__pthread_cond_s),
1066            "::",
1067            stringify!(__wrefs)
1068        )
1069    );
1070    assert_eq!(
1071        unsafe { ::std::ptr::addr_of!((*ptr).__g_signals) as usize - ptr as usize },
1072        40usize,
1073        concat!(
1074            "Offset of field: ",
1075            stringify!(__pthread_cond_s),
1076            "::",
1077            stringify!(__g_signals)
1078        )
1079    );
1080}
1081pub type __tss_t = ::std::os::raw::c_uint;
1082pub type __thrd_t = ::std::os::raw::c_ulong;
1083#[repr(C)]
1084#[derive(Debug, Copy, Clone)]
1085pub struct __once_flag {
1086    pub __data: ::std::os::raw::c_int,
1087}
1088#[test]
1089fn bindgen_test_layout___once_flag() {
1090    const UNINIT: ::std::mem::MaybeUninit<__once_flag> = ::std::mem::MaybeUninit::uninit();
1091    let ptr = UNINIT.as_ptr();
1092    assert_eq!(
1093        ::std::mem::size_of::<__once_flag>(),
1094        4usize,
1095        concat!("Size of: ", stringify!(__once_flag))
1096    );
1097    assert_eq!(
1098        ::std::mem::align_of::<__once_flag>(),
1099        4usize,
1100        concat!("Alignment of ", stringify!(__once_flag))
1101    );
1102    assert_eq!(
1103        unsafe { ::std::ptr::addr_of!((*ptr).__data) as usize - ptr as usize },
1104        0usize,
1105        concat!(
1106            "Offset of field: ",
1107            stringify!(__once_flag),
1108            "::",
1109            stringify!(__data)
1110        )
1111    );
1112}
1113pub type pthread_t = ::std::os::raw::c_ulong;
1114#[repr(C)]
1115#[derive(Copy, Clone)]
1116pub union pthread_mutexattr_t {
1117    pub __size: [::std::os::raw::c_char; 4usize],
1118    pub __align: ::std::os::raw::c_int,
1119}
1120#[test]
1121fn bindgen_test_layout_pthread_mutexattr_t() {
1122    const UNINIT: ::std::mem::MaybeUninit<pthread_mutexattr_t> = ::std::mem::MaybeUninit::uninit();
1123    let ptr = UNINIT.as_ptr();
1124    assert_eq!(
1125        ::std::mem::size_of::<pthread_mutexattr_t>(),
1126        4usize,
1127        concat!("Size of: ", stringify!(pthread_mutexattr_t))
1128    );
1129    assert_eq!(
1130        ::std::mem::align_of::<pthread_mutexattr_t>(),
1131        4usize,
1132        concat!("Alignment of ", stringify!(pthread_mutexattr_t))
1133    );
1134    assert_eq!(
1135        unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize },
1136        0usize,
1137        concat!(
1138            "Offset of field: ",
1139            stringify!(pthread_mutexattr_t),
1140            "::",
1141            stringify!(__size)
1142        )
1143    );
1144    assert_eq!(
1145        unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize },
1146        0usize,
1147        concat!(
1148            "Offset of field: ",
1149            stringify!(pthread_mutexattr_t),
1150            "::",
1151            stringify!(__align)
1152        )
1153    );
1154}
1155#[repr(C)]
1156#[derive(Copy, Clone)]
1157pub union pthread_condattr_t {
1158    pub __size: [::std::os::raw::c_char; 4usize],
1159    pub __align: ::std::os::raw::c_int,
1160}
1161#[test]
1162fn bindgen_test_layout_pthread_condattr_t() {
1163    const UNINIT: ::std::mem::MaybeUninit<pthread_condattr_t> = ::std::mem::MaybeUninit::uninit();
1164    let ptr = UNINIT.as_ptr();
1165    assert_eq!(
1166        ::std::mem::size_of::<pthread_condattr_t>(),
1167        4usize,
1168        concat!("Size of: ", stringify!(pthread_condattr_t))
1169    );
1170    assert_eq!(
1171        ::std::mem::align_of::<pthread_condattr_t>(),
1172        4usize,
1173        concat!("Alignment of ", stringify!(pthread_condattr_t))
1174    );
1175    assert_eq!(
1176        unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize },
1177        0usize,
1178        concat!(
1179            "Offset of field: ",
1180            stringify!(pthread_condattr_t),
1181            "::",
1182            stringify!(__size)
1183        )
1184    );
1185    assert_eq!(
1186        unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize },
1187        0usize,
1188        concat!(
1189            "Offset of field: ",
1190            stringify!(pthread_condattr_t),
1191            "::",
1192            stringify!(__align)
1193        )
1194    );
1195}
1196pub type pthread_key_t = ::std::os::raw::c_uint;
1197pub type pthread_once_t = ::std::os::raw::c_int;
1198#[repr(C)]
1199#[derive(Copy, Clone)]
1200pub union pthread_attr_t {
1201    pub __size: [::std::os::raw::c_char; 56usize],
1202    pub __align: ::std::os::raw::c_long,
1203}
1204#[test]
1205fn bindgen_test_layout_pthread_attr_t() {
1206    const UNINIT: ::std::mem::MaybeUninit<pthread_attr_t> = ::std::mem::MaybeUninit::uninit();
1207    let ptr = UNINIT.as_ptr();
1208    assert_eq!(
1209        ::std::mem::size_of::<pthread_attr_t>(),
1210        56usize,
1211        concat!("Size of: ", stringify!(pthread_attr_t))
1212    );
1213    assert_eq!(
1214        ::std::mem::align_of::<pthread_attr_t>(),
1215        8usize,
1216        concat!("Alignment of ", stringify!(pthread_attr_t))
1217    );
1218    assert_eq!(
1219        unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize },
1220        0usize,
1221        concat!(
1222            "Offset of field: ",
1223            stringify!(pthread_attr_t),
1224            "::",
1225            stringify!(__size)
1226        )
1227    );
1228    assert_eq!(
1229        unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize },
1230        0usize,
1231        concat!(
1232            "Offset of field: ",
1233            stringify!(pthread_attr_t),
1234            "::",
1235            stringify!(__align)
1236        )
1237    );
1238}
1239#[repr(C)]
1240#[derive(Copy, Clone)]
1241pub union pthread_mutex_t {
1242    pub __data: __pthread_mutex_s,
1243    pub __size: [::std::os::raw::c_char; 40usize],
1244    pub __align: ::std::os::raw::c_long,
1245}
1246#[test]
1247fn bindgen_test_layout_pthread_mutex_t() {
1248    const UNINIT: ::std::mem::MaybeUninit<pthread_mutex_t> = ::std::mem::MaybeUninit::uninit();
1249    let ptr = UNINIT.as_ptr();
1250    assert_eq!(
1251        ::std::mem::size_of::<pthread_mutex_t>(),
1252        40usize,
1253        concat!("Size of: ", stringify!(pthread_mutex_t))
1254    );
1255    assert_eq!(
1256        ::std::mem::align_of::<pthread_mutex_t>(),
1257        8usize,
1258        concat!("Alignment of ", stringify!(pthread_mutex_t))
1259    );
1260    assert_eq!(
1261        unsafe { ::std::ptr::addr_of!((*ptr).__data) as usize - ptr as usize },
1262        0usize,
1263        concat!(
1264            "Offset of field: ",
1265            stringify!(pthread_mutex_t),
1266            "::",
1267            stringify!(__data)
1268        )
1269    );
1270    assert_eq!(
1271        unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize },
1272        0usize,
1273        concat!(
1274            "Offset of field: ",
1275            stringify!(pthread_mutex_t),
1276            "::",
1277            stringify!(__size)
1278        )
1279    );
1280    assert_eq!(
1281        unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize },
1282        0usize,
1283        concat!(
1284            "Offset of field: ",
1285            stringify!(pthread_mutex_t),
1286            "::",
1287            stringify!(__align)
1288        )
1289    );
1290}
1291#[repr(C)]
1292#[derive(Copy, Clone)]
1293pub union pthread_cond_t {
1294    pub __data: __pthread_cond_s,
1295    pub __size: [::std::os::raw::c_char; 48usize],
1296    pub __align: ::std::os::raw::c_longlong,
1297}
1298#[test]
1299fn bindgen_test_layout_pthread_cond_t() {
1300    const UNINIT: ::std::mem::MaybeUninit<pthread_cond_t> = ::std::mem::MaybeUninit::uninit();
1301    let ptr = UNINIT.as_ptr();
1302    assert_eq!(
1303        ::std::mem::size_of::<pthread_cond_t>(),
1304        48usize,
1305        concat!("Size of: ", stringify!(pthread_cond_t))
1306    );
1307    assert_eq!(
1308        ::std::mem::align_of::<pthread_cond_t>(),
1309        8usize,
1310        concat!("Alignment of ", stringify!(pthread_cond_t))
1311    );
1312    assert_eq!(
1313        unsafe { ::std::ptr::addr_of!((*ptr).__data) as usize - ptr as usize },
1314        0usize,
1315        concat!(
1316            "Offset of field: ",
1317            stringify!(pthread_cond_t),
1318            "::",
1319            stringify!(__data)
1320        )
1321    );
1322    assert_eq!(
1323        unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize },
1324        0usize,
1325        concat!(
1326            "Offset of field: ",
1327            stringify!(pthread_cond_t),
1328            "::",
1329            stringify!(__size)
1330        )
1331    );
1332    assert_eq!(
1333        unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize },
1334        0usize,
1335        concat!(
1336            "Offset of field: ",
1337            stringify!(pthread_cond_t),
1338            "::",
1339            stringify!(__align)
1340        )
1341    );
1342}
1343#[repr(C)]
1344#[derive(Copy, Clone)]
1345pub union pthread_rwlock_t {
1346    pub __data: __pthread_rwlock_arch_t,
1347    pub __size: [::std::os::raw::c_char; 56usize],
1348    pub __align: ::std::os::raw::c_long,
1349}
1350#[test]
1351fn bindgen_test_layout_pthread_rwlock_t() {
1352    const UNINIT: ::std::mem::MaybeUninit<pthread_rwlock_t> = ::std::mem::MaybeUninit::uninit();
1353    let ptr = UNINIT.as_ptr();
1354    assert_eq!(
1355        ::std::mem::size_of::<pthread_rwlock_t>(),
1356        56usize,
1357        concat!("Size of: ", stringify!(pthread_rwlock_t))
1358    );
1359    assert_eq!(
1360        ::std::mem::align_of::<pthread_rwlock_t>(),
1361        8usize,
1362        concat!("Alignment of ", stringify!(pthread_rwlock_t))
1363    );
1364    assert_eq!(
1365        unsafe { ::std::ptr::addr_of!((*ptr).__data) as usize - ptr as usize },
1366        0usize,
1367        concat!(
1368            "Offset of field: ",
1369            stringify!(pthread_rwlock_t),
1370            "::",
1371            stringify!(__data)
1372        )
1373    );
1374    assert_eq!(
1375        unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize },
1376        0usize,
1377        concat!(
1378            "Offset of field: ",
1379            stringify!(pthread_rwlock_t),
1380            "::",
1381            stringify!(__size)
1382        )
1383    );
1384    assert_eq!(
1385        unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize },
1386        0usize,
1387        concat!(
1388            "Offset of field: ",
1389            stringify!(pthread_rwlock_t),
1390            "::",
1391            stringify!(__align)
1392        )
1393    );
1394}
1395#[repr(C)]
1396#[derive(Copy, Clone)]
1397pub union pthread_rwlockattr_t {
1398    pub __size: [::std::os::raw::c_char; 8usize],
1399    pub __align: ::std::os::raw::c_long,
1400}
1401#[test]
1402fn bindgen_test_layout_pthread_rwlockattr_t() {
1403    const UNINIT: ::std::mem::MaybeUninit<pthread_rwlockattr_t> = ::std::mem::MaybeUninit::uninit();
1404    let ptr = UNINIT.as_ptr();
1405    assert_eq!(
1406        ::std::mem::size_of::<pthread_rwlockattr_t>(),
1407        8usize,
1408        concat!("Size of: ", stringify!(pthread_rwlockattr_t))
1409    );
1410    assert_eq!(
1411        ::std::mem::align_of::<pthread_rwlockattr_t>(),
1412        8usize,
1413        concat!("Alignment of ", stringify!(pthread_rwlockattr_t))
1414    );
1415    assert_eq!(
1416        unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize },
1417        0usize,
1418        concat!(
1419            "Offset of field: ",
1420            stringify!(pthread_rwlockattr_t),
1421            "::",
1422            stringify!(__size)
1423        )
1424    );
1425    assert_eq!(
1426        unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize },
1427        0usize,
1428        concat!(
1429            "Offset of field: ",
1430            stringify!(pthread_rwlockattr_t),
1431            "::",
1432            stringify!(__align)
1433        )
1434    );
1435}
1436pub type pthread_spinlock_t = ::std::os::raw::c_int;
1437#[repr(C)]
1438#[derive(Copy, Clone)]
1439pub union pthread_barrier_t {
1440    pub __size: [::std::os::raw::c_char; 32usize],
1441    pub __align: ::std::os::raw::c_long,
1442}
1443#[test]
1444fn bindgen_test_layout_pthread_barrier_t() {
1445    const UNINIT: ::std::mem::MaybeUninit<pthread_barrier_t> = ::std::mem::MaybeUninit::uninit();
1446    let ptr = UNINIT.as_ptr();
1447    assert_eq!(
1448        ::std::mem::size_of::<pthread_barrier_t>(),
1449        32usize,
1450        concat!("Size of: ", stringify!(pthread_barrier_t))
1451    );
1452    assert_eq!(
1453        ::std::mem::align_of::<pthread_barrier_t>(),
1454        8usize,
1455        concat!("Alignment of ", stringify!(pthread_barrier_t))
1456    );
1457    assert_eq!(
1458        unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize },
1459        0usize,
1460        concat!(
1461            "Offset of field: ",
1462            stringify!(pthread_barrier_t),
1463            "::",
1464            stringify!(__size)
1465        )
1466    );
1467    assert_eq!(
1468        unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize },
1469        0usize,
1470        concat!(
1471            "Offset of field: ",
1472            stringify!(pthread_barrier_t),
1473            "::",
1474            stringify!(__align)
1475        )
1476    );
1477}
1478#[repr(C)]
1479#[derive(Copy, Clone)]
1480pub union pthread_barrierattr_t {
1481    pub __size: [::std::os::raw::c_char; 4usize],
1482    pub __align: ::std::os::raw::c_int,
1483}
1484#[test]
1485fn bindgen_test_layout_pthread_barrierattr_t() {
1486    const UNINIT: ::std::mem::MaybeUninit<pthread_barrierattr_t> =
1487        ::std::mem::MaybeUninit::uninit();
1488    let ptr = UNINIT.as_ptr();
1489    assert_eq!(
1490        ::std::mem::size_of::<pthread_barrierattr_t>(),
1491        4usize,
1492        concat!("Size of: ", stringify!(pthread_barrierattr_t))
1493    );
1494    assert_eq!(
1495        ::std::mem::align_of::<pthread_barrierattr_t>(),
1496        4usize,
1497        concat!("Alignment of ", stringify!(pthread_barrierattr_t))
1498    );
1499    assert_eq!(
1500        unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize },
1501        0usize,
1502        concat!(
1503            "Offset of field: ",
1504            stringify!(pthread_barrierattr_t),
1505            "::",
1506            stringify!(__size)
1507        )
1508    );
1509    assert_eq!(
1510        unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize },
1511        0usize,
1512        concat!(
1513            "Offset of field: ",
1514            stringify!(pthread_barrierattr_t),
1515            "::",
1516            stringify!(__align)
1517        )
1518    );
1519}
1520pub type int_least8_t = __int_least8_t;
1521pub type int_least16_t = __int_least16_t;
1522pub type int_least32_t = __int_least32_t;
1523pub type int_least64_t = __int_least64_t;
1524pub type uint_least8_t = __uint_least8_t;
1525pub type uint_least16_t = __uint_least16_t;
1526pub type uint_least32_t = __uint_least32_t;
1527pub type uint_least64_t = __uint_least64_t;
1528pub type int_fast8_t = ::std::os::raw::c_schar;
1529pub type int_fast16_t = ::std::os::raw::c_long;
1530pub type int_fast32_t = ::std::os::raw::c_long;
1531pub type int_fast64_t = ::std::os::raw::c_long;
1532pub type uint_fast8_t = ::std::os::raw::c_uchar;
1533pub type uint_fast16_t = ::std::os::raw::c_ulong;
1534pub type uint_fast32_t = ::std::os::raw::c_ulong;
1535pub type uint_fast64_t = ::std::os::raw::c_ulong;
1536pub type intmax_t = __intmax_t;
1537pub type uintmax_t = __uintmax_t;
1538#[repr(C)]
1539#[derive(Debug, Copy, Clone)]
1540pub struct oc_vpn_proto {
1541    pub name: *const ::std::os::raw::c_char,
1542    pub pretty_name: *const ::std::os::raw::c_char,
1543    pub description: *const ::std::os::raw::c_char,
1544    pub flags: ::std::os::raw::c_uint,
1545}
1546#[test]
1547fn bindgen_test_layout_oc_vpn_proto() {
1548    const UNINIT: ::std::mem::MaybeUninit<oc_vpn_proto> = ::std::mem::MaybeUninit::uninit();
1549    let ptr = UNINIT.as_ptr();
1550    assert_eq!(
1551        ::std::mem::size_of::<oc_vpn_proto>(),
1552        32usize,
1553        concat!("Size of: ", stringify!(oc_vpn_proto))
1554    );
1555    assert_eq!(
1556        ::std::mem::align_of::<oc_vpn_proto>(),
1557        8usize,
1558        concat!("Alignment of ", stringify!(oc_vpn_proto))
1559    );
1560    assert_eq!(
1561        unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize },
1562        0usize,
1563        concat!(
1564            "Offset of field: ",
1565            stringify!(oc_vpn_proto),
1566            "::",
1567            stringify!(name)
1568        )
1569    );
1570    assert_eq!(
1571        unsafe { ::std::ptr::addr_of!((*ptr).pretty_name) as usize - ptr as usize },
1572        8usize,
1573        concat!(
1574            "Offset of field: ",
1575            stringify!(oc_vpn_proto),
1576            "::",
1577            stringify!(pretty_name)
1578        )
1579    );
1580    assert_eq!(
1581        unsafe { ::std::ptr::addr_of!((*ptr).description) as usize - ptr as usize },
1582        16usize,
1583        concat!(
1584            "Offset of field: ",
1585            stringify!(oc_vpn_proto),
1586            "::",
1587            stringify!(description)
1588        )
1589    );
1590    assert_eq!(
1591        unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize },
1592        24usize,
1593        concat!(
1594            "Offset of field: ",
1595            stringify!(oc_vpn_proto),
1596            "::",
1597            stringify!(flags)
1598        )
1599    );
1600}
1601#[repr(C)]
1602#[derive(Debug, Copy, Clone)]
1603pub struct oc_form_opt {
1604    pub next: *mut oc_form_opt,
1605    pub type_: ::std::os::raw::c_int,
1606    pub name: *mut ::std::os::raw::c_char,
1607    pub label: *mut ::std::os::raw::c_char,
1608    pub _value: *mut ::std::os::raw::c_char,
1609    pub flags: ::std::os::raw::c_uint,
1610    pub reserved: *mut ::std::os::raw::c_void,
1611}
1612#[test]
1613fn bindgen_test_layout_oc_form_opt() {
1614    const UNINIT: ::std::mem::MaybeUninit<oc_form_opt> = ::std::mem::MaybeUninit::uninit();
1615    let ptr = UNINIT.as_ptr();
1616    assert_eq!(
1617        ::std::mem::size_of::<oc_form_opt>(),
1618        56usize,
1619        concat!("Size of: ", stringify!(oc_form_opt))
1620    );
1621    assert_eq!(
1622        ::std::mem::align_of::<oc_form_opt>(),
1623        8usize,
1624        concat!("Alignment of ", stringify!(oc_form_opt))
1625    );
1626    assert_eq!(
1627        unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize },
1628        0usize,
1629        concat!(
1630            "Offset of field: ",
1631            stringify!(oc_form_opt),
1632            "::",
1633            stringify!(next)
1634        )
1635    );
1636    assert_eq!(
1637        unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize },
1638        8usize,
1639        concat!(
1640            "Offset of field: ",
1641            stringify!(oc_form_opt),
1642            "::",
1643            stringify!(type_)
1644        )
1645    );
1646    assert_eq!(
1647        unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize },
1648        16usize,
1649        concat!(
1650            "Offset of field: ",
1651            stringify!(oc_form_opt),
1652            "::",
1653            stringify!(name)
1654        )
1655    );
1656    assert_eq!(
1657        unsafe { ::std::ptr::addr_of!((*ptr).label) as usize - ptr as usize },
1658        24usize,
1659        concat!(
1660            "Offset of field: ",
1661            stringify!(oc_form_opt),
1662            "::",
1663            stringify!(label)
1664        )
1665    );
1666    assert_eq!(
1667        unsafe { ::std::ptr::addr_of!((*ptr)._value) as usize - ptr as usize },
1668        32usize,
1669        concat!(
1670            "Offset of field: ",
1671            stringify!(oc_form_opt),
1672            "::",
1673            stringify!(_value)
1674        )
1675    );
1676    assert_eq!(
1677        unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize },
1678        40usize,
1679        concat!(
1680            "Offset of field: ",
1681            stringify!(oc_form_opt),
1682            "::",
1683            stringify!(flags)
1684        )
1685    );
1686    assert_eq!(
1687        unsafe { ::std::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize },
1688        48usize,
1689        concat!(
1690            "Offset of field: ",
1691            stringify!(oc_form_opt),
1692            "::",
1693            stringify!(reserved)
1694        )
1695    );
1696}
1697extern "C" {
1698    pub fn openconnect_set_option_value(
1699        opt: *mut oc_form_opt,
1700        value: *const ::std::os::raw::c_char,
1701    ) -> ::std::os::raw::c_int;
1702}
1703#[repr(C)]
1704#[derive(Debug, Copy, Clone)]
1705pub struct oc_choice {
1706    pub name: *mut ::std::os::raw::c_char,
1707    pub label: *mut ::std::os::raw::c_char,
1708    pub auth_type: *mut ::std::os::raw::c_char,
1709    pub override_name: *mut ::std::os::raw::c_char,
1710    pub override_label: *mut ::std::os::raw::c_char,
1711}
1712#[test]
1713fn bindgen_test_layout_oc_choice() {
1714    const UNINIT: ::std::mem::MaybeUninit<oc_choice> = ::std::mem::MaybeUninit::uninit();
1715    let ptr = UNINIT.as_ptr();
1716    assert_eq!(
1717        ::std::mem::size_of::<oc_choice>(),
1718        40usize,
1719        concat!("Size of: ", stringify!(oc_choice))
1720    );
1721    assert_eq!(
1722        ::std::mem::align_of::<oc_choice>(),
1723        8usize,
1724        concat!("Alignment of ", stringify!(oc_choice))
1725    );
1726    assert_eq!(
1727        unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize },
1728        0usize,
1729        concat!(
1730            "Offset of field: ",
1731            stringify!(oc_choice),
1732            "::",
1733            stringify!(name)
1734        )
1735    );
1736    assert_eq!(
1737        unsafe { ::std::ptr::addr_of!((*ptr).label) as usize - ptr as usize },
1738        8usize,
1739        concat!(
1740            "Offset of field: ",
1741            stringify!(oc_choice),
1742            "::",
1743            stringify!(label)
1744        )
1745    );
1746    assert_eq!(
1747        unsafe { ::std::ptr::addr_of!((*ptr).auth_type) as usize - ptr as usize },
1748        16usize,
1749        concat!(
1750            "Offset of field: ",
1751            stringify!(oc_choice),
1752            "::",
1753            stringify!(auth_type)
1754        )
1755    );
1756    assert_eq!(
1757        unsafe { ::std::ptr::addr_of!((*ptr).override_name) as usize - ptr as usize },
1758        24usize,
1759        concat!(
1760            "Offset of field: ",
1761            stringify!(oc_choice),
1762            "::",
1763            stringify!(override_name)
1764        )
1765    );
1766    assert_eq!(
1767        unsafe { ::std::ptr::addr_of!((*ptr).override_label) as usize - ptr as usize },
1768        32usize,
1769        concat!(
1770            "Offset of field: ",
1771            stringify!(oc_choice),
1772            "::",
1773            stringify!(override_label)
1774        )
1775    );
1776}
1777#[repr(C)]
1778#[derive(Debug, Copy, Clone)]
1779pub struct oc_form_opt_select {
1780    pub form: oc_form_opt,
1781    pub nr_choices: ::std::os::raw::c_int,
1782    pub choices: *mut *mut oc_choice,
1783}
1784#[test]
1785fn bindgen_test_layout_oc_form_opt_select() {
1786    const UNINIT: ::std::mem::MaybeUninit<oc_form_opt_select> = ::std::mem::MaybeUninit::uninit();
1787    let ptr = UNINIT.as_ptr();
1788    assert_eq!(
1789        ::std::mem::size_of::<oc_form_opt_select>(),
1790        72usize,
1791        concat!("Size of: ", stringify!(oc_form_opt_select))
1792    );
1793    assert_eq!(
1794        ::std::mem::align_of::<oc_form_opt_select>(),
1795        8usize,
1796        concat!("Alignment of ", stringify!(oc_form_opt_select))
1797    );
1798    assert_eq!(
1799        unsafe { ::std::ptr::addr_of!((*ptr).form) as usize - ptr as usize },
1800        0usize,
1801        concat!(
1802            "Offset of field: ",
1803            stringify!(oc_form_opt_select),
1804            "::",
1805            stringify!(form)
1806        )
1807    );
1808    assert_eq!(
1809        unsafe { ::std::ptr::addr_of!((*ptr).nr_choices) as usize - ptr as usize },
1810        56usize,
1811        concat!(
1812            "Offset of field: ",
1813            stringify!(oc_form_opt_select),
1814            "::",
1815            stringify!(nr_choices)
1816        )
1817    );
1818    assert_eq!(
1819        unsafe { ::std::ptr::addr_of!((*ptr).choices) as usize - ptr as usize },
1820        64usize,
1821        concat!(
1822            "Offset of field: ",
1823            stringify!(oc_form_opt_select),
1824            "::",
1825            stringify!(choices)
1826        )
1827    );
1828}
1829#[repr(C)]
1830#[derive(Debug, Copy, Clone)]
1831pub struct oc_auth_form {
1832    pub banner: *mut ::std::os::raw::c_char,
1833    pub message: *mut ::std::os::raw::c_char,
1834    pub error: *mut ::std::os::raw::c_char,
1835    pub auth_id: *mut ::std::os::raw::c_char,
1836    pub method: *mut ::std::os::raw::c_char,
1837    pub action: *mut ::std::os::raw::c_char,
1838    pub opts: *mut oc_form_opt,
1839    pub authgroup_opt: *mut oc_form_opt_select,
1840    pub authgroup_selection: ::std::os::raw::c_int,
1841}
1842#[test]
1843fn bindgen_test_layout_oc_auth_form() {
1844    const UNINIT: ::std::mem::MaybeUninit<oc_auth_form> = ::std::mem::MaybeUninit::uninit();
1845    let ptr = UNINIT.as_ptr();
1846    assert_eq!(
1847        ::std::mem::size_of::<oc_auth_form>(),
1848        72usize,
1849        concat!("Size of: ", stringify!(oc_auth_form))
1850    );
1851    assert_eq!(
1852        ::std::mem::align_of::<oc_auth_form>(),
1853        8usize,
1854        concat!("Alignment of ", stringify!(oc_auth_form))
1855    );
1856    assert_eq!(
1857        unsafe { ::std::ptr::addr_of!((*ptr).banner) as usize - ptr as usize },
1858        0usize,
1859        concat!(
1860            "Offset of field: ",
1861            stringify!(oc_auth_form),
1862            "::",
1863            stringify!(banner)
1864        )
1865    );
1866    assert_eq!(
1867        unsafe { ::std::ptr::addr_of!((*ptr).message) as usize - ptr as usize },
1868        8usize,
1869        concat!(
1870            "Offset of field: ",
1871            stringify!(oc_auth_form),
1872            "::",
1873            stringify!(message)
1874        )
1875    );
1876    assert_eq!(
1877        unsafe { ::std::ptr::addr_of!((*ptr).error) as usize - ptr as usize },
1878        16usize,
1879        concat!(
1880            "Offset of field: ",
1881            stringify!(oc_auth_form),
1882            "::",
1883            stringify!(error)
1884        )
1885    );
1886    assert_eq!(
1887        unsafe { ::std::ptr::addr_of!((*ptr).auth_id) as usize - ptr as usize },
1888        24usize,
1889        concat!(
1890            "Offset of field: ",
1891            stringify!(oc_auth_form),
1892            "::",
1893            stringify!(auth_id)
1894        )
1895    );
1896    assert_eq!(
1897        unsafe { ::std::ptr::addr_of!((*ptr).method) as usize - ptr as usize },
1898        32usize,
1899        concat!(
1900            "Offset of field: ",
1901            stringify!(oc_auth_form),
1902            "::",
1903            stringify!(method)
1904        )
1905    );
1906    assert_eq!(
1907        unsafe { ::std::ptr::addr_of!((*ptr).action) as usize - ptr as usize },
1908        40usize,
1909        concat!(
1910            "Offset of field: ",
1911            stringify!(oc_auth_form),
1912            "::",
1913            stringify!(action)
1914        )
1915    );
1916    assert_eq!(
1917        unsafe { ::std::ptr::addr_of!((*ptr).opts) as usize - ptr as usize },
1918        48usize,
1919        concat!(
1920            "Offset of field: ",
1921            stringify!(oc_auth_form),
1922            "::",
1923            stringify!(opts)
1924        )
1925    );
1926    assert_eq!(
1927        unsafe { ::std::ptr::addr_of!((*ptr).authgroup_opt) as usize - ptr as usize },
1928        56usize,
1929        concat!(
1930            "Offset of field: ",
1931            stringify!(oc_auth_form),
1932            "::",
1933            stringify!(authgroup_opt)
1934        )
1935    );
1936    assert_eq!(
1937        unsafe { ::std::ptr::addr_of!((*ptr).authgroup_selection) as usize - ptr as usize },
1938        64usize,
1939        concat!(
1940            "Offset of field: ",
1941            stringify!(oc_auth_form),
1942            "::",
1943            stringify!(authgroup_selection)
1944        )
1945    );
1946}
1947#[repr(C)]
1948#[derive(Debug, Copy, Clone)]
1949pub struct oc_split_include {
1950    pub route: *const ::std::os::raw::c_char,
1951    pub next: *mut oc_split_include,
1952}
1953#[test]
1954fn bindgen_test_layout_oc_split_include() {
1955    const UNINIT: ::std::mem::MaybeUninit<oc_split_include> = ::std::mem::MaybeUninit::uninit();
1956    let ptr = UNINIT.as_ptr();
1957    assert_eq!(
1958        ::std::mem::size_of::<oc_split_include>(),
1959        16usize,
1960        concat!("Size of: ", stringify!(oc_split_include))
1961    );
1962    assert_eq!(
1963        ::std::mem::align_of::<oc_split_include>(),
1964        8usize,
1965        concat!("Alignment of ", stringify!(oc_split_include))
1966    );
1967    assert_eq!(
1968        unsafe { ::std::ptr::addr_of!((*ptr).route) as usize - ptr as usize },
1969        0usize,
1970        concat!(
1971            "Offset of field: ",
1972            stringify!(oc_split_include),
1973            "::",
1974            stringify!(route)
1975        )
1976    );
1977    assert_eq!(
1978        unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize },
1979        8usize,
1980        concat!(
1981            "Offset of field: ",
1982            stringify!(oc_split_include),
1983            "::",
1984            stringify!(next)
1985        )
1986    );
1987}
1988#[repr(C)]
1989#[derive(Debug, Copy, Clone)]
1990pub struct oc_ip_info {
1991    pub addr: *const ::std::os::raw::c_char,
1992    pub netmask: *const ::std::os::raw::c_char,
1993    pub addr6: *const ::std::os::raw::c_char,
1994    pub netmask6: *const ::std::os::raw::c_char,
1995    pub dns: [*const ::std::os::raw::c_char; 3usize],
1996    pub nbns: [*const ::std::os::raw::c_char; 3usize],
1997    pub domain: *const ::std::os::raw::c_char,
1998    pub proxy_pac: *const ::std::os::raw::c_char,
1999    pub mtu: ::std::os::raw::c_int,
2000    pub split_dns: *mut oc_split_include,
2001    pub split_includes: *mut oc_split_include,
2002    pub split_excludes: *mut oc_split_include,
2003    pub gateway_addr: *mut ::std::os::raw::c_char,
2004}
2005#[test]
2006fn bindgen_test_layout_oc_ip_info() {
2007    const UNINIT: ::std::mem::MaybeUninit<oc_ip_info> = ::std::mem::MaybeUninit::uninit();
2008    let ptr = UNINIT.as_ptr();
2009    assert_eq!(
2010        ::std::mem::size_of::<oc_ip_info>(),
2011        136usize,
2012        concat!("Size of: ", stringify!(oc_ip_info))
2013    );
2014    assert_eq!(
2015        ::std::mem::align_of::<oc_ip_info>(),
2016        8usize,
2017        concat!("Alignment of ", stringify!(oc_ip_info))
2018    );
2019    assert_eq!(
2020        unsafe { ::std::ptr::addr_of!((*ptr).addr) as usize - ptr as usize },
2021        0usize,
2022        concat!(
2023            "Offset of field: ",
2024            stringify!(oc_ip_info),
2025            "::",
2026            stringify!(addr)
2027        )
2028    );
2029    assert_eq!(
2030        unsafe { ::std::ptr::addr_of!((*ptr).netmask) as usize - ptr as usize },
2031        8usize,
2032        concat!(
2033            "Offset of field: ",
2034            stringify!(oc_ip_info),
2035            "::",
2036            stringify!(netmask)
2037        )
2038    );
2039    assert_eq!(
2040        unsafe { ::std::ptr::addr_of!((*ptr).addr6) as usize - ptr as usize },
2041        16usize,
2042        concat!(
2043            "Offset of field: ",
2044            stringify!(oc_ip_info),
2045            "::",
2046            stringify!(addr6)
2047        )
2048    );
2049    assert_eq!(
2050        unsafe { ::std::ptr::addr_of!((*ptr).netmask6) as usize - ptr as usize },
2051        24usize,
2052        concat!(
2053            "Offset of field: ",
2054            stringify!(oc_ip_info),
2055            "::",
2056            stringify!(netmask6)
2057        )
2058    );
2059    assert_eq!(
2060        unsafe { ::std::ptr::addr_of!((*ptr).dns) as usize - ptr as usize },
2061        32usize,
2062        concat!(
2063            "Offset of field: ",
2064            stringify!(oc_ip_info),
2065            "::",
2066            stringify!(dns)
2067        )
2068    );
2069    assert_eq!(
2070        unsafe { ::std::ptr::addr_of!((*ptr).nbns) as usize - ptr as usize },
2071        56usize,
2072        concat!(
2073            "Offset of field: ",
2074            stringify!(oc_ip_info),
2075            "::",
2076            stringify!(nbns)
2077        )
2078    );
2079    assert_eq!(
2080        unsafe { ::std::ptr::addr_of!((*ptr).domain) as usize - ptr as usize },
2081        80usize,
2082        concat!(
2083            "Offset of field: ",
2084            stringify!(oc_ip_info),
2085            "::",
2086            stringify!(domain)
2087        )
2088    );
2089    assert_eq!(
2090        unsafe { ::std::ptr::addr_of!((*ptr).proxy_pac) as usize - ptr as usize },
2091        88usize,
2092        concat!(
2093            "Offset of field: ",
2094            stringify!(oc_ip_info),
2095            "::",
2096            stringify!(proxy_pac)
2097        )
2098    );
2099    assert_eq!(
2100        unsafe { ::std::ptr::addr_of!((*ptr).mtu) as usize - ptr as usize },
2101        96usize,
2102        concat!(
2103            "Offset of field: ",
2104            stringify!(oc_ip_info),
2105            "::",
2106            stringify!(mtu)
2107        )
2108    );
2109    assert_eq!(
2110        unsafe { ::std::ptr::addr_of!((*ptr).split_dns) as usize - ptr as usize },
2111        104usize,
2112        concat!(
2113            "Offset of field: ",
2114            stringify!(oc_ip_info),
2115            "::",
2116            stringify!(split_dns)
2117        )
2118    );
2119    assert_eq!(
2120        unsafe { ::std::ptr::addr_of!((*ptr).split_includes) as usize - ptr as usize },
2121        112usize,
2122        concat!(
2123            "Offset of field: ",
2124            stringify!(oc_ip_info),
2125            "::",
2126            stringify!(split_includes)
2127        )
2128    );
2129    assert_eq!(
2130        unsafe { ::std::ptr::addr_of!((*ptr).split_excludes) as usize - ptr as usize },
2131        120usize,
2132        concat!(
2133            "Offset of field: ",
2134            stringify!(oc_ip_info),
2135            "::",
2136            stringify!(split_excludes)
2137        )
2138    );
2139    assert_eq!(
2140        unsafe { ::std::ptr::addr_of!((*ptr).gateway_addr) as usize - ptr as usize },
2141        128usize,
2142        concat!(
2143            "Offset of field: ",
2144            stringify!(oc_ip_info),
2145            "::",
2146            stringify!(gateway_addr)
2147        )
2148    );
2149}
2150#[repr(C)]
2151#[derive(Debug, Copy, Clone)]
2152pub struct oc_vpn_option {
2153    pub option: *mut ::std::os::raw::c_char,
2154    pub value: *mut ::std::os::raw::c_char,
2155    pub next: *mut oc_vpn_option,
2156}
2157#[test]
2158fn bindgen_test_layout_oc_vpn_option() {
2159    const UNINIT: ::std::mem::MaybeUninit<oc_vpn_option> = ::std::mem::MaybeUninit::uninit();
2160    let ptr = UNINIT.as_ptr();
2161    assert_eq!(
2162        ::std::mem::size_of::<oc_vpn_option>(),
2163        24usize,
2164        concat!("Size of: ", stringify!(oc_vpn_option))
2165    );
2166    assert_eq!(
2167        ::std::mem::align_of::<oc_vpn_option>(),
2168        8usize,
2169        concat!("Alignment of ", stringify!(oc_vpn_option))
2170    );
2171    assert_eq!(
2172        unsafe { ::std::ptr::addr_of!((*ptr).option) as usize - ptr as usize },
2173        0usize,
2174        concat!(
2175            "Offset of field: ",
2176            stringify!(oc_vpn_option),
2177            "::",
2178            stringify!(option)
2179        )
2180    );
2181    assert_eq!(
2182        unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize },
2183        8usize,
2184        concat!(
2185            "Offset of field: ",
2186            stringify!(oc_vpn_option),
2187            "::",
2188            stringify!(value)
2189        )
2190    );
2191    assert_eq!(
2192        unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize },
2193        16usize,
2194        concat!(
2195            "Offset of field: ",
2196            stringify!(oc_vpn_option),
2197            "::",
2198            stringify!(next)
2199        )
2200    );
2201}
2202#[repr(C)]
2203#[derive(Debug, Copy, Clone)]
2204pub struct oc_stats {
2205    pub tx_pkts: u64,
2206    pub tx_bytes: u64,
2207    pub rx_pkts: u64,
2208    pub rx_bytes: u64,
2209}
2210#[test]
2211fn bindgen_test_layout_oc_stats() {
2212    const UNINIT: ::std::mem::MaybeUninit<oc_stats> = ::std::mem::MaybeUninit::uninit();
2213    let ptr = UNINIT.as_ptr();
2214    assert_eq!(
2215        ::std::mem::size_of::<oc_stats>(),
2216        32usize,
2217        concat!("Size of: ", stringify!(oc_stats))
2218    );
2219    assert_eq!(
2220        ::std::mem::align_of::<oc_stats>(),
2221        8usize,
2222        concat!("Alignment of ", stringify!(oc_stats))
2223    );
2224    assert_eq!(
2225        unsafe { ::std::ptr::addr_of!((*ptr).tx_pkts) as usize - ptr as usize },
2226        0usize,
2227        concat!(
2228            "Offset of field: ",
2229            stringify!(oc_stats),
2230            "::",
2231            stringify!(tx_pkts)
2232        )
2233    );
2234    assert_eq!(
2235        unsafe { ::std::ptr::addr_of!((*ptr).tx_bytes) as usize - ptr as usize },
2236        8usize,
2237        concat!(
2238            "Offset of field: ",
2239            stringify!(oc_stats),
2240            "::",
2241            stringify!(tx_bytes)
2242        )
2243    );
2244    assert_eq!(
2245        unsafe { ::std::ptr::addr_of!((*ptr).rx_pkts) as usize - ptr as usize },
2246        16usize,
2247        concat!(
2248            "Offset of field: ",
2249            stringify!(oc_stats),
2250            "::",
2251            stringify!(rx_pkts)
2252        )
2253    );
2254    assert_eq!(
2255        unsafe { ::std::ptr::addr_of!((*ptr).rx_bytes) as usize - ptr as usize },
2256        24usize,
2257        concat!(
2258            "Offset of field: ",
2259            stringify!(oc_stats),
2260            "::",
2261            stringify!(rx_bytes)
2262        )
2263    );
2264}
2265#[repr(C)]
2266#[derive(Debug, Copy, Clone)]
2267pub struct oc_cert {
2268    pub der_len: ::std::os::raw::c_int,
2269    pub der_data: *mut ::std::os::raw::c_uchar,
2270    pub reserved: *mut ::std::os::raw::c_void,
2271}
2272#[test]
2273fn bindgen_test_layout_oc_cert() {
2274    const UNINIT: ::std::mem::MaybeUninit<oc_cert> = ::std::mem::MaybeUninit::uninit();
2275    let ptr = UNINIT.as_ptr();
2276    assert_eq!(
2277        ::std::mem::size_of::<oc_cert>(),
2278        24usize,
2279        concat!("Size of: ", stringify!(oc_cert))
2280    );
2281    assert_eq!(
2282        ::std::mem::align_of::<oc_cert>(),
2283        8usize,
2284        concat!("Alignment of ", stringify!(oc_cert))
2285    );
2286    assert_eq!(
2287        unsafe { ::std::ptr::addr_of!((*ptr).der_len) as usize - ptr as usize },
2288        0usize,
2289        concat!(
2290            "Offset of field: ",
2291            stringify!(oc_cert),
2292            "::",
2293            stringify!(der_len)
2294        )
2295    );
2296    assert_eq!(
2297        unsafe { ::std::ptr::addr_of!((*ptr).der_data) as usize - ptr as usize },
2298        8usize,
2299        concat!(
2300            "Offset of field: ",
2301            stringify!(oc_cert),
2302            "::",
2303            stringify!(der_data)
2304        )
2305    );
2306    assert_eq!(
2307        unsafe { ::std::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize },
2308        16usize,
2309        concat!(
2310            "Offset of field: ",
2311            stringify!(oc_cert),
2312            "::",
2313            stringify!(reserved)
2314        )
2315    );
2316}
2317#[repr(C)]
2318#[derive(Debug, Copy, Clone)]
2319pub struct oc_webview_result {
2320    pub uri: *const ::std::os::raw::c_char,
2321    pub cookies: *mut *const ::std::os::raw::c_char,
2322    pub headers: *mut *const ::std::os::raw::c_char,
2323}
2324#[test]
2325fn bindgen_test_layout_oc_webview_result() {
2326    const UNINIT: ::std::mem::MaybeUninit<oc_webview_result> = ::std::mem::MaybeUninit::uninit();
2327    let ptr = UNINIT.as_ptr();
2328    assert_eq!(
2329        ::std::mem::size_of::<oc_webview_result>(),
2330        24usize,
2331        concat!("Size of: ", stringify!(oc_webview_result))
2332    );
2333    assert_eq!(
2334        ::std::mem::align_of::<oc_webview_result>(),
2335        8usize,
2336        concat!("Alignment of ", stringify!(oc_webview_result))
2337    );
2338    assert_eq!(
2339        unsafe { ::std::ptr::addr_of!((*ptr).uri) as usize - ptr as usize },
2340        0usize,
2341        concat!(
2342            "Offset of field: ",
2343            stringify!(oc_webview_result),
2344            "::",
2345            stringify!(uri)
2346        )
2347    );
2348    assert_eq!(
2349        unsafe { ::std::ptr::addr_of!((*ptr).cookies) as usize - ptr as usize },
2350        8usize,
2351        concat!(
2352            "Offset of field: ",
2353            stringify!(oc_webview_result),
2354            "::",
2355            stringify!(cookies)
2356        )
2357    );
2358    assert_eq!(
2359        unsafe { ::std::ptr::addr_of!((*ptr).headers) as usize - ptr as usize },
2360        16usize,
2361        concat!(
2362            "Offset of field: ",
2363            stringify!(oc_webview_result),
2364            "::",
2365            stringify!(headers)
2366        )
2367    );
2368}
2369#[repr(C)]
2370#[derive(Debug, Copy, Clone)]
2371pub struct openconnect_info {
2372    _unused: [u8; 0],
2373}
2374pub const oc_token_mode_t_OC_TOKEN_MODE_NONE: oc_token_mode_t = 0;
2375pub const oc_token_mode_t_OC_TOKEN_MODE_STOKEN: oc_token_mode_t = 1;
2376pub const oc_token_mode_t_OC_TOKEN_MODE_TOTP: oc_token_mode_t = 2;
2377pub const oc_token_mode_t_OC_TOKEN_MODE_HOTP: oc_token_mode_t = 3;
2378pub const oc_token_mode_t_OC_TOKEN_MODE_YUBIOATH: oc_token_mode_t = 4;
2379pub const oc_token_mode_t_OC_TOKEN_MODE_OIDC: oc_token_mode_t = 5;
2380pub type oc_token_mode_t = ::std::os::raw::c_uint;
2381pub const oc_compression_mode_t_OC_COMPRESSION_MODE_NONE: oc_compression_mode_t = 0;
2382pub const oc_compression_mode_t_OC_COMPRESSION_MODE_STATELESS: oc_compression_mode_t = 1;
2383pub const oc_compression_mode_t_OC_COMPRESSION_MODE_ALL: oc_compression_mode_t = 2;
2384pub type oc_compression_mode_t = ::std::os::raw::c_uint;
2385extern "C" {
2386    pub fn openconnect_set_csd_environ(
2387        vpninfo: *mut openconnect_info,
2388        name: *const ::std::os::raw::c_char,
2389        value: *const ::std::os::raw::c_char,
2390    ) -> ::std::os::raw::c_int;
2391}
2392extern "C" {
2393    pub fn openconnect_get_peer_cert_hash(
2394        vpninfo: *mut openconnect_info,
2395    ) -> *const ::std::os::raw::c_char;
2396}
2397extern "C" {
2398    pub fn openconnect_check_peer_cert_hash(
2399        vpninfo: *mut openconnect_info,
2400        old_hash: *const ::std::os::raw::c_char,
2401    ) -> ::std::os::raw::c_int;
2402}
2403extern "C" {
2404    pub fn openconnect_get_peer_cert_details(
2405        vpninfo: *mut openconnect_info,
2406    ) -> *mut ::std::os::raw::c_char;
2407}
2408extern "C" {
2409    pub fn openconnect_get_peer_cert_DER(
2410        vpninfo: *mut openconnect_info,
2411        buf: *mut *mut ::std::os::raw::c_uchar,
2412    ) -> ::std::os::raw::c_int;
2413}
2414extern "C" {
2415    pub fn openconnect_free_cert_info(
2416        vpninfo: *mut openconnect_info,
2417        buf: *mut ::std::os::raw::c_void,
2418    );
2419}
2420extern "C" {
2421    pub fn openconnect_get_peer_cert_chain(
2422        vpninfo: *mut openconnect_info,
2423        chain: *mut *mut oc_cert,
2424    ) -> ::std::os::raw::c_int;
2425}
2426extern "C" {
2427    pub fn openconnect_free_peer_cert_chain(vpninfo: *mut openconnect_info, chain: *mut oc_cert);
2428}
2429extern "C" {
2430    pub fn openconnect_set_http_auth(
2431        vpninfo: *mut openconnect_info,
2432        methods: *const ::std::os::raw::c_char,
2433    ) -> ::std::os::raw::c_int;
2434}
2435extern "C" {
2436    pub fn openconnect_set_proxy_auth(
2437        vpninfo: *mut openconnect_info,
2438        methods: *const ::std::os::raw::c_char,
2439    ) -> ::std::os::raw::c_int;
2440}
2441extern "C" {
2442    pub fn openconnect_set_http_proxy(
2443        vpninfo: *mut openconnect_info,
2444        proxy: *const ::std::os::raw::c_char,
2445    ) -> ::std::os::raw::c_int;
2446}
2447extern "C" {
2448    pub fn openconnect_set_useragent(
2449        vpninfo: *mut openconnect_info,
2450        useragent: *const ::std::os::raw::c_char,
2451    ) -> ::std::os::raw::c_int;
2452}
2453extern "C" {
2454    pub fn openconnect_passphrase_from_fsid(
2455        vpninfo: *mut openconnect_info,
2456    ) -> ::std::os::raw::c_int;
2457}
2458extern "C" {
2459    pub fn openconnect_obtain_cookie(vpninfo: *mut openconnect_info) -> ::std::os::raw::c_int;
2460}
2461extern "C" {
2462    pub fn openconnect_init_ssl() -> ::std::os::raw::c_int;
2463}
2464extern "C" {
2465    pub fn openconnect_get_cstp_cipher(
2466        arg1: *mut openconnect_info,
2467    ) -> *const ::std::os::raw::c_char;
2468}
2469extern "C" {
2470    pub fn openconnect_get_dtls_cipher(
2471        arg1: *mut openconnect_info,
2472    ) -> *const ::std::os::raw::c_char;
2473}
2474extern "C" {
2475    pub fn openconnect_get_cstp_compression(
2476        arg1: *mut openconnect_info,
2477    ) -> *const ::std::os::raw::c_char;
2478}
2479extern "C" {
2480    pub fn openconnect_get_dtls_compression(
2481        arg1: *mut openconnect_info,
2482    ) -> *const ::std::os::raw::c_char;
2483}
2484extern "C" {
2485    pub fn openconnect_get_connect_url(
2486        arg1: *mut openconnect_info,
2487    ) -> *const ::std::os::raw::c_char;
2488}
2489extern "C" {
2490    pub fn openconnect_get_hostname(arg1: *mut openconnect_info) -> *const ::std::os::raw::c_char;
2491}
2492extern "C" {
2493    pub fn openconnect_get_dnsname(arg1: *mut openconnect_info) -> *const ::std::os::raw::c_char;
2494}
2495extern "C" {
2496    pub fn openconnect_set_hostname(
2497        arg1: *mut openconnect_info,
2498        arg2: *const ::std::os::raw::c_char,
2499    ) -> ::std::os::raw::c_int;
2500}
2501extern "C" {
2502    pub fn openconnect_get_urlpath(arg1: *mut openconnect_info) -> *mut ::std::os::raw::c_char;
2503}
2504extern "C" {
2505    pub fn openconnect_set_urlpath(
2506        arg1: *mut openconnect_info,
2507        arg2: *const ::std::os::raw::c_char,
2508    ) -> ::std::os::raw::c_int;
2509}
2510extern "C" {
2511    pub fn openconnect_set_localname(
2512        arg1: *mut openconnect_info,
2513        arg2: *const ::std::os::raw::c_char,
2514    ) -> ::std::os::raw::c_int;
2515}
2516extern "C" {
2517    pub fn openconnect_set_sni(
2518        arg1: *mut openconnect_info,
2519        arg2: *const ::std::os::raw::c_char,
2520    ) -> ::std::os::raw::c_int;
2521}
2522pub type openconnect_lock_token_vfn = ::std::option::Option<
2523    unsafe extern "C" fn(tokdata: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int,
2524>;
2525pub type openconnect_unlock_token_vfn = ::std::option::Option<
2526    unsafe extern "C" fn(
2527        tokdata: *mut ::std::os::raw::c_void,
2528        new_tok: *const ::std::os::raw::c_char,
2529    ) -> ::std::os::raw::c_int,
2530>;
2531extern "C" {
2532    pub fn openconnect_set_token_callbacks(
2533        arg1: *mut openconnect_info,
2534        tokdata: *mut ::std::os::raw::c_void,
2535        arg2: openconnect_lock_token_vfn,
2536        arg3: openconnect_unlock_token_vfn,
2537    ) -> ::std::os::raw::c_int;
2538}
2539extern "C" {
2540    pub fn openconnect_set_token_mode(
2541        arg1: *mut openconnect_info,
2542        arg2: oc_token_mode_t,
2543        token_str: *const ::std::os::raw::c_char,
2544    ) -> ::std::os::raw::c_int;
2545}
2546extern "C" {
2547    pub fn openconnect_set_stoken_mode(
2548        arg1: *mut openconnect_info,
2549        arg2: ::std::os::raw::c_int,
2550        arg3: *const ::std::os::raw::c_char,
2551    ) -> ::std::os::raw::c_int;
2552}
2553extern "C" {
2554    pub fn openconnect_set_compression_mode(
2555        arg1: *mut openconnect_info,
2556        arg2: oc_compression_mode_t,
2557    ) -> ::std::os::raw::c_int;
2558}
2559extern "C" {
2560    pub fn openconnect_set_xmlsha1(
2561        arg1: *mut openconnect_info,
2562        arg2: *const ::std::os::raw::c_char,
2563        size: ::std::os::raw::c_int,
2564    );
2565}
2566extern "C" {
2567    pub fn openconnect_set_cafile(
2568        arg1: *mut openconnect_info,
2569        arg2: *const ::std::os::raw::c_char,
2570    ) -> ::std::os::raw::c_int;
2571}
2572extern "C" {
2573    pub fn openconnect_set_system_trust(
2574        vpninfo: *mut openconnect_info,
2575        val: ::std::os::raw::c_uint,
2576    );
2577}
2578extern "C" {
2579    pub fn openconnect_setup_csd(
2580        arg1: *mut openconnect_info,
2581        arg2: uid_t,
2582        silent: ::std::os::raw::c_int,
2583        wrapper: *const ::std::os::raw::c_char,
2584    ) -> ::std::os::raw::c_int;
2585}
2586extern "C" {
2587    pub fn openconnect_set_xmlpost(arg1: *mut openconnect_info, enable: ::std::os::raw::c_int);
2588}
2589extern "C" {
2590    pub fn openconnect_set_reported_os(
2591        arg1: *mut openconnect_info,
2592        os: *const ::std::os::raw::c_char,
2593    ) -> ::std::os::raw::c_int;
2594}
2595extern "C" {
2596    pub fn openconnect_set_version_string(
2597        vpninfo: *mut openconnect_info,
2598        version_string: *const ::std::os::raw::c_char,
2599    ) -> ::std::os::raw::c_int;
2600}
2601extern "C" {
2602    pub fn openconnect_set_mobile_info(
2603        vpninfo: *mut openconnect_info,
2604        mobile_platform_version: *const ::std::os::raw::c_char,
2605        mobile_device_type: *const ::std::os::raw::c_char,
2606        mobile_device_uniqueid: *const ::std::os::raw::c_char,
2607    ) -> ::std::os::raw::c_int;
2608}
2609extern "C" {
2610    pub fn openconnect_set_client_cert(
2611        arg1: *mut openconnect_info,
2612        cert: *const ::std::os::raw::c_char,
2613        sslkey: *const ::std::os::raw::c_char,
2614    ) -> ::std::os::raw::c_int;
2615}
2616extern "C" {
2617    pub fn openconnect_set_key_password(
2618        vpninfo: *mut openconnect_info,
2619        pass: *const ::std::os::raw::c_char,
2620    ) -> ::std::os::raw::c_int;
2621}
2622extern "C" {
2623    #[doc = " Multiple certificate authentication (MCA): the client cert _and_ the\n mca_cert are used for authentication. The mca_cert is used to sign a\n challenge sent by the server."]
2624    pub fn openconnect_set_mca_cert(
2625        arg1: *mut openconnect_info,
2626        cert: *const ::std::os::raw::c_char,
2627        key: *const ::std::os::raw::c_char,
2628    ) -> ::std::os::raw::c_int;
2629}
2630extern "C" {
2631    pub fn openconnect_set_mca_key_password(
2632        vpninfo: *mut openconnect_info,
2633        pass: *const ::std::os::raw::c_char,
2634    ) -> ::std::os::raw::c_int;
2635}
2636extern "C" {
2637    pub fn openconnect_get_ifname(arg1: *mut openconnect_info) -> *const ::std::os::raw::c_char;
2638}
2639extern "C" {
2640    pub fn openconnect_set_reqmtu(arg1: *mut openconnect_info, reqmtu: ::std::os::raw::c_int);
2641}
2642extern "C" {
2643    pub fn openconnect_set_dpd(arg1: *mut openconnect_info, min_seconds: ::std::os::raw::c_int);
2644}
2645extern "C" {
2646    pub fn openconnect_set_trojan_interval(
2647        arg1: *mut openconnect_info,
2648        seconds: ::std::os::raw::c_int,
2649    );
2650}
2651extern "C" {
2652    pub fn openconnect_get_idle_timeout(arg1: *mut openconnect_info) -> ::std::os::raw::c_int;
2653}
2654extern "C" {
2655    pub fn openconnect_get_auth_expiration(arg1: *mut openconnect_info) -> time_t;
2656}
2657extern "C" {
2658    pub fn openconnect_get_ip_info(
2659        arg1: *mut openconnect_info,
2660        info: *mut *const oc_ip_info,
2661        cstp_options: *mut *const oc_vpn_option,
2662        dtls_options: *mut *const oc_vpn_option,
2663    ) -> ::std::os::raw::c_int;
2664}
2665extern "C" {
2666    pub fn openconnect_get_port(arg1: *mut openconnect_info) -> ::std::os::raw::c_int;
2667}
2668extern "C" {
2669    pub fn openconnect_get_cookie(arg1: *mut openconnect_info) -> *const ::std::os::raw::c_char;
2670}
2671extern "C" {
2672    pub fn openconnect_set_cookie(
2673        arg1: *mut openconnect_info,
2674        arg2: *const ::std::os::raw::c_char,
2675    ) -> ::std::os::raw::c_int;
2676}
2677extern "C" {
2678    pub fn openconnect_clear_cookie(arg1: *mut openconnect_info);
2679}
2680extern "C" {
2681    pub fn openconnect_disable_ipv6(vpninfo: *mut openconnect_info) -> ::std::os::raw::c_int;
2682}
2683extern "C" {
2684    pub fn openconnect_disable_dtls(vpninfo: *mut openconnect_info) -> ::std::os::raw::c_int;
2685}
2686extern "C" {
2687    pub fn openconnect_reset_ssl(vpninfo: *mut openconnect_info);
2688}
2689extern "C" {
2690    pub fn openconnect_parse_url(
2691        vpninfo: *mut openconnect_info,
2692        url: *const ::std::os::raw::c_char,
2693    ) -> ::std::os::raw::c_int;
2694}
2695extern "C" {
2696    pub fn openconnect_set_cert_expiry_warning(
2697        vpninfo: *mut openconnect_info,
2698        seconds: ::std::os::raw::c_int,
2699    );
2700}
2701extern "C" {
2702    pub fn openconnect_set_pfs(vpninfo: *mut openconnect_info, val: ::std::os::raw::c_uint);
2703}
2704extern "C" {
2705    pub fn openconnect_set_allow_insecure_crypto(
2706        vpninfo: *mut openconnect_info,
2707        val: ::std::os::raw::c_uint,
2708    ) -> ::std::os::raw::c_int;
2709}
2710extern "C" {
2711    pub fn openconnect_set_cancel_fd(vpninfo: *mut openconnect_info, fd: ::std::os::raw::c_int);
2712}
2713extern "C" {
2714    pub fn openconnect_setup_cmd_pipe(vpninfo: *mut openconnect_info) -> ::std::os::raw::c_int;
2715}
2716extern "C" {
2717    pub fn openconnect_get_version() -> *const ::std::os::raw::c_char;
2718}
2719extern "C" {
2720    pub fn openconnect_make_cstp_connection(
2721        vpninfo: *mut openconnect_info,
2722    ) -> ::std::os::raw::c_int;
2723}
2724extern "C" {
2725    pub fn openconnect_setup_tun_device(
2726        vpninfo: *mut openconnect_info,
2727        vpnc_script: *const ::std::os::raw::c_char,
2728        ifname: *const ::std::os::raw::c_char,
2729    ) -> ::std::os::raw::c_int;
2730}
2731extern "C" {
2732    pub fn openconnect_setup_tun_script(
2733        vpninfo: *mut openconnect_info,
2734        tun_script: *const ::std::os::raw::c_char,
2735    ) -> ::std::os::raw::c_int;
2736}
2737extern "C" {
2738    pub fn openconnect_setup_tun_fd(
2739        vpninfo: *mut openconnect_info,
2740        tun_fd: ::std::os::raw::c_int,
2741    ) -> ::std::os::raw::c_int;
2742}
2743extern "C" {
2744    pub fn openconnect_setup_dtls(
2745        vpninfo: *mut openconnect_info,
2746        dtls_attempt_period: ::std::os::raw::c_int,
2747    ) -> ::std::os::raw::c_int;
2748}
2749extern "C" {
2750    pub fn openconnect_mainloop(
2751        vpninfo: *mut openconnect_info,
2752        reconnect_timeout: ::std::os::raw::c_int,
2753        reconnect_interval: ::std::os::raw::c_int,
2754    ) -> ::std::os::raw::c_int;
2755}
2756pub type openconnect_validate_peer_cert_vfn = ::std::option::Option<
2757    unsafe extern "C" fn(
2758        privdata: *mut ::std::os::raw::c_void,
2759        reason: *const ::std::os::raw::c_char,
2760    ) -> ::std::os::raw::c_int,
2761>;
2762pub type openconnect_write_new_config_vfn = ::std::option::Option<
2763    unsafe extern "C" fn(
2764        privdata: *mut ::std::os::raw::c_void,
2765        buf: *const ::std::os::raw::c_char,
2766        buflen: ::std::os::raw::c_int,
2767    ) -> ::std::os::raw::c_int,
2768>;
2769pub type openconnect_process_auth_form_vfn = ::std::option::Option<
2770    unsafe extern "C" fn(
2771        privdata: *mut ::std::os::raw::c_void,
2772        form: *mut oc_auth_form,
2773    ) -> ::std::os::raw::c_int,
2774>;
2775pub type openconnect_progress_vfn = ::std::option::Option<
2776    unsafe extern "C" fn(
2777        privdata: *mut ::std::os::raw::c_void,
2778        level: ::std::os::raw::c_int,
2779        fmt: *const ::std::os::raw::c_char,
2780        ...
2781    ),
2782>;
2783extern "C" {
2784    pub fn openconnect_vpninfo_new(
2785        useragent: *const ::std::os::raw::c_char,
2786        arg1: openconnect_validate_peer_cert_vfn,
2787        arg2: openconnect_write_new_config_vfn,
2788        arg3: openconnect_process_auth_form_vfn,
2789        arg4: openconnect_progress_vfn,
2790        privdata: *mut ::std::os::raw::c_void,
2791    ) -> *mut openconnect_info;
2792}
2793extern "C" {
2794    pub fn openconnect_vpninfo_free(vpninfo: *mut openconnect_info);
2795}
2796pub type openconnect_open_webview_vfn = ::std::option::Option<
2797    unsafe extern "C" fn(
2798        arg1: *mut openconnect_info,
2799        uri: *const ::std::os::raw::c_char,
2800        privdata: *mut ::std::os::raw::c_void,
2801    ) -> ::std::os::raw::c_int,
2802>;
2803extern "C" {
2804    pub fn openconnect_set_webview_callback(
2805        vpninfo: *mut openconnect_info,
2806        arg1: openconnect_open_webview_vfn,
2807    );
2808}
2809extern "C" {
2810    pub fn openconnect_webview_load_changed(
2811        vpninfo: *mut openconnect_info,
2812        result: *const oc_webview_result,
2813    ) -> ::std::os::raw::c_int;
2814}
2815extern "C" {
2816    pub fn openconnect_set_external_browser_callback(
2817        vpninfo: *mut openconnect_info,
2818        arg1: openconnect_open_webview_vfn,
2819    );
2820}
2821pub type openconnect_protect_socket_vfn = ::std::option::Option<
2822    unsafe extern "C" fn(privdata: *mut ::std::os::raw::c_void, fd: ::std::os::raw::c_int),
2823>;
2824extern "C" {
2825    pub fn openconnect_set_protect_socket_handler(
2826        vpninfo: *mut openconnect_info,
2827        protect_socket: openconnect_protect_socket_vfn,
2828    );
2829}
2830extern "C" {
2831    pub fn openconnect_set_loglevel(vpninfo: *mut openconnect_info, level: ::std::os::raw::c_int);
2832}
2833extern "C" {
2834    pub fn openconnect_set_pass_tos(vpninfo: *mut openconnect_info, enable: ::std::os::raw::c_int);
2835}
2836pub type openconnect_stats_vfn = ::std::option::Option<
2837    unsafe extern "C" fn(privdata: *mut ::std::os::raw::c_void, stats: *const oc_stats),
2838>;
2839extern "C" {
2840    pub fn openconnect_set_stats_handler(
2841        vpninfo: *mut openconnect_info,
2842        stats_handler: openconnect_stats_vfn,
2843    );
2844}
2845extern "C" {
2846    pub fn openconnect_has_pkcs11_support() -> ::std::os::raw::c_int;
2847}
2848extern "C" {
2849    pub fn openconnect_has_tss_blob_support() -> ::std::os::raw::c_int;
2850}
2851extern "C" {
2852    pub fn openconnect_has_tss2_blob_support() -> ::std::os::raw::c_int;
2853}
2854extern "C" {
2855    pub fn openconnect_has_stoken_support() -> ::std::os::raw::c_int;
2856}
2857extern "C" {
2858    pub fn openconnect_has_oath_support() -> ::std::os::raw::c_int;
2859}
2860extern "C" {
2861    pub fn openconnect_has_yubioath_support() -> ::std::os::raw::c_int;
2862}
2863extern "C" {
2864    pub fn openconnect_has_system_key_support() -> ::std::os::raw::c_int;
2865}
2866extern "C" {
2867    pub fn openconnect_get_supported_protocols(
2868        protos: *mut *mut oc_vpn_proto,
2869    ) -> ::std::os::raw::c_int;
2870}
2871extern "C" {
2872    pub fn openconnect_free_supported_protocols(protos: *mut oc_vpn_proto);
2873}
2874extern "C" {
2875    pub fn openconnect_get_protocol(
2876        vpninfo: *mut openconnect_info,
2877    ) -> *const ::std::os::raw::c_char;
2878}
2879extern "C" {
2880    pub fn openconnect_set_protocol(
2881        vpninfo: *mut openconnect_info,
2882        protocol: *const ::std::os::raw::c_char,
2883    ) -> ::std::os::raw::c_int;
2884}
2885#[repr(C)]
2886#[derive(Debug, Copy, Clone)]
2887pub struct addrinfo {
2888    _unused: [u8; 0],
2889}
2890pub type openconnect_getaddrinfo_vfn = ::std::option::Option<
2891    unsafe extern "C" fn(
2892        privdata: *mut ::std::os::raw::c_void,
2893        node: *const ::std::os::raw::c_char,
2894        service: *const ::std::os::raw::c_char,
2895        hints: *const addrinfo,
2896        res: *mut *mut addrinfo,
2897    ) -> ::std::os::raw::c_int,
2898>;
2899extern "C" {
2900    pub fn openconnect_override_getaddrinfo(
2901        vpninfo: *mut openconnect_info,
2902        gai_fn: openconnect_getaddrinfo_vfn,
2903    );
2904}
2905pub type openconnect_setup_tun_vfn =
2906    ::std::option::Option<unsafe extern "C" fn(privdata: *mut ::std::os::raw::c_void)>;
2907extern "C" {
2908    pub fn openconnect_set_setup_tun_handler(
2909        vpninfo: *mut openconnect_info,
2910        setup_tun: openconnect_setup_tun_vfn,
2911    );
2912}
2913pub type openconnect_reconnected_vfn =
2914    ::std::option::Option<unsafe extern "C" fn(privdata: *mut ::std::os::raw::c_void)>;
2915extern "C" {
2916    pub fn openconnect_set_reconnected_handler(
2917        vpninfo: *mut openconnect_info,
2918        reconnected_fn: openconnect_reconnected_vfn,
2919    );
2920}
2921pub type t_global_progress_vfn = ::std::option::Option<
2922    unsafe extern "C" fn(
2923        privdata: *mut ::std::os::raw::c_void,
2924        level: ::std::os::raw::c_int,
2925        buf: *const ::std::os::raw::c_char,
2926    ),
2927>;
2928extern "C" {
2929    pub fn helper_format_vargs(
2930        privdata: *mut ::std::os::raw::c_void,
2931        level: ::std::os::raw::c_int,
2932        fmt: *const ::std::os::raw::c_char,
2933        ...
2934    );
2935}
2936extern "C" {
2937    pub fn helper_set_global_progress_vfn(cb: t_global_progress_vfn);
2938}