irssi_sys/
lib.rs

1/* automatically generated by rust-bindgen */
2#![allow(warnings)]
3#[repr(C)]
4#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
5pub struct __BindgenBitfieldUnit<Storage, Align> {
6    storage: Storage,
7    align: [Align; 0],
8}
9impl<Storage, Align> __BindgenBitfieldUnit<Storage, Align> {
10    #[inline]
11    pub const fn new(storage: Storage) -> Self {
12        Self { storage, align: [] }
13    }
14}
15impl<Storage, Align> __BindgenBitfieldUnit<Storage, Align>
16where
17    Storage: AsRef<[u8]> + AsMut<[u8]>,
18{
19    #[inline]
20    pub fn get_bit(&self, index: usize) -> bool {
21        debug_assert!(index / 8 < self.storage.as_ref().len());
22        let byte_index = index / 8;
23        let byte = self.storage.as_ref()[byte_index];
24        let bit_index = if cfg!(target_endian = "big") {
25            7 - (index % 8)
26        } else {
27            index % 8
28        };
29        let mask = 1 << bit_index;
30        byte & mask == mask
31    }
32    #[inline]
33    pub fn set_bit(&mut self, index: usize, val: bool) {
34        debug_assert!(index / 8 < self.storage.as_ref().len());
35        let byte_index = index / 8;
36        let byte = &mut self.storage.as_mut()[byte_index];
37        let bit_index = if cfg!(target_endian = "big") {
38            7 - (index % 8)
39        } else {
40            index % 8
41        };
42        let mask = 1 << bit_index;
43        if val {
44            *byte |= mask;
45        } else {
46            *byte &= !mask;
47        }
48    }
49    #[inline]
50    pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 {
51        debug_assert!(bit_width <= 64);
52        debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
53        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
54        let mut val = 0;
55        for i in 0..(bit_width as usize) {
56            if self.get_bit(i + bit_offset) {
57                let index = if cfg!(target_endian = "big") {
58                    bit_width as usize - 1 - i
59                } else {
60                    i
61                };
62                val |= 1 << index;
63            }
64        }
65        val
66    }
67    #[inline]
68    pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) {
69        debug_assert!(bit_width <= 64);
70        debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
71        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
72        for i in 0..(bit_width as usize) {
73            let mask = 1 << i;
74            let val_bit_is_set = val & mask == mask;
75            let index = if cfg!(target_endian = "big") {
76                bit_width as usize - 1 - i
77            } else {
78                i
79            };
80            self.set_bit(index + bit_offset, val_bit_is_set);
81        }
82    }
83}
84pub const IRSSI_DIR_FULL: &'static [u8; 10usize] = b"%s/.irssi\0";
85pub const IRSSI_GLOBAL_CONFIG: &'static [u8; 11usize] = b"irssi.conf\0";
86pub const IRSSI_HOME_CONFIG: &'static [u8; 7usize] = b"config\0";
87pub const IRSSI_ABI_VERSION: u32 = 23;
88pub const DEFAULT_SERVER_ADD_PORT: u32 = 6667;
89pub const DEFAULT_SERVER_ADD_TLS_PORT: u32 = 6697;
90pub const HAVE_DIRENT_H: u32 = 1;
91pub const HAVE_DLFCN_H: u32 = 1;
92pub const HAVE_GMODULE: u32 = 1;
93pub const HAVE_INTTYPES_H: u32 = 1;
94pub const HAVE_MEMORY_H: u32 = 1;
95pub const HAVE_STDINT_H: u32 = 1;
96pub const HAVE_STDLIB_H: u32 = 1;
97pub const HAVE_STRINGS_H: u32 = 1;
98pub const HAVE_STRING_H: u32 = 1;
99pub const HAVE_SYS_IOCTL_H: u32 = 1;
100pub const HAVE_SYS_RESOURCE_H: u32 = 1;
101pub const HAVE_SYS_SOCKET_H: u32 = 1;
102pub const HAVE_SYS_STAT_H: u32 = 1;
103pub const HAVE_SYS_TIME_H: u32 = 1;
104pub const HAVE_SYS_TYPES_H: u32 = 1;
105pub const HAVE_SYS_UTSNAME_H: u32 = 1;
106pub const HAVE_UNISTD_H: u32 = 1;
107pub const LT_OBJDIR: &'static [u8; 7usize] = b".libs/\0";
108pub const PACKAGE_BUGREPORT: &'static [u8; 1usize] = b"\0";
109pub const PACKAGE_NAME: &'static [u8; 6usize] = b"irssi\0";
110pub const PACKAGE_STRING: &'static [u8; 15usize] = b"irssi 1.3-head\0";
111pub const PACKAGE_TARNAME: &'static [u8; 6usize] = b"irssi\0";
112pub const PACKAGE_URL: &'static [u8; 1usize] = b"\0";
113pub const PACKAGE_VERSION: &'static [u8; 9usize] = b"1.3-head\0";
114pub const SIZEOF_INT: u32 = 4;
115pub const SIZEOF_LONG: u32 = 8;
116pub const SIZEOF_LONG_LONG: u32 = 8;
117pub const SIZEOF_OFF_T: u32 = 8;
118pub const STDC_HEADERS: u32 = 1;
119pub const _DARWIN_USE_64_BIT_INODE: u32 = 1;
120pub const _STDIO_H: u32 = 1;
121pub const _FEATURES_H: u32 = 1;
122pub const _DEFAULT_SOURCE: u32 = 1;
123pub const __USE_ISOC11: u32 = 1;
124pub const __USE_ISOC99: u32 = 1;
125pub const __USE_ISOC95: u32 = 1;
126pub const __USE_POSIX_IMPLICITLY: u32 = 1;
127pub const _POSIX_SOURCE: u32 = 1;
128pub const _POSIX_C_SOURCE: u32 = 200809;
129pub const __USE_POSIX: u32 = 1;
130pub const __USE_POSIX2: u32 = 1;
131pub const __USE_POSIX199309: u32 = 1;
132pub const __USE_POSIX199506: u32 = 1;
133pub const __USE_XOPEN2K: u32 = 1;
134pub const __USE_XOPEN2K8: u32 = 1;
135pub const _ATFILE_SOURCE: u32 = 1;
136pub const __USE_MISC: u32 = 1;
137pub const __USE_ATFILE: u32 = 1;
138pub const __USE_FORTIFY_LEVEL: u32 = 0;
139pub const __GLIBC_USE_DEPRECATED_GETS: u32 = 0;
140pub const _STDC_PREDEF_H: u32 = 1;
141pub const __STDC_IEC_559__: u32 = 1;
142pub const __STDC_IEC_559_COMPLEX__: u32 = 1;
143pub const __STDC_ISO_10646__: u32 = 201706;
144pub const __STDC_NO_THREADS__: u32 = 1;
145pub const __GNU_LIBRARY__: u32 = 6;
146pub const __GLIBC__: u32 = 2;
147pub const __GLIBC_MINOR__: u32 = 27;
148pub const _SYS_CDEFS_H: u32 = 1;
149pub const __glibc_c99_flexarr_available: u32 = 1;
150pub const __WORDSIZE: u32 = 64;
151pub const __WORDSIZE_TIME64_COMPAT32: u32 = 1;
152pub const __SYSCALL_WORDSIZE: u32 = 64;
153pub const __HAVE_GENERIC_SELECTION: u32 = 1;
154pub const __GLIBC_USE_LIB_EXT2: u32 = 0;
155pub const __GLIBC_USE_IEC_60559_BFP_EXT: u32 = 0;
156pub const __GLIBC_USE_IEC_60559_FUNCS_EXT: u32 = 0;
157pub const __GLIBC_USE_IEC_60559_TYPES_EXT: u32 = 0;
158pub const _BITS_TYPES_H: u32 = 1;
159pub const _BITS_TYPESIZES_H: u32 = 1;
160pub const __OFF_T_MATCHES_OFF64_T: u32 = 1;
161pub const __INO_T_MATCHES_INO64_T: u32 = 1;
162pub const __RLIM_T_MATCHES_RLIM64_T: u32 = 1;
163pub const __FD_SETSIZE: u32 = 1024;
164pub const ____FILE_defined: u32 = 1;
165pub const __FILE_defined: u32 = 1;
166pub const _BITS_LIBIO_H: u32 = 1;
167pub const _BITS_G_CONFIG_H: u32 = 1;
168pub const ____mbstate_t_defined: u32 = 1;
169pub const _G_HAVE_MMAP: u32 = 1;
170pub const _G_HAVE_MREMAP: u32 = 1;
171pub const _G_IO_IO_FILE_VERSION: u32 = 131073;
172pub const _G_BUFSIZ: u32 = 8192;
173pub const _IO_BUFSIZ: u32 = 8192;
174pub const __GNUC_VA_LIST: u32 = 1;
175pub const _IO_UNIFIED_JUMPTABLES: u32 = 1;
176pub const EOF: i32 = -1;
177pub const _IOS_INPUT: u32 = 1;
178pub const _IOS_OUTPUT: u32 = 2;
179pub const _IOS_ATEND: u32 = 4;
180pub const _IOS_APPEND: u32 = 8;
181pub const _IOS_TRUNC: u32 = 16;
182pub const _IOS_NOCREATE: u32 = 32;
183pub const _IOS_NOREPLACE: u32 = 64;
184pub const _IOS_BIN: u32 = 128;
185pub const _IO_MAGIC: u32 = 4222418944;
186pub const _OLD_STDIO_MAGIC: u32 = 4206624768;
187pub const _IO_MAGIC_MASK: u32 = 4294901760;
188pub const _IO_USER_BUF: u32 = 1;
189pub const _IO_UNBUFFERED: u32 = 2;
190pub const _IO_NO_READS: u32 = 4;
191pub const _IO_NO_WRITES: u32 = 8;
192pub const _IO_EOF_SEEN: u32 = 16;
193pub const _IO_ERR_SEEN: u32 = 32;
194pub const _IO_DELETE_DONT_CLOSE: u32 = 64;
195pub const _IO_LINKED: u32 = 128;
196pub const _IO_IN_BACKUP: u32 = 256;
197pub const _IO_LINE_BUF: u32 = 512;
198pub const _IO_TIED_PUT_GET: u32 = 1024;
199pub const _IO_CURRENTLY_PUTTING: u32 = 2048;
200pub const _IO_IS_APPENDING: u32 = 4096;
201pub const _IO_IS_FILEBUF: u32 = 8192;
202pub const _IO_BAD_SEEN: u32 = 16384;
203pub const _IO_USER_LOCK: u32 = 32768;
204pub const _IO_FLAGS2_MMAP: u32 = 1;
205pub const _IO_FLAGS2_NOTCANCEL: u32 = 2;
206pub const _IO_FLAGS2_USER_WBUF: u32 = 8;
207pub const _IO_SKIPWS: u32 = 1;
208pub const _IO_LEFT: u32 = 2;
209pub const _IO_RIGHT: u32 = 4;
210pub const _IO_INTERNAL: u32 = 8;
211pub const _IO_DEC: u32 = 16;
212pub const _IO_OCT: u32 = 32;
213pub const _IO_HEX: u32 = 64;
214pub const _IO_SHOWBASE: u32 = 128;
215pub const _IO_SHOWPOINT: u32 = 256;
216pub const _IO_UPPERCASE: u32 = 512;
217pub const _IO_SHOWPOS: u32 = 1024;
218pub const _IO_SCIENTIFIC: u32 = 2048;
219pub const _IO_FIXED: u32 = 4096;
220pub const _IO_UNITBUF: u32 = 8192;
221pub const _IO_STDIO: u32 = 16384;
222pub const _IO_DONT_CLOSE: u32 = 32768;
223pub const _IO_BOOLALPHA: u32 = 65536;
224pub const _IOFBF: u32 = 0;
225pub const _IOLBF: u32 = 1;
226pub const _IONBF: u32 = 2;
227pub const BUFSIZ: u32 = 8192;
228pub const SEEK_SET: u32 = 0;
229pub const SEEK_CUR: u32 = 1;
230pub const SEEK_END: u32 = 2;
231pub const P_tmpdir: &'static [u8; 5usize] = b"/tmp\0";
232pub const _BITS_STDIO_LIM_H: u32 = 1;
233pub const L_tmpnam: u32 = 20;
234pub const TMP_MAX: u32 = 238328;
235pub const FILENAME_MAX: u32 = 4096;
236pub const L_ctermid: u32 = 9;
237pub const FOPEN_MAX: u32 = 16;
238pub const _CTYPE_H: u32 = 1;
239pub const _ENDIAN_H: u32 = 1;
240pub const __LITTLE_ENDIAN: u32 = 1234;
241pub const __BIG_ENDIAN: u32 = 4321;
242pub const __PDP_ENDIAN: u32 = 3412;
243pub const __BYTE_ORDER: u32 = 1234;
244pub const __FLOAT_WORD_ORDER: u32 = 1234;
245pub const LITTLE_ENDIAN: u32 = 1234;
246pub const BIG_ENDIAN: u32 = 4321;
247pub const PDP_ENDIAN: u32 = 3412;
248pub const BYTE_ORDER: u32 = 1234;
249pub const _BITS_BYTESWAP_H: u32 = 1;
250pub const _BITS_UINTN_IDENTITY_H: u32 = 1;
251pub const _BITS_TYPES_LOCALE_T_H: u32 = 1;
252pub const _BITS_TYPES___LOCALE_T_H: u32 = 1;
253pub const _STRING_H: u32 = 1;
254pub const _STRINGS_H: u32 = 1;
255pub const _STDLIB_H: u32 = 1;
256pub const WNOHANG: u32 = 1;
257pub const WUNTRACED: u32 = 2;
258pub const WSTOPPED: u32 = 2;
259pub const WEXITED: u32 = 4;
260pub const WCONTINUED: u32 = 8;
261pub const WNOWAIT: u32 = 16777216;
262pub const __WNOTHREAD: u32 = 536870912;
263pub const __WALL: u32 = 1073741824;
264pub const __WCLONE: u32 = 2147483648;
265pub const __ENUM_IDTYPE_T: u32 = 1;
266pub const __W_CONTINUED: u32 = 65535;
267pub const __WCOREFLAG: u32 = 128;
268pub const __HAVE_FLOAT128: u32 = 0;
269pub const __HAVE_DISTINCT_FLOAT128: u32 = 0;
270pub const __HAVE_FLOAT64X: u32 = 1;
271pub const __HAVE_FLOAT64X_LONG_DOUBLE: u32 = 1;
272pub const __HAVE_FLOAT16: u32 = 0;
273pub const __HAVE_FLOAT32: u32 = 1;
274pub const __HAVE_FLOAT64: u32 = 1;
275pub const __HAVE_FLOAT32X: u32 = 1;
276pub const __HAVE_FLOAT128X: u32 = 0;
277pub const __HAVE_DISTINCT_FLOAT16: u32 = 0;
278pub const __HAVE_DISTINCT_FLOAT32: u32 = 0;
279pub const __HAVE_DISTINCT_FLOAT64: u32 = 0;
280pub const __HAVE_DISTINCT_FLOAT32X: u32 = 0;
281pub const __HAVE_DISTINCT_FLOAT64X: u32 = 0;
282pub const __HAVE_DISTINCT_FLOAT128X: u32 = 0;
283pub const __HAVE_FLOATN_NOT_TYPEDEF: u32 = 0;
284pub const __ldiv_t_defined: u32 = 1;
285pub const __lldiv_t_defined: u32 = 1;
286pub const RAND_MAX: u32 = 2147483647;
287pub const EXIT_FAILURE: u32 = 1;
288pub const EXIT_SUCCESS: u32 = 0;
289pub const _SYS_TYPES_H: u32 = 1;
290pub const __clock_t_defined: u32 = 1;
291pub const __clockid_t_defined: u32 = 1;
292pub const __time_t_defined: u32 = 1;
293pub const __timer_t_defined: u32 = 1;
294pub const _BITS_STDINT_INTN_H: u32 = 1;
295pub const __BIT_TYPES_DEFINED__: u32 = 1;
296pub const _SYS_SELECT_H: u32 = 1;
297pub const __FD_ZERO_STOS: &'static [u8; 6usize] = b"stosq\0";
298pub const __sigset_t_defined: u32 = 1;
299pub const __timeval_defined: u32 = 1;
300pub const __timespec_defined: u32 = 1;
301pub const FD_SETSIZE: u32 = 1024;
302pub const _SYS_SYSMACROS_H: u32 = 1;
303pub const _BITS_SYSMACROS_H: u32 = 1;
304pub const _BITS_PTHREADTYPES_COMMON_H: u32 = 1;
305pub const _THREAD_SHARED_TYPES_H: u32 = 1;
306pub const _BITS_PTHREADTYPES_ARCH_H: u32 = 1;
307pub const __SIZEOF_PTHREAD_MUTEX_T: u32 = 40;
308pub const __SIZEOF_PTHREAD_ATTR_T: u32 = 56;
309pub const __SIZEOF_PTHREAD_RWLOCK_T: u32 = 56;
310pub const __SIZEOF_PTHREAD_BARRIER_T: u32 = 32;
311pub const __SIZEOF_PTHREAD_MUTEXATTR_T: u32 = 4;
312pub const __SIZEOF_PTHREAD_COND_T: u32 = 48;
313pub const __SIZEOF_PTHREAD_CONDATTR_T: u32 = 4;
314pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: u32 = 8;
315pub const __SIZEOF_PTHREAD_BARRIERATTR_T: u32 = 4;
316pub const __PTHREAD_MUTEX_LOCK_ELISION: u32 = 1;
317pub const __PTHREAD_MUTEX_NUSERS_AFTER_KIND: u32 = 0;
318pub const __PTHREAD_MUTEX_USE_UNION: u32 = 0;
319pub const __PTHREAD_RWLOCK_INT_FLAGS_SHARED: u32 = 1;
320pub const __PTHREAD_MUTEX_HAVE_PREV: u32 = 1;
321pub const __have_pthread_attr_t: u32 = 1;
322pub const _ALLOCA_H: u32 = 1;
323pub const _ERRNO_H: u32 = 1;
324pub const _BITS_ERRNO_H: u32 = 1;
325pub const EPERM: u32 = 1;
326pub const ENOENT: u32 = 2;
327pub const ESRCH: u32 = 3;
328pub const EINTR: u32 = 4;
329pub const EIO: u32 = 5;
330pub const ENXIO: u32 = 6;
331pub const E2BIG: u32 = 7;
332pub const ENOEXEC: u32 = 8;
333pub const EBADF: u32 = 9;
334pub const ECHILD: u32 = 10;
335pub const EAGAIN: u32 = 11;
336pub const ENOMEM: u32 = 12;
337pub const EACCES: u32 = 13;
338pub const EFAULT: u32 = 14;
339pub const ENOTBLK: u32 = 15;
340pub const EBUSY: u32 = 16;
341pub const EEXIST: u32 = 17;
342pub const EXDEV: u32 = 18;
343pub const ENODEV: u32 = 19;
344pub const ENOTDIR: u32 = 20;
345pub const EISDIR: u32 = 21;
346pub const EINVAL: u32 = 22;
347pub const ENFILE: u32 = 23;
348pub const EMFILE: u32 = 24;
349pub const ENOTTY: u32 = 25;
350pub const ETXTBSY: u32 = 26;
351pub const EFBIG: u32 = 27;
352pub const ENOSPC: u32 = 28;
353pub const ESPIPE: u32 = 29;
354pub const EROFS: u32 = 30;
355pub const EMLINK: u32 = 31;
356pub const EPIPE: u32 = 32;
357pub const EDOM: u32 = 33;
358pub const ERANGE: u32 = 34;
359pub const EDEADLK: u32 = 35;
360pub const ENAMETOOLONG: u32 = 36;
361pub const ENOLCK: u32 = 37;
362pub const ENOSYS: u32 = 38;
363pub const ENOTEMPTY: u32 = 39;
364pub const ELOOP: u32 = 40;
365pub const EWOULDBLOCK: u32 = 11;
366pub const ENOMSG: u32 = 42;
367pub const EIDRM: u32 = 43;
368pub const ECHRNG: u32 = 44;
369pub const EL2NSYNC: u32 = 45;
370pub const EL3HLT: u32 = 46;
371pub const EL3RST: u32 = 47;
372pub const ELNRNG: u32 = 48;
373pub const EUNATCH: u32 = 49;
374pub const ENOCSI: u32 = 50;
375pub const EL2HLT: u32 = 51;
376pub const EBADE: u32 = 52;
377pub const EBADR: u32 = 53;
378pub const EXFULL: u32 = 54;
379pub const ENOANO: u32 = 55;
380pub const EBADRQC: u32 = 56;
381pub const EBADSLT: u32 = 57;
382pub const EDEADLOCK: u32 = 35;
383pub const EBFONT: u32 = 59;
384pub const ENOSTR: u32 = 60;
385pub const ENODATA: u32 = 61;
386pub const ETIME: u32 = 62;
387pub const ENOSR: u32 = 63;
388pub const ENONET: u32 = 64;
389pub const ENOPKG: u32 = 65;
390pub const EREMOTE: u32 = 66;
391pub const ENOLINK: u32 = 67;
392pub const EADV: u32 = 68;
393pub const ESRMNT: u32 = 69;
394pub const ECOMM: u32 = 70;
395pub const EPROTO: u32 = 71;
396pub const EMULTIHOP: u32 = 72;
397pub const EDOTDOT: u32 = 73;
398pub const EBADMSG: u32 = 74;
399pub const EOVERFLOW: u32 = 75;
400pub const ENOTUNIQ: u32 = 76;
401pub const EBADFD: u32 = 77;
402pub const EREMCHG: u32 = 78;
403pub const ELIBACC: u32 = 79;
404pub const ELIBBAD: u32 = 80;
405pub const ELIBSCN: u32 = 81;
406pub const ELIBMAX: u32 = 82;
407pub const ELIBEXEC: u32 = 83;
408pub const EILSEQ: u32 = 84;
409pub const ERESTART: u32 = 85;
410pub const ESTRPIPE: u32 = 86;
411pub const EUSERS: u32 = 87;
412pub const ENOTSOCK: u32 = 88;
413pub const EDESTADDRREQ: u32 = 89;
414pub const EMSGSIZE: u32 = 90;
415pub const EPROTOTYPE: u32 = 91;
416pub const ENOPROTOOPT: u32 = 92;
417pub const EPROTONOSUPPORT: u32 = 93;
418pub const ESOCKTNOSUPPORT: u32 = 94;
419pub const EOPNOTSUPP: u32 = 95;
420pub const EPFNOSUPPORT: u32 = 96;
421pub const EAFNOSUPPORT: u32 = 97;
422pub const EADDRINUSE: u32 = 98;
423pub const EADDRNOTAVAIL: u32 = 99;
424pub const ENETDOWN: u32 = 100;
425pub const ENETUNREACH: u32 = 101;
426pub const ENETRESET: u32 = 102;
427pub const ECONNABORTED: u32 = 103;
428pub const ECONNRESET: u32 = 104;
429pub const ENOBUFS: u32 = 105;
430pub const EISCONN: u32 = 106;
431pub const ENOTCONN: u32 = 107;
432pub const ESHUTDOWN: u32 = 108;
433pub const ETOOMANYREFS: u32 = 109;
434pub const ETIMEDOUT: u32 = 110;
435pub const ECONNREFUSED: u32 = 111;
436pub const EHOSTDOWN: u32 = 112;
437pub const EHOSTUNREACH: u32 = 113;
438pub const EALREADY: u32 = 114;
439pub const EINPROGRESS: u32 = 115;
440pub const ESTALE: u32 = 116;
441pub const EUCLEAN: u32 = 117;
442pub const ENOTNAM: u32 = 118;
443pub const ENAVAIL: u32 = 119;
444pub const EISNAM: u32 = 120;
445pub const EREMOTEIO: u32 = 121;
446pub const EDQUOT: u32 = 122;
447pub const ENOMEDIUM: u32 = 123;
448pub const EMEDIUMTYPE: u32 = 124;
449pub const ECANCELED: u32 = 125;
450pub const ENOKEY: u32 = 126;
451pub const EKEYEXPIRED: u32 = 127;
452pub const EKEYREVOKED: u32 = 128;
453pub const EKEYREJECTED: u32 = 129;
454pub const EOWNERDEAD: u32 = 130;
455pub const ENOTRECOVERABLE: u32 = 131;
456pub const ERFKILL: u32 = 132;
457pub const EHWPOISON: u32 = 133;
458pub const ENOTSUP: u32 = 95;
459pub const _TIME_H: u32 = 1;
460pub const _BITS_TIME_H: u32 = 1;
461pub const CLOCK_REALTIME: u32 = 0;
462pub const CLOCK_MONOTONIC: u32 = 1;
463pub const CLOCK_PROCESS_CPUTIME_ID: u32 = 2;
464pub const CLOCK_THREAD_CPUTIME_ID: u32 = 3;
465pub const CLOCK_MONOTONIC_RAW: u32 = 4;
466pub const CLOCK_REALTIME_COARSE: u32 = 5;
467pub const CLOCK_MONOTONIC_COARSE: u32 = 6;
468pub const CLOCK_BOOTTIME: u32 = 7;
469pub const CLOCK_REALTIME_ALARM: u32 = 8;
470pub const CLOCK_BOOTTIME_ALARM: u32 = 9;
471pub const CLOCK_TAI: u32 = 11;
472pub const TIMER_ABSTIME: u32 = 1;
473pub const __struct_tm_defined: u32 = 1;
474pub const __itimerspec_defined: u32 = 1;
475pub const TIME_UTC: u32 = 1;
476pub const _SYS_TIME_H: u32 = 1;
477pub const _SYS_STAT_H: u32 = 1;
478pub const _BITS_STAT_H: u32 = 1;
479pub const _STAT_VER_KERNEL: u32 = 0;
480pub const _STAT_VER_LINUX: u32 = 1;
481pub const _MKNOD_VER_LINUX: u32 = 0;
482pub const _STAT_VER: u32 = 1;
483pub const __S_IFMT: u32 = 61440;
484pub const __S_IFDIR: u32 = 16384;
485pub const __S_IFCHR: u32 = 8192;
486pub const __S_IFBLK: u32 = 24576;
487pub const __S_IFREG: u32 = 32768;
488pub const __S_IFIFO: u32 = 4096;
489pub const __S_IFLNK: u32 = 40960;
490pub const __S_IFSOCK: u32 = 49152;
491pub const __S_ISUID: u32 = 2048;
492pub const __S_ISGID: u32 = 1024;
493pub const __S_ISVTX: u32 = 512;
494pub const __S_IREAD: u32 = 256;
495pub const __S_IWRITE: u32 = 128;
496pub const __S_IEXEC: u32 = 64;
497pub const UTIME_NOW: u32 = 1073741823;
498pub const UTIME_OMIT: u32 = 1073741822;
499pub const S_IFMT: u32 = 61440;
500pub const S_IFDIR: u32 = 16384;
501pub const S_IFCHR: u32 = 8192;
502pub const S_IFBLK: u32 = 24576;
503pub const S_IFREG: u32 = 32768;
504pub const S_IFIFO: u32 = 4096;
505pub const S_IFLNK: u32 = 40960;
506pub const S_IFSOCK: u32 = 49152;
507pub const S_ISUID: u32 = 2048;
508pub const S_ISGID: u32 = 1024;
509pub const S_ISVTX: u32 = 512;
510pub const S_IRUSR: u32 = 256;
511pub const S_IWUSR: u32 = 128;
512pub const S_IXUSR: u32 = 64;
513pub const S_IRWXU: u32 = 448;
514pub const S_IREAD: u32 = 256;
515pub const S_IWRITE: u32 = 128;
516pub const S_IEXEC: u32 = 64;
517pub const S_IRGRP: u32 = 32;
518pub const S_IWGRP: u32 = 16;
519pub const S_IXGRP: u32 = 8;
520pub const S_IRWXG: u32 = 56;
521pub const S_IROTH: u32 = 4;
522pub const S_IWOTH: u32 = 2;
523pub const S_IXOTH: u32 = 1;
524pub const S_IRWXO: u32 = 7;
525pub const ACCESSPERMS: u32 = 511;
526pub const ALLPERMS: u32 = 4095;
527pub const DEFFILEMODE: u32 = 438;
528pub const S_BLKSIZE: u32 = 512;
529pub const _MKNOD_VER: u32 = 0;
530pub const _UNISTD_H: u32 = 1;
531pub const _POSIX_VERSION: u32 = 200809;
532pub const __POSIX2_THIS_VERSION: u32 = 200809;
533pub const _POSIX2_VERSION: u32 = 200809;
534pub const _POSIX2_C_VERSION: u32 = 200809;
535pub const _POSIX2_C_BIND: u32 = 200809;
536pub const _POSIX2_C_DEV: u32 = 200809;
537pub const _POSIX2_SW_DEV: u32 = 200809;
538pub const _POSIX2_LOCALEDEF: u32 = 200809;
539pub const _XOPEN_VERSION: u32 = 700;
540pub const _XOPEN_XCU_VERSION: u32 = 4;
541pub const _XOPEN_XPG2: u32 = 1;
542pub const _XOPEN_XPG3: u32 = 1;
543pub const _XOPEN_XPG4: u32 = 1;
544pub const _XOPEN_UNIX: u32 = 1;
545pub const _XOPEN_CRYPT: u32 = 1;
546pub const _XOPEN_ENH_I18N: u32 = 1;
547pub const _XOPEN_LEGACY: u32 = 1;
548pub const _BITS_POSIX_OPT_H: u32 = 1;
549pub const _POSIX_JOB_CONTROL: u32 = 1;
550pub const _POSIX_SAVED_IDS: u32 = 1;
551pub const _POSIX_PRIORITY_SCHEDULING: u32 = 200809;
552pub const _POSIX_SYNCHRONIZED_IO: u32 = 200809;
553pub const _POSIX_FSYNC: u32 = 200809;
554pub const _POSIX_MAPPED_FILES: u32 = 200809;
555pub const _POSIX_MEMLOCK: u32 = 200809;
556pub const _POSIX_MEMLOCK_RANGE: u32 = 200809;
557pub const _POSIX_MEMORY_PROTECTION: u32 = 200809;
558pub const _POSIX_CHOWN_RESTRICTED: u32 = 0;
559pub const _POSIX_VDISABLE: u8 = 0u8;
560pub const _POSIX_NO_TRUNC: u32 = 1;
561pub const _XOPEN_REALTIME: u32 = 1;
562pub const _XOPEN_REALTIME_THREADS: u32 = 1;
563pub const _XOPEN_SHM: u32 = 1;
564pub const _POSIX_THREADS: u32 = 200809;
565pub const _POSIX_REENTRANT_FUNCTIONS: u32 = 1;
566pub const _POSIX_THREAD_SAFE_FUNCTIONS: u32 = 200809;
567pub const _POSIX_THREAD_PRIORITY_SCHEDULING: u32 = 200809;
568pub const _POSIX_THREAD_ATTR_STACKSIZE: u32 = 200809;
569pub const _POSIX_THREAD_ATTR_STACKADDR: u32 = 200809;
570pub const _POSIX_THREAD_PRIO_INHERIT: u32 = 200809;
571pub const _POSIX_THREAD_PRIO_PROTECT: u32 = 200809;
572pub const _POSIX_THREAD_ROBUST_PRIO_INHERIT: u32 = 200809;
573pub const _POSIX_THREAD_ROBUST_PRIO_PROTECT: i32 = -1;
574pub const _POSIX_SEMAPHORES: u32 = 200809;
575pub const _POSIX_REALTIME_SIGNALS: u32 = 200809;
576pub const _POSIX_ASYNCHRONOUS_IO: u32 = 200809;
577pub const _POSIX_ASYNC_IO: u32 = 1;
578pub const _LFS_ASYNCHRONOUS_IO: u32 = 1;
579pub const _POSIX_PRIORITIZED_IO: u32 = 200809;
580pub const _LFS64_ASYNCHRONOUS_IO: u32 = 1;
581pub const _LFS_LARGEFILE: u32 = 1;
582pub const _LFS64_LARGEFILE: u32 = 1;
583pub const _LFS64_STDIO: u32 = 1;
584pub const _POSIX_SHARED_MEMORY_OBJECTS: u32 = 200809;
585pub const _POSIX_CPUTIME: u32 = 0;
586pub const _POSIX_THREAD_CPUTIME: u32 = 0;
587pub const _POSIX_REGEXP: u32 = 1;
588pub const _POSIX_READER_WRITER_LOCKS: u32 = 200809;
589pub const _POSIX_SHELL: u32 = 1;
590pub const _POSIX_TIMEOUTS: u32 = 200809;
591pub const _POSIX_SPIN_LOCKS: u32 = 200809;
592pub const _POSIX_SPAWN: u32 = 200809;
593pub const _POSIX_TIMERS: u32 = 200809;
594pub const _POSIX_BARRIERS: u32 = 200809;
595pub const _POSIX_MESSAGE_PASSING: u32 = 200809;
596pub const _POSIX_THREAD_PROCESS_SHARED: u32 = 200809;
597pub const _POSIX_MONOTONIC_CLOCK: u32 = 0;
598pub const _POSIX_CLOCK_SELECTION: u32 = 200809;
599pub const _POSIX_ADVISORY_INFO: u32 = 200809;
600pub const _POSIX_IPV6: u32 = 200809;
601pub const _POSIX_RAW_SOCKETS: u32 = 200809;
602pub const _POSIX2_CHAR_TERM: u32 = 200809;
603pub const _POSIX_SPORADIC_SERVER: i32 = -1;
604pub const _POSIX_THREAD_SPORADIC_SERVER: i32 = -1;
605pub const _POSIX_TRACE: i32 = -1;
606pub const _POSIX_TRACE_EVENT_FILTER: i32 = -1;
607pub const _POSIX_TRACE_INHERIT: i32 = -1;
608pub const _POSIX_TRACE_LOG: i32 = -1;
609pub const _POSIX_TYPED_MEMORY_OBJECTS: i32 = -1;
610pub const _POSIX_V7_LPBIG_OFFBIG: i32 = -1;
611pub const _POSIX_V6_LPBIG_OFFBIG: i32 = -1;
612pub const _XBS5_LPBIG_OFFBIG: i32 = -1;
613pub const _POSIX_V7_LP64_OFF64: u32 = 1;
614pub const _POSIX_V6_LP64_OFF64: u32 = 1;
615pub const _XBS5_LP64_OFF64: u32 = 1;
616pub const __ILP32_OFF32_CFLAGS: &'static [u8; 5usize] = b"-m32\0";
617pub const __ILP32_OFF32_LDFLAGS: &'static [u8; 5usize] = b"-m32\0";
618pub const __ILP32_OFFBIG_CFLAGS: &'static [u8; 48usize] =
619    b"-m32 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64\0";
620pub const __ILP32_OFFBIG_LDFLAGS: &'static [u8; 5usize] = b"-m32\0";
621pub const __LP64_OFF64_CFLAGS: &'static [u8; 5usize] = b"-m64\0";
622pub const __LP64_OFF64_LDFLAGS: &'static [u8; 5usize] = b"-m64\0";
623pub const STDIN_FILENO: u32 = 0;
624pub const STDOUT_FILENO: u32 = 1;
625pub const STDERR_FILENO: u32 = 2;
626pub const R_OK: u32 = 4;
627pub const W_OK: u32 = 2;
628pub const X_OK: u32 = 1;
629pub const F_OK: u32 = 0;
630pub const L_SET: u32 = 0;
631pub const L_INCR: u32 = 1;
632pub const L_XTND: u32 = 2;
633pub const _GETOPT_POSIX_H: u32 = 1;
634pub const _GETOPT_CORE_H: u32 = 1;
635pub const F_ULOCK: u32 = 0;
636pub const F_LOCK: u32 = 1;
637pub const F_TLOCK: u32 = 2;
638pub const F_TEST: u32 = 3;
639pub const _DIRENT_H: u32 = 1;
640pub const _DIRENT_MATCHES_DIRENT64: u32 = 1;
641pub const _BITS_POSIX1_LIM_H: u32 = 1;
642pub const _POSIX_AIO_LISTIO_MAX: u32 = 2;
643pub const _POSIX_AIO_MAX: u32 = 1;
644pub const _POSIX_ARG_MAX: u32 = 4096;
645pub const _POSIX_CHILD_MAX: u32 = 25;
646pub const _POSIX_DELAYTIMER_MAX: u32 = 32;
647pub const _POSIX_HOST_NAME_MAX: u32 = 255;
648pub const _POSIX_LINK_MAX: u32 = 8;
649pub const _POSIX_LOGIN_NAME_MAX: u32 = 9;
650pub const _POSIX_MAX_CANON: u32 = 255;
651pub const _POSIX_MAX_INPUT: u32 = 255;
652pub const _POSIX_MQ_OPEN_MAX: u32 = 8;
653pub const _POSIX_MQ_PRIO_MAX: u32 = 32;
654pub const _POSIX_NAME_MAX: u32 = 14;
655pub const _POSIX_NGROUPS_MAX: u32 = 8;
656pub const _POSIX_OPEN_MAX: u32 = 20;
657pub const _POSIX_PATH_MAX: u32 = 256;
658pub const _POSIX_PIPE_BUF: u32 = 512;
659pub const _POSIX_RE_DUP_MAX: u32 = 255;
660pub const _POSIX_RTSIG_MAX: u32 = 8;
661pub const _POSIX_SEM_NSEMS_MAX: u32 = 256;
662pub const _POSIX_SEM_VALUE_MAX: u32 = 32767;
663pub const _POSIX_SIGQUEUE_MAX: u32 = 32;
664pub const _POSIX_SSIZE_MAX: u32 = 32767;
665pub const _POSIX_STREAM_MAX: u32 = 8;
666pub const _POSIX_SYMLINK_MAX: u32 = 255;
667pub const _POSIX_SYMLOOP_MAX: u32 = 8;
668pub const _POSIX_TIMER_MAX: u32 = 32;
669pub const _POSIX_TTY_NAME_MAX: u32 = 9;
670pub const _POSIX_TZNAME_MAX: u32 = 6;
671pub const _POSIX_CLOCKRES_MIN: u32 = 20000000;
672pub const NR_OPEN: u32 = 1024;
673pub const NGROUPS_MAX: u32 = 65536;
674pub const ARG_MAX: u32 = 131072;
675pub const LINK_MAX: u32 = 127;
676pub const MAX_CANON: u32 = 255;
677pub const MAX_INPUT: u32 = 255;
678pub const NAME_MAX: u32 = 255;
679pub const PATH_MAX: u32 = 4096;
680pub const PIPE_BUF: u32 = 4096;
681pub const XATTR_NAME_MAX: u32 = 255;
682pub const XATTR_SIZE_MAX: u32 = 65536;
683pub const XATTR_LIST_MAX: u32 = 65536;
684pub const RTSIG_MAX: u32 = 32;
685pub const _POSIX_THREAD_KEYS_MAX: u32 = 128;
686pub const PTHREAD_KEYS_MAX: u32 = 1024;
687pub const _POSIX_THREAD_DESTRUCTOR_ITERATIONS: u32 = 4;
688pub const PTHREAD_DESTRUCTOR_ITERATIONS: u32 = 4;
689pub const _POSIX_THREAD_THREADS_MAX: u32 = 64;
690pub const AIO_PRIO_DELTA_MAX: u32 = 20;
691pub const PTHREAD_STACK_MIN: u32 = 16384;
692pub const DELAYTIMER_MAX: u32 = 2147483647;
693pub const TTY_NAME_MAX: u32 = 32;
694pub const LOGIN_NAME_MAX: u32 = 256;
695pub const HOST_NAME_MAX: u32 = 64;
696pub const MQ_PRIO_MAX: u32 = 32768;
697pub const SEM_VALUE_MAX: u32 = 2147483647;
698pub const MAXNAMLEN: u32 = 255;
699pub const _FCNTL_H: u32 = 1;
700pub const __O_LARGEFILE: u32 = 0;
701pub const F_GETLK64: u32 = 5;
702pub const F_SETLK64: u32 = 6;
703pub const F_SETLKW64: u32 = 7;
704pub const O_ACCMODE: u32 = 3;
705pub const O_RDONLY: u32 = 0;
706pub const O_WRONLY: u32 = 1;
707pub const O_RDWR: u32 = 2;
708pub const O_CREAT: u32 = 64;
709pub const O_EXCL: u32 = 128;
710pub const O_NOCTTY: u32 = 256;
711pub const O_TRUNC: u32 = 512;
712pub const O_APPEND: u32 = 1024;
713pub const O_NONBLOCK: u32 = 2048;
714pub const O_NDELAY: u32 = 2048;
715pub const O_SYNC: u32 = 1052672;
716pub const O_FSYNC: u32 = 1052672;
717pub const O_ASYNC: u32 = 8192;
718pub const __O_DIRECTORY: u32 = 65536;
719pub const __O_NOFOLLOW: u32 = 131072;
720pub const __O_CLOEXEC: u32 = 524288;
721pub const __O_DIRECT: u32 = 16384;
722pub const __O_NOATIME: u32 = 262144;
723pub const __O_PATH: u32 = 2097152;
724pub const __O_DSYNC: u32 = 4096;
725pub const __O_TMPFILE: u32 = 4259840;
726pub const F_GETLK: u32 = 5;
727pub const F_SETLK: u32 = 6;
728pub const F_SETLKW: u32 = 7;
729pub const O_DIRECTORY: u32 = 65536;
730pub const O_NOFOLLOW: u32 = 131072;
731pub const O_CLOEXEC: u32 = 524288;
732pub const O_DSYNC: u32 = 4096;
733pub const O_RSYNC: u32 = 1052672;
734pub const F_DUPFD: u32 = 0;
735pub const F_GETFD: u32 = 1;
736pub const F_SETFD: u32 = 2;
737pub const F_GETFL: u32 = 3;
738pub const F_SETFL: u32 = 4;
739pub const __F_SETOWN: u32 = 8;
740pub const __F_GETOWN: u32 = 9;
741pub const F_SETOWN: u32 = 8;
742pub const F_GETOWN: u32 = 9;
743pub const __F_SETSIG: u32 = 10;
744pub const __F_GETSIG: u32 = 11;
745pub const __F_SETOWN_EX: u32 = 15;
746pub const __F_GETOWN_EX: u32 = 16;
747pub const F_DUPFD_CLOEXEC: u32 = 1030;
748pub const FD_CLOEXEC: u32 = 1;
749pub const F_RDLCK: u32 = 0;
750pub const F_WRLCK: u32 = 1;
751pub const F_UNLCK: u32 = 2;
752pub const F_EXLCK: u32 = 4;
753pub const F_SHLCK: u32 = 8;
754pub const LOCK_SH: u32 = 1;
755pub const LOCK_EX: u32 = 2;
756pub const LOCK_NB: u32 = 4;
757pub const LOCK_UN: u32 = 8;
758pub const FAPPEND: u32 = 1024;
759pub const FFSYNC: u32 = 1052672;
760pub const FASYNC: u32 = 8192;
761pub const FNONBLOCK: u32 = 2048;
762pub const FNDELAY: u32 = 2048;
763pub const __POSIX_FADV_DONTNEED: u32 = 4;
764pub const __POSIX_FADV_NOREUSE: u32 = 5;
765pub const POSIX_FADV_NORMAL: u32 = 0;
766pub const POSIX_FADV_RANDOM: u32 = 1;
767pub const POSIX_FADV_SEQUENTIAL: u32 = 2;
768pub const POSIX_FADV_WILLNEED: u32 = 3;
769pub const POSIX_FADV_DONTNEED: u32 = 4;
770pub const POSIX_FADV_NOREUSE: u32 = 5;
771pub const AT_FDCWD: i32 = -100;
772pub const AT_SYMLINK_NOFOLLOW: u32 = 256;
773pub const AT_REMOVEDIR: u32 = 512;
774pub const AT_SYMLINK_FOLLOW: u32 = 1024;
775pub const AT_EACCESS: u32 = 512;
776pub const G_GNUC_FUNCTION: &'static [u8; 1usize] = b"\0";
777pub const G_GNUC_PRETTY_FUNCTION: &'static [u8; 1usize] = b"\0";
778pub const G_ANALYZER_ANALYZING: u32 = 0;
779pub const FALSE: u32 = 0;
780pub const _LIBC_LIMITS_H_: u32 = 1;
781pub const MB_LEN_MAX: u32 = 16;
782pub const _BITS_POSIX2_LIM_H: u32 = 1;
783pub const _POSIX2_BC_BASE_MAX: u32 = 99;
784pub const _POSIX2_BC_DIM_MAX: u32 = 2048;
785pub const _POSIX2_BC_SCALE_MAX: u32 = 99;
786pub const _POSIX2_BC_STRING_MAX: u32 = 1000;
787pub const _POSIX2_COLL_WEIGHTS_MAX: u32 = 2;
788pub const _POSIX2_EXPR_NEST_MAX: u32 = 32;
789pub const _POSIX2_LINE_MAX: u32 = 2048;
790pub const _POSIX2_RE_DUP_MAX: u32 = 255;
791pub const _POSIX2_CHARCLASS_NAME_MAX: u32 = 14;
792pub const BC_BASE_MAX: u32 = 99;
793pub const BC_DIM_MAX: u32 = 2048;
794pub const BC_SCALE_MAX: u32 = 99;
795pub const BC_STRING_MAX: u32 = 1000;
796pub const COLL_WEIGHTS_MAX: u32 = 255;
797pub const EXPR_NEST_MAX: u32 = 32;
798pub const LINE_MAX: u32 = 2048;
799pub const CHARCLASS_NAME_MAX: u32 = 2048;
800pub const RE_DUP_MAX: u32 = 32767;
801pub const G_GINT16_MODIFIER: &'static [u8; 2usize] = b"h\0";
802pub const G_GINT16_FORMAT: &'static [u8; 3usize] = b"hi\0";
803pub const G_GUINT16_FORMAT: &'static [u8; 3usize] = b"hu\0";
804pub const G_GINT32_MODIFIER: &'static [u8; 1usize] = b"\0";
805pub const G_GINT32_FORMAT: &'static [u8; 2usize] = b"i\0";
806pub const G_GUINT32_FORMAT: &'static [u8; 2usize] = b"u\0";
807pub const G_HAVE_GINT64: u32 = 1;
808pub const G_GINT64_MODIFIER: &'static [u8; 2usize] = b"l\0";
809pub const G_GINT64_FORMAT: &'static [u8; 3usize] = b"li\0";
810pub const G_GUINT64_FORMAT: &'static [u8; 3usize] = b"lu\0";
811pub const GLIB_SIZEOF_VOID_P: u32 = 8;
812pub const GLIB_SIZEOF_LONG: u32 = 8;
813pub const GLIB_SIZEOF_SIZE_T: u32 = 8;
814pub const GLIB_SIZEOF_SSIZE_T: u32 = 8;
815pub const G_GSIZE_MODIFIER: &'static [u8; 2usize] = b"l\0";
816pub const G_GSSIZE_MODIFIER: &'static [u8; 2usize] = b"l\0";
817pub const G_GSIZE_FORMAT: &'static [u8; 3usize] = b"lu\0";
818pub const G_GSSIZE_FORMAT: &'static [u8; 3usize] = b"li\0";
819pub const G_GOFFSET_MODIFIER: &'static [u8; 2usize] = b"l\0";
820pub const G_GOFFSET_FORMAT: &'static [u8; 3usize] = b"li\0";
821pub const G_POLLFD_FORMAT: &'static [u8; 3usize] = b"%d\0";
822pub const G_GINTPTR_MODIFIER: &'static [u8; 2usize] = b"l\0";
823pub const G_GINTPTR_FORMAT: &'static [u8; 3usize] = b"li\0";
824pub const G_GUINTPTR_FORMAT: &'static [u8; 3usize] = b"lu\0";
825pub const GLIB_MAJOR_VERSION: u32 = 2;
826pub const GLIB_MINOR_VERSION: u32 = 56;
827pub const GLIB_MICRO_VERSION: u32 = 4;
828pub const G_VA_COPY_AS_ARRAY: u32 = 1;
829pub const G_HAVE_ISO_VARARGS: u32 = 1;
830pub const G_HAVE_GNUC_VARARGS: u32 = 1;
831pub const G_HAVE_GROWING_STACK: u32 = 0;
832pub const G_HAVE_GNUC_VISIBILITY: u32 = 1;
833pub const G_MODULE_SUFFIX: &'static [u8; 3usize] = b"so\0";
834pub const G_PID_FORMAT: &'static [u8; 2usize] = b"i\0";
835pub const GLIB_SYSDEF_AF_UNIX: u32 = 1;
836pub const GLIB_SYSDEF_AF_INET: u32 = 2;
837pub const GLIB_SYSDEF_AF_INET6: u32 = 10;
838pub const GLIB_SYSDEF_MSG_OOB: u32 = 1;
839pub const GLIB_SYSDEF_MSG_PEEK: u32 = 2;
840pub const GLIB_SYSDEF_MSG_DONTROUTE: u32 = 4;
841pub const G_DIR_SEPARATOR: u8 = 47u8;
842pub const G_DIR_SEPARATOR_S: &'static [u8; 2usize] = b"/\0";
843pub const G_SEARCHPATH_SEPARATOR: u8 = 58u8;
844pub const G_SEARCHPATH_SEPARATOR_S: &'static [u8; 2usize] = b":\0";
845pub const G_E: f64 = 2.718281828459045;
846pub const G_LN2: f64 = 0.6931471805599453;
847pub const G_LN10: f64 = 2.302585092994046;
848pub const G_PI: f64 = 3.141592653589793;
849pub const G_PI_2: f64 = 1.5707963267948966;
850pub const G_PI_4: f64 = 0.7853981633974483;
851pub const G_SQRT2: f64 = 1.4142135623730951;
852pub const G_LITTLE_ENDIAN: u32 = 1234;
853pub const G_BIG_ENDIAN: u32 = 4321;
854pub const G_PDP_ENDIAN: u32 = 3412;
855pub const G_IEEE754_FLOAT_BIAS: u32 = 127;
856pub const G_IEEE754_DOUBLE_BIAS: u32 = 1023;
857pub const G_LOG_2_BASE_10: f64 = 0.3010299956639812;
858pub const _BITS_SIGNUM_H: u32 = 1;
859pub const _BITS_SIGNUM_GENERIC_H: u32 = 1;
860pub const SIGINT: u32 = 2;
861pub const SIGILL: u32 = 4;
862pub const SIGABRT: u32 = 6;
863pub const SIGFPE: u32 = 8;
864pub const SIGSEGV: u32 = 11;
865pub const SIGTERM: u32 = 15;
866pub const SIGHUP: u32 = 1;
867pub const SIGQUIT: u32 = 3;
868pub const SIGTRAP: u32 = 5;
869pub const SIGKILL: u32 = 9;
870pub const SIGBUS: u32 = 10;
871pub const SIGSYS: u32 = 12;
872pub const SIGPIPE: u32 = 13;
873pub const SIGALRM: u32 = 14;
874pub const SIGURG: u32 = 16;
875pub const SIGSTOP: u32 = 17;
876pub const SIGTSTP: u32 = 18;
877pub const SIGCONT: u32 = 19;
878pub const SIGCHLD: u32 = 20;
879pub const SIGTTIN: u32 = 21;
880pub const SIGTTOU: u32 = 22;
881pub const SIGPOLL: u32 = 23;
882pub const SIGXCPU: u32 = 24;
883pub const SIGXFSZ: u32 = 25;
884pub const SIGVTALRM: u32 = 26;
885pub const SIGPROF: u32 = 27;
886pub const SIGUSR1: u32 = 30;
887pub const SIGUSR2: u32 = 31;
888pub const SIGWINCH: u32 = 28;
889pub const SIGIO: u32 = 23;
890pub const SIGIOT: u32 = 6;
891pub const SIGCLD: u32 = 20;
892pub const __SIGRTMIN: u32 = 32;
893pub const __SIGRTMAX: u32 = 32;
894pub const _NSIG: u32 = 33;
895pub const SIGSTKFLT: u32 = 16;
896pub const SIGPWR: u32 = 30;
897pub const __sig_atomic_t_defined: u32 = 1;
898pub const __siginfo_t_defined: u32 = 1;
899pub const __SI_MAX_SIZE: u32 = 128;
900pub const _BITS_SIGINFO_ARCH_H: u32 = 1;
901pub const __SI_ERRNO_THEN_CODE: u32 = 1;
902pub const __SI_HAVE_SIGSYS: u32 = 1;
903pub const _BITS_SIGINFO_CONSTS_H: u32 = 1;
904pub const __SI_ASYNCIO_AFTER_SIGIO: u32 = 1;
905pub const __sigevent_t_defined: u32 = 1;
906pub const __SIGEV_MAX_SIZE: u32 = 64;
907pub const _BITS_SIGEVENT_CONSTS_H: u32 = 1;
908pub const NSIG: u32 = 33;
909pub const SA_NOCLDSTOP: u32 = 1;
910pub const SA_NOCLDWAIT: u32 = 2;
911pub const SA_SIGINFO: u32 = 4;
912pub const SA_ONSTACK: u32 = 134217728;
913pub const SA_RESTART: u32 = 268435456;
914pub const SA_NODEFER: u32 = 1073741824;
915pub const SA_RESETHAND: u32 = 2147483648;
916pub const SA_INTERRUPT: u32 = 536870912;
917pub const SA_NOMASK: u32 = 1073741824;
918pub const SA_ONESHOT: u32 = 2147483648;
919pub const SA_STACK: u32 = 134217728;
920pub const SIG_BLOCK: u32 = 0;
921pub const SIG_UNBLOCK: u32 = 1;
922pub const SIG_SETMASK: u32 = 2;
923pub const _BITS_SIGCONTEXT_H: u32 = 1;
924pub const FP_XSTATE_MAGIC1: u32 = 1179670611;
925pub const FP_XSTATE_MAGIC2: u32 = 1179670597;
926pub const __stack_t_defined: u32 = 1;
927pub const _SYS_UCONTEXT_H: u32 = 1;
928pub const __NGREG: u32 = 23;
929pub const NGREG: u32 = 23;
930pub const _BITS_SIGSTACK_H: u32 = 1;
931pub const MINSIGSTKSZ: u32 = 2048;
932pub const SIGSTKSZ: u32 = 8192;
933pub const _BITS_SS_FLAGS_H: u32 = 1;
934pub const __sigstack_defined: u32 = 1;
935pub const _BITS_SIGTHREAD_H: u32 = 1;
936pub const G_DATALIST_FLAGS_MASK: u32 = 3;
937pub const G_DATE_BAD_JULIAN: u32 = 0;
938pub const G_DATE_BAD_DAY: u32 = 0;
939pub const G_DATE_BAD_YEAR: u32 = 0;
940pub const G_MEM_ALIGN: u32 = 8;
941pub const G_HOOK_FLAG_USER_SHIFT: u32 = 4;
942pub const G_PRIORITY_HIGH: i32 = -100;
943pub const G_PRIORITY_DEFAULT: u32 = 0;
944pub const G_PRIORITY_HIGH_IDLE: u32 = 100;
945pub const G_PRIORITY_DEFAULT_IDLE: u32 = 200;
946pub const G_PRIORITY_LOW: u32 = 300;
947pub const G_SOURCE_REMOVE: u32 = 0;
948pub const G_UNICHAR_MAX_DECOMPOSITION_LENGTH: u32 = 18;
949pub const G_KEY_FILE_DESKTOP_GROUP: &'static [u8; 14usize] = b"Desktop Entry\0";
950pub const G_KEY_FILE_DESKTOP_ACTION_GROUP_PREFIX: &'static [u8; 15usize] = b"Desktop Action\0";
951pub const G_KEY_FILE_DESKTOP_KEY_TYPE: &'static [u8; 5usize] = b"Type\0";
952pub const G_KEY_FILE_DESKTOP_KEY_VERSION: &'static [u8; 8usize] = b"Version\0";
953pub const G_KEY_FILE_DESKTOP_KEY_NAME: &'static [u8; 5usize] = b"Name\0";
954pub const G_KEY_FILE_DESKTOP_KEY_GENERIC_NAME: &'static [u8; 12usize] = b"GenericName\0";
955pub const G_KEY_FILE_DESKTOP_KEY_NO_DISPLAY: &'static [u8; 10usize] = b"NoDisplay\0";
956pub const G_KEY_FILE_DESKTOP_KEY_COMMENT: &'static [u8; 8usize] = b"Comment\0";
957pub const G_KEY_FILE_DESKTOP_KEY_ICON: &'static [u8; 5usize] = b"Icon\0";
958pub const G_KEY_FILE_DESKTOP_KEY_HIDDEN: &'static [u8; 7usize] = b"Hidden\0";
959pub const G_KEY_FILE_DESKTOP_KEY_ONLY_SHOW_IN: &'static [u8; 11usize] = b"OnlyShowIn\0";
960pub const G_KEY_FILE_DESKTOP_KEY_NOT_SHOW_IN: &'static [u8; 10usize] = b"NotShowIn\0";
961pub const G_KEY_FILE_DESKTOP_KEY_TRY_EXEC: &'static [u8; 8usize] = b"TryExec\0";
962pub const G_KEY_FILE_DESKTOP_KEY_EXEC: &'static [u8; 5usize] = b"Exec\0";
963pub const G_KEY_FILE_DESKTOP_KEY_PATH: &'static [u8; 5usize] = b"Path\0";
964pub const G_KEY_FILE_DESKTOP_KEY_TERMINAL: &'static [u8; 9usize] = b"Terminal\0";
965pub const G_KEY_FILE_DESKTOP_KEY_MIME_TYPE: &'static [u8; 9usize] = b"MimeType\0";
966pub const G_KEY_FILE_DESKTOP_KEY_CATEGORIES: &'static [u8; 11usize] = b"Categories\0";
967pub const G_KEY_FILE_DESKTOP_KEY_STARTUP_NOTIFY: &'static [u8; 14usize] = b"StartupNotify\0";
968pub const G_KEY_FILE_DESKTOP_KEY_STARTUP_WM_CLASS: &'static [u8; 15usize] = b"StartupWMClass\0";
969pub const G_KEY_FILE_DESKTOP_KEY_URL: &'static [u8; 4usize] = b"URL\0";
970pub const G_KEY_FILE_DESKTOP_KEY_DBUS_ACTIVATABLE: &'static [u8; 16usize] = b"DBusActivatable\0";
971pub const G_KEY_FILE_DESKTOP_KEY_ACTIONS: &'static [u8; 8usize] = b"Actions\0";
972pub const G_KEY_FILE_DESKTOP_KEY_GETTEXT_DOMAIN: &'static [u8; 23usize] =
973    b"X-GNOME-Gettext-Domain\0";
974pub const G_KEY_FILE_DESKTOP_KEY_FULLNAME: &'static [u8; 17usize] = b"X-GNOME-FullName\0";
975pub const G_KEY_FILE_DESKTOP_KEY_KEYWORDS: &'static [u8; 9usize] = b"Keywords\0";
976pub const G_KEY_FILE_DESKTOP_TYPE_APPLICATION: &'static [u8; 12usize] = b"Application\0";
977pub const G_KEY_FILE_DESKTOP_TYPE_LINK: &'static [u8; 5usize] = b"Link\0";
978pub const G_KEY_FILE_DESKTOP_TYPE_DIRECTORY: &'static [u8; 10usize] = b"Directory\0";
979pub const G_LOG_LEVEL_USER_SHIFT: u32 = 8;
980pub const G_OPTION_REMAINING: &'static [u8; 1usize] = b"\0";
981pub const G_CSET_A_2_Z: &'static [u8; 27usize] = b"ABCDEFGHIJKLMNOPQRSTUVWXYZ\0";
982pub const G_CSET_a_2_z: &'static [u8; 27usize] = b"abcdefghijklmnopqrstuvwxyz\0";
983pub const G_CSET_DIGITS: &'static [u8; 11usize] = b"0123456789\0";
984pub const G_CSET_LATINC: [u8; 31usize] = [
985    192u8, 193u8, 194u8, 195u8, 196u8, 197u8, 198u8, 199u8, 200u8, 201u8, 202u8, 203u8, 204u8,
986    205u8, 206u8, 207u8, 208u8, 209u8, 210u8, 211u8, 212u8, 213u8, 214u8, 216u8, 217u8, 218u8,
987    219u8, 220u8, 221u8, 222u8, 0u8,
988];
989pub const G_CSET_LATINS: [u8; 33usize] = [
990    223u8, 224u8, 225u8, 226u8, 227u8, 228u8, 229u8, 230u8, 231u8, 232u8, 233u8, 234u8, 235u8,
991    236u8, 237u8, 238u8, 239u8, 240u8, 241u8, 242u8, 243u8, 244u8, 245u8, 246u8, 248u8, 249u8,
992    250u8, 251u8, 252u8, 253u8, 254u8, 255u8, 0u8,
993];
994pub const G_STR_DELIMITERS: &'static [u8; 8usize] = b"_-|> <.\0";
995pub const G_ASCII_DTOSTR_BUF_SIZE: u32 = 39;
996pub const G_USEC_PER_SEC: u32 = 1000000;
997pub const G_URI_RESERVED_CHARS_GENERIC_DELIMITERS: &'static [u8; 8usize] = b":/?#[]@\0";
998pub const G_URI_RESERVED_CHARS_SUBCOMPONENT_DELIMITERS: &'static [u8; 12usize] = b"!$&'()*+,;=\0";
999pub const G_URI_RESERVED_CHARS_ALLOWED_IN_PATH_ELEMENT: &'static [u8; 14usize] = b"!$&'()*+,;=:@\0";
1000pub const G_URI_RESERVED_CHARS_ALLOWED_IN_PATH: &'static [u8; 15usize] = b"!$&'()*+,;=:@/\0";
1001pub const G_URI_RESERVED_CHARS_ALLOWED_IN_USERINFO: &'static [u8; 13usize] = b"!$&'()*+,;=:\0";
1002pub const G_ALLOC_ONLY: u32 = 1;
1003pub const G_ALLOC_AND_FREE: u32 = 2;
1004pub const G_ALLOCATOR_LIST: u32 = 1;
1005pub const G_ALLOCATOR_SLIST: u32 = 2;
1006pub const G_ALLOCATOR_NODE: u32 = 3;
1007pub const _PTHREAD_H: u32 = 1;
1008pub const _SCHED_H: u32 = 1;
1009pub const _BITS_SCHED_H: u32 = 1;
1010pub const SCHED_OTHER: u32 = 0;
1011pub const SCHED_FIFO: u32 = 1;
1012pub const SCHED_RR: u32 = 2;
1013pub const _BITS_CPU_SET_H: u32 = 1;
1014pub const __CPU_SETSIZE: u32 = 1024;
1015pub const _BITS_SETJMP_H: u32 = 1;
1016pub const PTHREAD_ONCE_INIT: u32 = 0;
1017pub const PTHREAD_BARRIER_SERIAL_THREAD: i32 = -1;
1018pub const PRIuUOFF_T: &'static [u8; 3usize] = b"lu\0";
1019pub const G_INPUT_READ: u32 = 1;
1020pub const G_INPUT_WRITE: u32 = 2;
1021pub const SIGNAL_PRIORITY_LOW: u32 = 100;
1022pub const SIGNAL_PRIORITY_DEFAULT: u32 = 0;
1023pub const SIGNAL_PRIORITY_HIGH: i32 = -100;
1024pub const SIGNAL_MAX_ARGUMENTS: u32 = 6;
1025pub const IRSSI_GUI_NONE: u32 = 0;
1026pub const IRSSI_GUI_TEXT: u32 = 1;
1027pub const IRSSI_GUI_GTK: u32 = 2;
1028pub const IRSSI_GUI_GNOME: u32 = 3;
1029pub const IRSSI_GUI_QT: u32 = 4;
1030pub const IRSSI_GUI_KDE: u32 = 5;
1031pub type __u_char = ::std::os::raw::c_uchar;
1032pub type __u_short = ::std::os::raw::c_ushort;
1033pub type __u_int = ::std::os::raw::c_uint;
1034pub type __u_long = ::std::os::raw::c_ulong;
1035pub type __int8_t = ::std::os::raw::c_schar;
1036pub type __uint8_t = ::std::os::raw::c_uchar;
1037pub type __int16_t = ::std::os::raw::c_short;
1038pub type __uint16_t = ::std::os::raw::c_ushort;
1039pub type __int32_t = ::std::os::raw::c_int;
1040pub type __uint32_t = ::std::os::raw::c_uint;
1041pub type __int64_t = ::std::os::raw::c_long;
1042pub type __uint64_t = ::std::os::raw::c_ulong;
1043pub type __quad_t = ::std::os::raw::c_long;
1044pub type __u_quad_t = ::std::os::raw::c_ulong;
1045pub type __intmax_t = ::std::os::raw::c_long;
1046pub type __uintmax_t = ::std::os::raw::c_ulong;
1047pub type __dev_t = ::std::os::raw::c_ulong;
1048pub type __uid_t = ::std::os::raw::c_uint;
1049pub type __gid_t = ::std::os::raw::c_uint;
1050pub type __ino_t = ::std::os::raw::c_ulong;
1051pub type __ino64_t = ::std::os::raw::c_ulong;
1052pub type __mode_t = ::std::os::raw::c_uint;
1053pub type __nlink_t = ::std::os::raw::c_ulong;
1054pub type __off_t = ::std::os::raw::c_long;
1055pub type __off64_t = ::std::os::raw::c_long;
1056pub type __pid_t = ::std::os::raw::c_int;
1057#[repr(C)]
1058#[derive(Debug, Copy, Clone)]
1059pub struct __fsid_t {
1060    pub __val: [::std::os::raw::c_int; 2usize],
1061}
1062#[test]
1063fn bindgen_test_layout___fsid_t() {
1064    assert_eq!(
1065        ::std::mem::size_of::<__fsid_t>(),
1066        8usize,
1067        concat!("Size of: ", stringify!(__fsid_t))
1068    );
1069    assert_eq!(
1070        ::std::mem::align_of::<__fsid_t>(),
1071        4usize,
1072        concat!("Alignment of ", stringify!(__fsid_t))
1073    );
1074    assert_eq!(
1075        unsafe { &(*(::std::ptr::null::<__fsid_t>())).__val as *const _ as usize },
1076        0usize,
1077        concat!(
1078            "Offset of field: ",
1079            stringify!(__fsid_t),
1080            "::",
1081            stringify!(__val)
1082        )
1083    );
1084}
1085pub type __clock_t = ::std::os::raw::c_long;
1086pub type __rlim_t = ::std::os::raw::c_ulong;
1087pub type __rlim64_t = ::std::os::raw::c_ulong;
1088pub type __id_t = ::std::os::raw::c_uint;
1089pub type __time_t = ::std::os::raw::c_long;
1090pub type __useconds_t = ::std::os::raw::c_uint;
1091pub type __suseconds_t = ::std::os::raw::c_long;
1092pub type __daddr_t = ::std::os::raw::c_int;
1093pub type __key_t = ::std::os::raw::c_int;
1094pub type __clockid_t = ::std::os::raw::c_int;
1095pub type __timer_t = *mut ::std::os::raw::c_void;
1096pub type __blksize_t = ::std::os::raw::c_long;
1097pub type __blkcnt_t = ::std::os::raw::c_long;
1098pub type __blkcnt64_t = ::std::os::raw::c_long;
1099pub type __fsblkcnt_t = ::std::os::raw::c_ulong;
1100pub type __fsblkcnt64_t = ::std::os::raw::c_ulong;
1101pub type __fsfilcnt_t = ::std::os::raw::c_ulong;
1102pub type __fsfilcnt64_t = ::std::os::raw::c_ulong;
1103pub type __fsword_t = ::std::os::raw::c_long;
1104pub type __ssize_t = ::std::os::raw::c_long;
1105pub type __syscall_slong_t = ::std::os::raw::c_long;
1106pub type __syscall_ulong_t = ::std::os::raw::c_ulong;
1107pub type __loff_t = __off64_t;
1108pub type __caddr_t = *mut ::std::os::raw::c_char;
1109pub type __intptr_t = ::std::os::raw::c_long;
1110pub type __socklen_t = ::std::os::raw::c_uint;
1111pub type __sig_atomic_t = ::std::os::raw::c_int;
1112pub type __FILE = _IO_FILE;
1113pub type FILE = _IO_FILE;
1114#[repr(C)]
1115#[derive(Copy, Clone)]
1116pub struct __mbstate_t {
1117    pub __count: ::std::os::raw::c_int,
1118    pub __value: __mbstate_t__bindgen_ty_1,
1119}
1120#[repr(C)]
1121#[derive(Copy, Clone)]
1122pub union __mbstate_t__bindgen_ty_1 {
1123    pub __wch: ::std::os::raw::c_uint,
1124    pub __wchb: [::std::os::raw::c_char; 4usize],
1125    _bindgen_union_align: u32,
1126}
1127#[test]
1128fn bindgen_test_layout___mbstate_t__bindgen_ty_1() {
1129    assert_eq!(
1130        ::std::mem::size_of::<__mbstate_t__bindgen_ty_1>(),
1131        4usize,
1132        concat!("Size of: ", stringify!(__mbstate_t__bindgen_ty_1))
1133    );
1134    assert_eq!(
1135        ::std::mem::align_of::<__mbstate_t__bindgen_ty_1>(),
1136        4usize,
1137        concat!("Alignment of ", stringify!(__mbstate_t__bindgen_ty_1))
1138    );
1139    assert_eq!(
1140        unsafe { &(*(::std::ptr::null::<__mbstate_t__bindgen_ty_1>())).__wch as *const _ as usize },
1141        0usize,
1142        concat!(
1143            "Offset of field: ",
1144            stringify!(__mbstate_t__bindgen_ty_1),
1145            "::",
1146            stringify!(__wch)
1147        )
1148    );
1149    assert_eq!(
1150        unsafe {
1151            &(*(::std::ptr::null::<__mbstate_t__bindgen_ty_1>())).__wchb as *const _ as usize
1152        },
1153        0usize,
1154        concat!(
1155            "Offset of field: ",
1156            stringify!(__mbstate_t__bindgen_ty_1),
1157            "::",
1158            stringify!(__wchb)
1159        )
1160    );
1161}
1162#[test]
1163fn bindgen_test_layout___mbstate_t() {
1164    assert_eq!(
1165        ::std::mem::size_of::<__mbstate_t>(),
1166        8usize,
1167        concat!("Size of: ", stringify!(__mbstate_t))
1168    );
1169    assert_eq!(
1170        ::std::mem::align_of::<__mbstate_t>(),
1171        4usize,
1172        concat!("Alignment of ", stringify!(__mbstate_t))
1173    );
1174    assert_eq!(
1175        unsafe { &(*(::std::ptr::null::<__mbstate_t>())).__count as *const _ as usize },
1176        0usize,
1177        concat!(
1178            "Offset of field: ",
1179            stringify!(__mbstate_t),
1180            "::",
1181            stringify!(__count)
1182        )
1183    );
1184    assert_eq!(
1185        unsafe { &(*(::std::ptr::null::<__mbstate_t>())).__value as *const _ as usize },
1186        4usize,
1187        concat!(
1188            "Offset of field: ",
1189            stringify!(__mbstate_t),
1190            "::",
1191            stringify!(__value)
1192        )
1193    );
1194}
1195#[repr(C)]
1196#[derive(Copy, Clone)]
1197pub struct _G_fpos_t {
1198    pub __pos: __off_t,
1199    pub __state: __mbstate_t,
1200}
1201#[test]
1202fn bindgen_test_layout__G_fpos_t() {
1203    assert_eq!(
1204        ::std::mem::size_of::<_G_fpos_t>(),
1205        16usize,
1206        concat!("Size of: ", stringify!(_G_fpos_t))
1207    );
1208    assert_eq!(
1209        ::std::mem::align_of::<_G_fpos_t>(),
1210        8usize,
1211        concat!("Alignment of ", stringify!(_G_fpos_t))
1212    );
1213    assert_eq!(
1214        unsafe { &(*(::std::ptr::null::<_G_fpos_t>())).__pos as *const _ as usize },
1215        0usize,
1216        concat!(
1217            "Offset of field: ",
1218            stringify!(_G_fpos_t),
1219            "::",
1220            stringify!(__pos)
1221        )
1222    );
1223    assert_eq!(
1224        unsafe { &(*(::std::ptr::null::<_G_fpos_t>())).__state as *const _ as usize },
1225        8usize,
1226        concat!(
1227            "Offset of field: ",
1228            stringify!(_G_fpos_t),
1229            "::",
1230            stringify!(__state)
1231        )
1232    );
1233}
1234#[repr(C)]
1235#[derive(Copy, Clone)]
1236pub struct _G_fpos64_t {
1237    pub __pos: __off64_t,
1238    pub __state: __mbstate_t,
1239}
1240#[test]
1241fn bindgen_test_layout__G_fpos64_t() {
1242    assert_eq!(
1243        ::std::mem::size_of::<_G_fpos64_t>(),
1244        16usize,
1245        concat!("Size of: ", stringify!(_G_fpos64_t))
1246    );
1247    assert_eq!(
1248        ::std::mem::align_of::<_G_fpos64_t>(),
1249        8usize,
1250        concat!("Alignment of ", stringify!(_G_fpos64_t))
1251    );
1252    assert_eq!(
1253        unsafe { &(*(::std::ptr::null::<_G_fpos64_t>())).__pos as *const _ as usize },
1254        0usize,
1255        concat!(
1256            "Offset of field: ",
1257            stringify!(_G_fpos64_t),
1258            "::",
1259            stringify!(__pos)
1260        )
1261    );
1262    assert_eq!(
1263        unsafe { &(*(::std::ptr::null::<_G_fpos64_t>())).__state as *const _ as usize },
1264        8usize,
1265        concat!(
1266            "Offset of field: ",
1267            stringify!(_G_fpos64_t),
1268            "::",
1269            stringify!(__state)
1270        )
1271    );
1272}
1273pub type va_list = __builtin_va_list;
1274pub type __gnuc_va_list = __builtin_va_list;
1275#[repr(C)]
1276#[derive(Debug, Copy, Clone)]
1277pub struct _IO_jump_t {
1278    _unused: [u8; 0],
1279}
1280pub type _IO_lock_t = ::std::os::raw::c_void;
1281#[repr(C)]
1282#[derive(Debug, Copy, Clone)]
1283pub struct _IO_marker {
1284    pub _next: *mut _IO_marker,
1285    pub _sbuf: *mut _IO_FILE,
1286    pub _pos: ::std::os::raw::c_int,
1287}
1288#[test]
1289fn bindgen_test_layout__IO_marker() {
1290    assert_eq!(
1291        ::std::mem::size_of::<_IO_marker>(),
1292        24usize,
1293        concat!("Size of: ", stringify!(_IO_marker))
1294    );
1295    assert_eq!(
1296        ::std::mem::align_of::<_IO_marker>(),
1297        8usize,
1298        concat!("Alignment of ", stringify!(_IO_marker))
1299    );
1300    assert_eq!(
1301        unsafe { &(*(::std::ptr::null::<_IO_marker>()))._next as *const _ as usize },
1302        0usize,
1303        concat!(
1304            "Offset of field: ",
1305            stringify!(_IO_marker),
1306            "::",
1307            stringify!(_next)
1308        )
1309    );
1310    assert_eq!(
1311        unsafe { &(*(::std::ptr::null::<_IO_marker>()))._sbuf as *const _ as usize },
1312        8usize,
1313        concat!(
1314            "Offset of field: ",
1315            stringify!(_IO_marker),
1316            "::",
1317            stringify!(_sbuf)
1318        )
1319    );
1320    assert_eq!(
1321        unsafe { &(*(::std::ptr::null::<_IO_marker>()))._pos as *const _ as usize },
1322        16usize,
1323        concat!(
1324            "Offset of field: ",
1325            stringify!(_IO_marker),
1326            "::",
1327            stringify!(_pos)
1328        )
1329    );
1330}
1331pub const __codecvt_result___codecvt_ok: __codecvt_result = 0;
1332pub const __codecvt_result___codecvt_partial: __codecvt_result = 1;
1333pub const __codecvt_result___codecvt_error: __codecvt_result = 2;
1334pub const __codecvt_result___codecvt_noconv: __codecvt_result = 3;
1335pub type __codecvt_result = u32;
1336#[repr(C)]
1337#[derive(Debug, Copy, Clone)]
1338pub struct _IO_FILE {
1339    pub _flags: ::std::os::raw::c_int,
1340    pub _IO_read_ptr: *mut ::std::os::raw::c_char,
1341    pub _IO_read_end: *mut ::std::os::raw::c_char,
1342    pub _IO_read_base: *mut ::std::os::raw::c_char,
1343    pub _IO_write_base: *mut ::std::os::raw::c_char,
1344    pub _IO_write_ptr: *mut ::std::os::raw::c_char,
1345    pub _IO_write_end: *mut ::std::os::raw::c_char,
1346    pub _IO_buf_base: *mut ::std::os::raw::c_char,
1347    pub _IO_buf_end: *mut ::std::os::raw::c_char,
1348    pub _IO_save_base: *mut ::std::os::raw::c_char,
1349    pub _IO_backup_base: *mut ::std::os::raw::c_char,
1350    pub _IO_save_end: *mut ::std::os::raw::c_char,
1351    pub _markers: *mut _IO_marker,
1352    pub _chain: *mut _IO_FILE,
1353    pub _fileno: ::std::os::raw::c_int,
1354    pub _flags2: ::std::os::raw::c_int,
1355    pub _old_offset: __off_t,
1356    pub _cur_column: ::std::os::raw::c_ushort,
1357    pub _vtable_offset: ::std::os::raw::c_schar,
1358    pub _shortbuf: [::std::os::raw::c_char; 1usize],
1359    pub _lock: *mut _IO_lock_t,
1360    pub _offset: __off64_t,
1361    pub __pad1: *mut ::std::os::raw::c_void,
1362    pub __pad2: *mut ::std::os::raw::c_void,
1363    pub __pad3: *mut ::std::os::raw::c_void,
1364    pub __pad4: *mut ::std::os::raw::c_void,
1365    pub __pad5: usize,
1366    pub _mode: ::std::os::raw::c_int,
1367    pub _unused2: [::std::os::raw::c_char; 20usize],
1368}
1369#[test]
1370fn bindgen_test_layout__IO_FILE() {
1371    assert_eq!(
1372        ::std::mem::size_of::<_IO_FILE>(),
1373        216usize,
1374        concat!("Size of: ", stringify!(_IO_FILE))
1375    );
1376    assert_eq!(
1377        ::std::mem::align_of::<_IO_FILE>(),
1378        8usize,
1379        concat!("Alignment of ", stringify!(_IO_FILE))
1380    );
1381    assert_eq!(
1382        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._flags as *const _ as usize },
1383        0usize,
1384        concat!(
1385            "Offset of field: ",
1386            stringify!(_IO_FILE),
1387            "::",
1388            stringify!(_flags)
1389        )
1390    );
1391    assert_eq!(
1392        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_read_ptr as *const _ as usize },
1393        8usize,
1394        concat!(
1395            "Offset of field: ",
1396            stringify!(_IO_FILE),
1397            "::",
1398            stringify!(_IO_read_ptr)
1399        )
1400    );
1401    assert_eq!(
1402        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_read_end as *const _ as usize },
1403        16usize,
1404        concat!(
1405            "Offset of field: ",
1406            stringify!(_IO_FILE),
1407            "::",
1408            stringify!(_IO_read_end)
1409        )
1410    );
1411    assert_eq!(
1412        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_read_base as *const _ as usize },
1413        24usize,
1414        concat!(
1415            "Offset of field: ",
1416            stringify!(_IO_FILE),
1417            "::",
1418            stringify!(_IO_read_base)
1419        )
1420    );
1421    assert_eq!(
1422        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_write_base as *const _ as usize },
1423        32usize,
1424        concat!(
1425            "Offset of field: ",
1426            stringify!(_IO_FILE),
1427            "::",
1428            stringify!(_IO_write_base)
1429        )
1430    );
1431    assert_eq!(
1432        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_write_ptr as *const _ as usize },
1433        40usize,
1434        concat!(
1435            "Offset of field: ",
1436            stringify!(_IO_FILE),
1437            "::",
1438            stringify!(_IO_write_ptr)
1439        )
1440    );
1441    assert_eq!(
1442        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_write_end as *const _ as usize },
1443        48usize,
1444        concat!(
1445            "Offset of field: ",
1446            stringify!(_IO_FILE),
1447            "::",
1448            stringify!(_IO_write_end)
1449        )
1450    );
1451    assert_eq!(
1452        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_buf_base as *const _ as usize },
1453        56usize,
1454        concat!(
1455            "Offset of field: ",
1456            stringify!(_IO_FILE),
1457            "::",
1458            stringify!(_IO_buf_base)
1459        )
1460    );
1461    assert_eq!(
1462        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_buf_end as *const _ as usize },
1463        64usize,
1464        concat!(
1465            "Offset of field: ",
1466            stringify!(_IO_FILE),
1467            "::",
1468            stringify!(_IO_buf_end)
1469        )
1470    );
1471    assert_eq!(
1472        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_save_base as *const _ as usize },
1473        72usize,
1474        concat!(
1475            "Offset of field: ",
1476            stringify!(_IO_FILE),
1477            "::",
1478            stringify!(_IO_save_base)
1479        )
1480    );
1481    assert_eq!(
1482        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_backup_base as *const _ as usize },
1483        80usize,
1484        concat!(
1485            "Offset of field: ",
1486            stringify!(_IO_FILE),
1487            "::",
1488            stringify!(_IO_backup_base)
1489        )
1490    );
1491    assert_eq!(
1492        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_save_end as *const _ as usize },
1493        88usize,
1494        concat!(
1495            "Offset of field: ",
1496            stringify!(_IO_FILE),
1497            "::",
1498            stringify!(_IO_save_end)
1499        )
1500    );
1501    assert_eq!(
1502        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._markers as *const _ as usize },
1503        96usize,
1504        concat!(
1505            "Offset of field: ",
1506            stringify!(_IO_FILE),
1507            "::",
1508            stringify!(_markers)
1509        )
1510    );
1511    assert_eq!(
1512        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._chain as *const _ as usize },
1513        104usize,
1514        concat!(
1515            "Offset of field: ",
1516            stringify!(_IO_FILE),
1517            "::",
1518            stringify!(_chain)
1519        )
1520    );
1521    assert_eq!(
1522        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._fileno as *const _ as usize },
1523        112usize,
1524        concat!(
1525            "Offset of field: ",
1526            stringify!(_IO_FILE),
1527            "::",
1528            stringify!(_fileno)
1529        )
1530    );
1531    assert_eq!(
1532        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._flags2 as *const _ as usize },
1533        116usize,
1534        concat!(
1535            "Offset of field: ",
1536            stringify!(_IO_FILE),
1537            "::",
1538            stringify!(_flags2)
1539        )
1540    );
1541    assert_eq!(
1542        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._old_offset as *const _ as usize },
1543        120usize,
1544        concat!(
1545            "Offset of field: ",
1546            stringify!(_IO_FILE),
1547            "::",
1548            stringify!(_old_offset)
1549        )
1550    );
1551    assert_eq!(
1552        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._cur_column as *const _ as usize },
1553        128usize,
1554        concat!(
1555            "Offset of field: ",
1556            stringify!(_IO_FILE),
1557            "::",
1558            stringify!(_cur_column)
1559        )
1560    );
1561    assert_eq!(
1562        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._vtable_offset as *const _ as usize },
1563        130usize,
1564        concat!(
1565            "Offset of field: ",
1566            stringify!(_IO_FILE),
1567            "::",
1568            stringify!(_vtable_offset)
1569        )
1570    );
1571    assert_eq!(
1572        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._shortbuf as *const _ as usize },
1573        131usize,
1574        concat!(
1575            "Offset of field: ",
1576            stringify!(_IO_FILE),
1577            "::",
1578            stringify!(_shortbuf)
1579        )
1580    );
1581    assert_eq!(
1582        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._lock as *const _ as usize },
1583        136usize,
1584        concat!(
1585            "Offset of field: ",
1586            stringify!(_IO_FILE),
1587            "::",
1588            stringify!(_lock)
1589        )
1590    );
1591    assert_eq!(
1592        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._offset as *const _ as usize },
1593        144usize,
1594        concat!(
1595            "Offset of field: ",
1596            stringify!(_IO_FILE),
1597            "::",
1598            stringify!(_offset)
1599        )
1600    );
1601    assert_eq!(
1602        unsafe { &(*(::std::ptr::null::<_IO_FILE>())).__pad1 as *const _ as usize },
1603        152usize,
1604        concat!(
1605            "Offset of field: ",
1606            stringify!(_IO_FILE),
1607            "::",
1608            stringify!(__pad1)
1609        )
1610    );
1611    assert_eq!(
1612        unsafe { &(*(::std::ptr::null::<_IO_FILE>())).__pad2 as *const _ as usize },
1613        160usize,
1614        concat!(
1615            "Offset of field: ",
1616            stringify!(_IO_FILE),
1617            "::",
1618            stringify!(__pad2)
1619        )
1620    );
1621    assert_eq!(
1622        unsafe { &(*(::std::ptr::null::<_IO_FILE>())).__pad3 as *const _ as usize },
1623        168usize,
1624        concat!(
1625            "Offset of field: ",
1626            stringify!(_IO_FILE),
1627            "::",
1628            stringify!(__pad3)
1629        )
1630    );
1631    assert_eq!(
1632        unsafe { &(*(::std::ptr::null::<_IO_FILE>())).__pad4 as *const _ as usize },
1633        176usize,
1634        concat!(
1635            "Offset of field: ",
1636            stringify!(_IO_FILE),
1637            "::",
1638            stringify!(__pad4)
1639        )
1640    );
1641    assert_eq!(
1642        unsafe { &(*(::std::ptr::null::<_IO_FILE>())).__pad5 as *const _ as usize },
1643        184usize,
1644        concat!(
1645            "Offset of field: ",
1646            stringify!(_IO_FILE),
1647            "::",
1648            stringify!(__pad5)
1649        )
1650    );
1651    assert_eq!(
1652        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._mode as *const _ as usize },
1653        192usize,
1654        concat!(
1655            "Offset of field: ",
1656            stringify!(_IO_FILE),
1657            "::",
1658            stringify!(_mode)
1659        )
1660    );
1661    assert_eq!(
1662        unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._unused2 as *const _ as usize },
1663        196usize,
1664        concat!(
1665            "Offset of field: ",
1666            stringify!(_IO_FILE),
1667            "::",
1668            stringify!(_unused2)
1669        )
1670    );
1671}
1672#[repr(C)]
1673#[derive(Debug, Copy, Clone)]
1674pub struct _IO_FILE_plus {
1675    _unused: [u8; 0],
1676}
1677extern "C" {
1678    pub static mut _IO_2_1_stdin_: _IO_FILE_plus;
1679}
1680extern "C" {
1681    pub static mut _IO_2_1_stdout_: _IO_FILE_plus;
1682}
1683extern "C" {
1684    pub static mut _IO_2_1_stderr_: _IO_FILE_plus;
1685}
1686pub type __io_read_fn = ::std::option::Option<
1687    unsafe extern "C" fn(
1688        __cookie: *mut ::std::os::raw::c_void,
1689        __buf: *mut ::std::os::raw::c_char,
1690        __nbytes: usize,
1691    ) -> __ssize_t,
1692>;
1693pub type __io_write_fn = ::std::option::Option<
1694    unsafe extern "C" fn(
1695        __cookie: *mut ::std::os::raw::c_void,
1696        __buf: *const ::std::os::raw::c_char,
1697        __n: usize,
1698    ) -> __ssize_t,
1699>;
1700pub type __io_seek_fn = ::std::option::Option<
1701    unsafe extern "C" fn(
1702        __cookie: *mut ::std::os::raw::c_void,
1703        __pos: *mut __off64_t,
1704        __w: ::std::os::raw::c_int,
1705    ) -> ::std::os::raw::c_int,
1706>;
1707pub type __io_close_fn = ::std::option::Option<
1708    unsafe extern "C" fn(__cookie: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int,
1709>;
1710extern "C" {
1711    pub fn __underflow(arg1: *mut _IO_FILE) -> ::std::os::raw::c_int;
1712}
1713extern "C" {
1714    pub fn __uflow(arg1: *mut _IO_FILE) -> ::std::os::raw::c_int;
1715}
1716extern "C" {
1717    pub fn __overflow(arg1: *mut _IO_FILE, arg2: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
1718}
1719extern "C" {
1720    pub fn _IO_getc(__fp: *mut _IO_FILE) -> ::std::os::raw::c_int;
1721}
1722extern "C" {
1723    pub fn _IO_putc(__c: ::std::os::raw::c_int, __fp: *mut _IO_FILE) -> ::std::os::raw::c_int;
1724}
1725extern "C" {
1726    pub fn _IO_feof(__fp: *mut _IO_FILE) -> ::std::os::raw::c_int;
1727}
1728extern "C" {
1729    pub fn _IO_ferror(__fp: *mut _IO_FILE) -> ::std::os::raw::c_int;
1730}
1731extern "C" {
1732    pub fn _IO_peekc_locked(__fp: *mut _IO_FILE) -> ::std::os::raw::c_int;
1733}
1734extern "C" {
1735    pub fn _IO_flockfile(arg1: *mut _IO_FILE);
1736}
1737extern "C" {
1738    pub fn _IO_funlockfile(arg1: *mut _IO_FILE);
1739}
1740extern "C" {
1741    pub fn _IO_ftrylockfile(arg1: *mut _IO_FILE) -> ::std::os::raw::c_int;
1742}
1743extern "C" {
1744    pub fn _IO_vfscanf(
1745        arg1: *mut _IO_FILE,
1746        arg2: *const ::std::os::raw::c_char,
1747        arg3: *mut __va_list_tag,
1748        arg4: *mut ::std::os::raw::c_int,
1749    ) -> ::std::os::raw::c_int;
1750}
1751extern "C" {
1752    pub fn _IO_vfprintf(
1753        arg1: *mut _IO_FILE,
1754        arg2: *const ::std::os::raw::c_char,
1755        arg3: *mut __va_list_tag,
1756    ) -> ::std::os::raw::c_int;
1757}
1758extern "C" {
1759    pub fn _IO_padn(arg1: *mut _IO_FILE, arg2: ::std::os::raw::c_int, arg3: __ssize_t)
1760        -> __ssize_t;
1761}
1762extern "C" {
1763    pub fn _IO_sgetn(arg1: *mut _IO_FILE, arg2: *mut ::std::os::raw::c_void, arg3: usize) -> usize;
1764}
1765extern "C" {
1766    pub fn _IO_seekoff(
1767        arg1: *mut _IO_FILE,
1768        arg2: __off64_t,
1769        arg3: ::std::os::raw::c_int,
1770        arg4: ::std::os::raw::c_int,
1771    ) -> __off64_t;
1772}
1773extern "C" {
1774    pub fn _IO_seekpos(
1775        arg1: *mut _IO_FILE,
1776        arg2: __off64_t,
1777        arg3: ::std::os::raw::c_int,
1778    ) -> __off64_t;
1779}
1780extern "C" {
1781    pub fn _IO_free_backup_area(arg1: *mut _IO_FILE);
1782}
1783pub type off_t = __off_t;
1784pub type fpos_t = _G_fpos_t;
1785extern "C" {
1786    pub static mut stdin: *mut _IO_FILE;
1787}
1788extern "C" {
1789    pub static mut stdout: *mut _IO_FILE;
1790}
1791extern "C" {
1792    pub static mut stderr: *mut _IO_FILE;
1793}
1794extern "C" {
1795    pub fn remove(__filename: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
1796}
1797extern "C" {
1798    pub fn rename(
1799        __old: *const ::std::os::raw::c_char,
1800        __new: *const ::std::os::raw::c_char,
1801    ) -> ::std::os::raw::c_int;
1802}
1803extern "C" {
1804    pub fn renameat(
1805        __oldfd: ::std::os::raw::c_int,
1806        __old: *const ::std::os::raw::c_char,
1807        __newfd: ::std::os::raw::c_int,
1808        __new: *const ::std::os::raw::c_char,
1809    ) -> ::std::os::raw::c_int;
1810}
1811extern "C" {
1812    pub fn tmpfile() -> *mut FILE;
1813}
1814extern "C" {
1815    pub fn tmpnam(__s: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
1816}
1817extern "C" {
1818    pub fn tmpnam_r(__s: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
1819}
1820extern "C" {
1821    pub fn tempnam(
1822        __dir: *const ::std::os::raw::c_char,
1823        __pfx: *const ::std::os::raw::c_char,
1824    ) -> *mut ::std::os::raw::c_char;
1825}
1826extern "C" {
1827    pub fn fclose(__stream: *mut FILE) -> ::std::os::raw::c_int;
1828}
1829extern "C" {
1830    pub fn fflush(__stream: *mut FILE) -> ::std::os::raw::c_int;
1831}
1832extern "C" {
1833    pub fn fflush_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
1834}
1835extern "C" {
1836    pub fn fopen(
1837        __filename: *const ::std::os::raw::c_char,
1838        __modes: *const ::std::os::raw::c_char,
1839    ) -> *mut FILE;
1840}
1841extern "C" {
1842    pub fn freopen(
1843        __filename: *const ::std::os::raw::c_char,
1844        __modes: *const ::std::os::raw::c_char,
1845        __stream: *mut FILE,
1846    ) -> *mut FILE;
1847}
1848extern "C" {
1849    pub fn fdopen(__fd: ::std::os::raw::c_int, __modes: *const ::std::os::raw::c_char)
1850        -> *mut FILE;
1851}
1852extern "C" {
1853    pub fn fmemopen(
1854        __s: *mut ::std::os::raw::c_void,
1855        __len: usize,
1856        __modes: *const ::std::os::raw::c_char,
1857    ) -> *mut FILE;
1858}
1859extern "C" {
1860    pub fn open_memstream(
1861        __bufloc: *mut *mut ::std::os::raw::c_char,
1862        __sizeloc: *mut usize,
1863    ) -> *mut FILE;
1864}
1865extern "C" {
1866    pub fn setbuf(__stream: *mut FILE, __buf: *mut ::std::os::raw::c_char);
1867}
1868extern "C" {
1869    pub fn setvbuf(
1870        __stream: *mut FILE,
1871        __buf: *mut ::std::os::raw::c_char,
1872        __modes: ::std::os::raw::c_int,
1873        __n: usize,
1874    ) -> ::std::os::raw::c_int;
1875}
1876extern "C" {
1877    pub fn setbuffer(__stream: *mut FILE, __buf: *mut ::std::os::raw::c_char, __size: usize);
1878}
1879extern "C" {
1880    pub fn setlinebuf(__stream: *mut FILE);
1881}
1882extern "C" {
1883    pub fn fprintf(
1884        __stream: *mut FILE,
1885        __format: *const ::std::os::raw::c_char,
1886        ...
1887    ) -> ::std::os::raw::c_int;
1888}
1889extern "C" {
1890    pub fn printf(__format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int;
1891}
1892extern "C" {
1893    pub fn sprintf(
1894        __s: *mut ::std::os::raw::c_char,
1895        __format: *const ::std::os::raw::c_char,
1896        ...
1897    ) -> ::std::os::raw::c_int;
1898}
1899extern "C" {
1900    pub fn vfprintf(
1901        __s: *mut FILE,
1902        __format: *const ::std::os::raw::c_char,
1903        __arg: *mut __va_list_tag,
1904    ) -> ::std::os::raw::c_int;
1905}
1906extern "C" {
1907    pub fn vprintf(
1908        __format: *const ::std::os::raw::c_char,
1909        __arg: *mut __va_list_tag,
1910    ) -> ::std::os::raw::c_int;
1911}
1912extern "C" {
1913    pub fn vsprintf(
1914        __s: *mut ::std::os::raw::c_char,
1915        __format: *const ::std::os::raw::c_char,
1916        __arg: *mut __va_list_tag,
1917    ) -> ::std::os::raw::c_int;
1918}
1919extern "C" {
1920    pub fn snprintf(
1921        __s: *mut ::std::os::raw::c_char,
1922        __maxlen: ::std::os::raw::c_ulong,
1923        __format: *const ::std::os::raw::c_char,
1924        ...
1925    ) -> ::std::os::raw::c_int;
1926}
1927extern "C" {
1928    pub fn vsnprintf(
1929        __s: *mut ::std::os::raw::c_char,
1930        __maxlen: ::std::os::raw::c_ulong,
1931        __format: *const ::std::os::raw::c_char,
1932        __arg: *mut __va_list_tag,
1933    ) -> ::std::os::raw::c_int;
1934}
1935extern "C" {
1936    pub fn vdprintf(
1937        __fd: ::std::os::raw::c_int,
1938        __fmt: *const ::std::os::raw::c_char,
1939        __arg: *mut __va_list_tag,
1940    ) -> ::std::os::raw::c_int;
1941}
1942extern "C" {
1943    pub fn dprintf(
1944        __fd: ::std::os::raw::c_int,
1945        __fmt: *const ::std::os::raw::c_char,
1946        ...
1947    ) -> ::std::os::raw::c_int;
1948}
1949extern "C" {
1950    pub fn fscanf(
1951        __stream: *mut FILE,
1952        __format: *const ::std::os::raw::c_char,
1953        ...
1954    ) -> ::std::os::raw::c_int;
1955}
1956extern "C" {
1957    pub fn scanf(__format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int;
1958}
1959extern "C" {
1960    pub fn sscanf(
1961        __s: *const ::std::os::raw::c_char,
1962        __format: *const ::std::os::raw::c_char,
1963        ...
1964    ) -> ::std::os::raw::c_int;
1965}
1966extern "C" {
1967    #[link_name = "\u{1}__isoc99_fscanf"]
1968    pub fn fscanf1(
1969        __stream: *mut FILE,
1970        __format: *const ::std::os::raw::c_char,
1971        ...
1972    ) -> ::std::os::raw::c_int;
1973}
1974extern "C" {
1975    #[link_name = "\u{1}__isoc99_scanf"]
1976    pub fn scanf1(__format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int;
1977}
1978extern "C" {
1979    #[link_name = "\u{1}__isoc99_sscanf"]
1980    pub fn sscanf1(
1981        __s: *const ::std::os::raw::c_char,
1982        __format: *const ::std::os::raw::c_char,
1983        ...
1984    ) -> ::std::os::raw::c_int;
1985}
1986extern "C" {
1987    pub fn vfscanf(
1988        __s: *mut FILE,
1989        __format: *const ::std::os::raw::c_char,
1990        __arg: *mut __va_list_tag,
1991    ) -> ::std::os::raw::c_int;
1992}
1993extern "C" {
1994    pub fn vscanf(
1995        __format: *const ::std::os::raw::c_char,
1996        __arg: *mut __va_list_tag,
1997    ) -> ::std::os::raw::c_int;
1998}
1999extern "C" {
2000    pub fn vsscanf(
2001        __s: *const ::std::os::raw::c_char,
2002        __format: *const ::std::os::raw::c_char,
2003        __arg: *mut __va_list_tag,
2004    ) -> ::std::os::raw::c_int;
2005}
2006extern "C" {
2007    #[link_name = "\u{1}__isoc99_vfscanf"]
2008    pub fn vfscanf1(
2009        __s: *mut FILE,
2010        __format: *const ::std::os::raw::c_char,
2011        __arg: *mut __va_list_tag,
2012    ) -> ::std::os::raw::c_int;
2013}
2014extern "C" {
2015    #[link_name = "\u{1}__isoc99_vscanf"]
2016    pub fn vscanf1(
2017        __format: *const ::std::os::raw::c_char,
2018        __arg: *mut __va_list_tag,
2019    ) -> ::std::os::raw::c_int;
2020}
2021extern "C" {
2022    #[link_name = "\u{1}__isoc99_vsscanf"]
2023    pub fn vsscanf1(
2024        __s: *const ::std::os::raw::c_char,
2025        __format: *const ::std::os::raw::c_char,
2026        __arg: *mut __va_list_tag,
2027    ) -> ::std::os::raw::c_int;
2028}
2029extern "C" {
2030    pub fn fgetc(__stream: *mut FILE) -> ::std::os::raw::c_int;
2031}
2032extern "C" {
2033    pub fn getc(__stream: *mut FILE) -> ::std::os::raw::c_int;
2034}
2035extern "C" {
2036    pub fn getchar() -> ::std::os::raw::c_int;
2037}
2038extern "C" {
2039    pub fn getc_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
2040}
2041extern "C" {
2042    pub fn getchar_unlocked() -> ::std::os::raw::c_int;
2043}
2044extern "C" {
2045    pub fn fgetc_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
2046}
2047extern "C" {
2048    pub fn fputc(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int;
2049}
2050extern "C" {
2051    pub fn putc(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int;
2052}
2053extern "C" {
2054    pub fn putchar(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
2055}
2056extern "C" {
2057    pub fn fputc_unlocked(__c: ::std::os::raw::c_int, __stream: *mut FILE)
2058        -> ::std::os::raw::c_int;
2059}
2060extern "C" {
2061    pub fn putc_unlocked(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int;
2062}
2063extern "C" {
2064    pub fn putchar_unlocked(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
2065}
2066extern "C" {
2067    pub fn getw(__stream: *mut FILE) -> ::std::os::raw::c_int;
2068}
2069extern "C" {
2070    pub fn putw(__w: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int;
2071}
2072extern "C" {
2073    pub fn fgets(
2074        __s: *mut ::std::os::raw::c_char,
2075        __n: ::std::os::raw::c_int,
2076        __stream: *mut FILE,
2077    ) -> *mut ::std::os::raw::c_char;
2078}
2079extern "C" {
2080    pub fn __getdelim(
2081        __lineptr: *mut *mut ::std::os::raw::c_char,
2082        __n: *mut usize,
2083        __delimiter: ::std::os::raw::c_int,
2084        __stream: *mut FILE,
2085    ) -> __ssize_t;
2086}
2087extern "C" {
2088    pub fn getdelim(
2089        __lineptr: *mut *mut ::std::os::raw::c_char,
2090        __n: *mut usize,
2091        __delimiter: ::std::os::raw::c_int,
2092        __stream: *mut FILE,
2093    ) -> __ssize_t;
2094}
2095extern "C" {
2096    pub fn getline(
2097        __lineptr: *mut *mut ::std::os::raw::c_char,
2098        __n: *mut usize,
2099        __stream: *mut FILE,
2100    ) -> __ssize_t;
2101}
2102extern "C" {
2103    pub fn fputs(__s: *const ::std::os::raw::c_char, __stream: *mut FILE) -> ::std::os::raw::c_int;
2104}
2105extern "C" {
2106    pub fn puts(__s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
2107}
2108extern "C" {
2109    pub fn ungetc(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int;
2110}
2111extern "C" {
2112    pub fn fread(
2113        __ptr: *mut ::std::os::raw::c_void,
2114        __size: usize,
2115        __n: usize,
2116        __stream: *mut FILE,
2117    ) -> usize;
2118}
2119extern "C" {
2120    pub fn fwrite(
2121        __ptr: *const ::std::os::raw::c_void,
2122        __size: usize,
2123        __n: usize,
2124        __s: *mut FILE,
2125    ) -> usize;
2126}
2127extern "C" {
2128    pub fn fread_unlocked(
2129        __ptr: *mut ::std::os::raw::c_void,
2130        __size: usize,
2131        __n: usize,
2132        __stream: *mut FILE,
2133    ) -> usize;
2134}
2135extern "C" {
2136    pub fn fwrite_unlocked(
2137        __ptr: *const ::std::os::raw::c_void,
2138        __size: usize,
2139        __n: usize,
2140        __stream: *mut FILE,
2141    ) -> usize;
2142}
2143extern "C" {
2144    pub fn fseek(
2145        __stream: *mut FILE,
2146        __off: ::std::os::raw::c_long,
2147        __whence: ::std::os::raw::c_int,
2148    ) -> ::std::os::raw::c_int;
2149}
2150extern "C" {
2151    pub fn ftell(__stream: *mut FILE) -> ::std::os::raw::c_long;
2152}
2153extern "C" {
2154    pub fn rewind(__stream: *mut FILE);
2155}
2156extern "C" {
2157    pub fn fseeko(
2158        __stream: *mut FILE,
2159        __off: __off_t,
2160        __whence: ::std::os::raw::c_int,
2161    ) -> ::std::os::raw::c_int;
2162}
2163extern "C" {
2164    pub fn ftello(__stream: *mut FILE) -> __off_t;
2165}
2166extern "C" {
2167    pub fn fgetpos(__stream: *mut FILE, __pos: *mut fpos_t) -> ::std::os::raw::c_int;
2168}
2169extern "C" {
2170    pub fn fsetpos(__stream: *mut FILE, __pos: *const fpos_t) -> ::std::os::raw::c_int;
2171}
2172extern "C" {
2173    pub fn clearerr(__stream: *mut FILE);
2174}
2175extern "C" {
2176    pub fn feof(__stream: *mut FILE) -> ::std::os::raw::c_int;
2177}
2178extern "C" {
2179    pub fn ferror(__stream: *mut FILE) -> ::std::os::raw::c_int;
2180}
2181extern "C" {
2182    pub fn clearerr_unlocked(__stream: *mut FILE);
2183}
2184extern "C" {
2185    pub fn feof_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
2186}
2187extern "C" {
2188    pub fn ferror_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
2189}
2190extern "C" {
2191    pub fn perror(__s: *const ::std::os::raw::c_char);
2192}
2193extern "C" {
2194    pub static mut sys_nerr: ::std::os::raw::c_int;
2195}
2196extern "C" {
2197    pub static mut sys_errlist: [*const ::std::os::raw::c_char; 0usize];
2198}
2199extern "C" {
2200    pub fn fileno(__stream: *mut FILE) -> ::std::os::raw::c_int;
2201}
2202extern "C" {
2203    pub fn fileno_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
2204}
2205extern "C" {
2206    pub fn popen(
2207        __command: *const ::std::os::raw::c_char,
2208        __modes: *const ::std::os::raw::c_char,
2209    ) -> *mut FILE;
2210}
2211extern "C" {
2212    pub fn pclose(__stream: *mut FILE) -> ::std::os::raw::c_int;
2213}
2214extern "C" {
2215    pub fn ctermid(__s: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
2216}
2217extern "C" {
2218    pub fn flockfile(__stream: *mut FILE);
2219}
2220extern "C" {
2221    pub fn ftrylockfile(__stream: *mut FILE) -> ::std::os::raw::c_int;
2222}
2223extern "C" {
2224    pub fn funlockfile(__stream: *mut FILE);
2225}
2226pub type wchar_t = ::std::os::raw::c_int;
2227#[repr(C)]
2228#[repr(align(16))]
2229#[derive(Debug, Copy, Clone)]
2230pub struct max_align_t {
2231    pub __clang_max_align_nonce1: ::std::os::raw::c_longlong,
2232    pub __bindgen_padding_0: u64,
2233    pub __clang_max_align_nonce2: u128,
2234}
2235#[test]
2236fn bindgen_test_layout_max_align_t() {
2237    assert_eq!(
2238        ::std::mem::size_of::<max_align_t>(),
2239        32usize,
2240        concat!("Size of: ", stringify!(max_align_t))
2241    );
2242    assert_eq!(
2243        ::std::mem::align_of::<max_align_t>(),
2244        16usize,
2245        concat!("Alignment of ", stringify!(max_align_t))
2246    );
2247    assert_eq!(
2248        unsafe {
2249            &(*(::std::ptr::null::<max_align_t>())).__clang_max_align_nonce1 as *const _ as usize
2250        },
2251        0usize,
2252        concat!(
2253            "Offset of field: ",
2254            stringify!(max_align_t),
2255            "::",
2256            stringify!(__clang_max_align_nonce1)
2257        )
2258    );
2259    assert_eq!(
2260        unsafe {
2261            &(*(::std::ptr::null::<max_align_t>())).__clang_max_align_nonce2 as *const _ as usize
2262        },
2263        16usize,
2264        concat!(
2265            "Offset of field: ",
2266            stringify!(max_align_t),
2267            "::",
2268            stringify!(__clang_max_align_nonce2)
2269        )
2270    );
2271}
2272pub const _ISupper: _bindgen_ty_1 = 256;
2273pub const _ISlower: _bindgen_ty_1 = 512;
2274pub const _ISalpha: _bindgen_ty_1 = 1024;
2275pub const _ISdigit: _bindgen_ty_1 = 2048;
2276pub const _ISxdigit: _bindgen_ty_1 = 4096;
2277pub const _ISspace: _bindgen_ty_1 = 8192;
2278pub const _ISprint: _bindgen_ty_1 = 16384;
2279pub const _ISgraph: _bindgen_ty_1 = 32768;
2280pub const _ISblank: _bindgen_ty_1 = 1;
2281pub const _IScntrl: _bindgen_ty_1 = 2;
2282pub const _ISpunct: _bindgen_ty_1 = 4;
2283pub const _ISalnum: _bindgen_ty_1 = 8;
2284pub type _bindgen_ty_1 = u32;
2285extern "C" {
2286    pub fn __ctype_b_loc() -> *mut *const ::std::os::raw::c_ushort;
2287}
2288extern "C" {
2289    pub fn __ctype_tolower_loc() -> *mut *const __int32_t;
2290}
2291extern "C" {
2292    pub fn __ctype_toupper_loc() -> *mut *const __int32_t;
2293}
2294extern "C" {
2295    pub fn isalnum(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
2296}
2297extern "C" {
2298    pub fn isalpha(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
2299}
2300extern "C" {
2301    pub fn iscntrl(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
2302}
2303extern "C" {
2304    pub fn isdigit(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
2305}
2306extern "C" {
2307    pub fn islower(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
2308}
2309extern "C" {
2310    pub fn isgraph(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
2311}
2312extern "C" {
2313    pub fn isprint(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
2314}
2315extern "C" {
2316    pub fn ispunct(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
2317}
2318extern "C" {
2319    pub fn isspace(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
2320}
2321extern "C" {
2322    pub fn isupper(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
2323}
2324extern "C" {
2325    pub fn isxdigit(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
2326}
2327extern "C" {
2328    pub fn tolower(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
2329}
2330extern "C" {
2331    pub fn toupper(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
2332}
2333extern "C" {
2334    pub fn isblank(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
2335}
2336extern "C" {
2337    pub fn isascii(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
2338}
2339extern "C" {
2340    pub fn toascii(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
2341}
2342extern "C" {
2343    pub fn _toupper(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
2344}
2345extern "C" {
2346    pub fn _tolower(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
2347}
2348#[repr(C)]
2349#[derive(Debug, Copy, Clone)]
2350pub struct __locale_struct {
2351    pub __locales: [*mut __locale_data; 13usize],
2352    pub __ctype_b: *const ::std::os::raw::c_ushort,
2353    pub __ctype_tolower: *const ::std::os::raw::c_int,
2354    pub __ctype_toupper: *const ::std::os::raw::c_int,
2355    pub __names: [*const ::std::os::raw::c_char; 13usize],
2356}
2357#[test]
2358fn bindgen_test_layout___locale_struct() {
2359    assert_eq!(
2360        ::std::mem::size_of::<__locale_struct>(),
2361        232usize,
2362        concat!("Size of: ", stringify!(__locale_struct))
2363    );
2364    assert_eq!(
2365        ::std::mem::align_of::<__locale_struct>(),
2366        8usize,
2367        concat!("Alignment of ", stringify!(__locale_struct))
2368    );
2369    assert_eq!(
2370        unsafe { &(*(::std::ptr::null::<__locale_struct>())).__locales as *const _ as usize },
2371        0usize,
2372        concat!(
2373            "Offset of field: ",
2374            stringify!(__locale_struct),
2375            "::",
2376            stringify!(__locales)
2377        )
2378    );
2379    assert_eq!(
2380        unsafe { &(*(::std::ptr::null::<__locale_struct>())).__ctype_b as *const _ as usize },
2381        104usize,
2382        concat!(
2383            "Offset of field: ",
2384            stringify!(__locale_struct),
2385            "::",
2386            stringify!(__ctype_b)
2387        )
2388    );
2389    assert_eq!(
2390        unsafe { &(*(::std::ptr::null::<__locale_struct>())).__ctype_tolower as *const _ as usize },
2391        112usize,
2392        concat!(
2393            "Offset of field: ",
2394            stringify!(__locale_struct),
2395            "::",
2396            stringify!(__ctype_tolower)
2397        )
2398    );
2399    assert_eq!(
2400        unsafe { &(*(::std::ptr::null::<__locale_struct>())).__ctype_toupper as *const _ as usize },
2401        120usize,
2402        concat!(
2403            "Offset of field: ",
2404            stringify!(__locale_struct),
2405            "::",
2406            stringify!(__ctype_toupper)
2407        )
2408    );
2409    assert_eq!(
2410        unsafe { &(*(::std::ptr::null::<__locale_struct>())).__names as *const _ as usize },
2411        128usize,
2412        concat!(
2413            "Offset of field: ",
2414            stringify!(__locale_struct),
2415            "::",
2416            stringify!(__names)
2417        )
2418    );
2419}
2420pub type __locale_t = *mut __locale_struct;
2421pub type locale_t = __locale_t;
2422extern "C" {
2423    pub fn isalnum_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int;
2424}
2425extern "C" {
2426    pub fn isalpha_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int;
2427}
2428extern "C" {
2429    pub fn iscntrl_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int;
2430}
2431extern "C" {
2432    pub fn isdigit_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int;
2433}
2434extern "C" {
2435    pub fn islower_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int;
2436}
2437extern "C" {
2438    pub fn isgraph_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int;
2439}
2440extern "C" {
2441    pub fn isprint_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int;
2442}
2443extern "C" {
2444    pub fn ispunct_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int;
2445}
2446extern "C" {
2447    pub fn isspace_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int;
2448}
2449extern "C" {
2450    pub fn isupper_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int;
2451}
2452extern "C" {
2453    pub fn isxdigit_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int;
2454}
2455extern "C" {
2456    pub fn isblank_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int;
2457}
2458extern "C" {
2459    pub fn __tolower_l(__c: ::std::os::raw::c_int, __l: locale_t) -> ::std::os::raw::c_int;
2460}
2461extern "C" {
2462    pub fn tolower_l(__c: ::std::os::raw::c_int, __l: locale_t) -> ::std::os::raw::c_int;
2463}
2464extern "C" {
2465    pub fn __toupper_l(__c: ::std::os::raw::c_int, __l: locale_t) -> ::std::os::raw::c_int;
2466}
2467extern "C" {
2468    pub fn toupper_l(__c: ::std::os::raw::c_int, __l: locale_t) -> ::std::os::raw::c_int;
2469}
2470extern "C" {
2471    pub fn memcpy(
2472        __dest: *mut ::std::os::raw::c_void,
2473        __src: *const ::std::os::raw::c_void,
2474        __n: ::std::os::raw::c_ulong,
2475    ) -> *mut ::std::os::raw::c_void;
2476}
2477extern "C" {
2478    pub fn memmove(
2479        __dest: *mut ::std::os::raw::c_void,
2480        __src: *const ::std::os::raw::c_void,
2481        __n: ::std::os::raw::c_ulong,
2482    ) -> *mut ::std::os::raw::c_void;
2483}
2484extern "C" {
2485    pub fn memccpy(
2486        __dest: *mut ::std::os::raw::c_void,
2487        __src: *const ::std::os::raw::c_void,
2488        __c: ::std::os::raw::c_int,
2489        __n: usize,
2490    ) -> *mut ::std::os::raw::c_void;
2491}
2492extern "C" {
2493    pub fn memset(
2494        __s: *mut ::std::os::raw::c_void,
2495        __c: ::std::os::raw::c_int,
2496        __n: ::std::os::raw::c_ulong,
2497    ) -> *mut ::std::os::raw::c_void;
2498}
2499extern "C" {
2500    pub fn memcmp(
2501        __s1: *const ::std::os::raw::c_void,
2502        __s2: *const ::std::os::raw::c_void,
2503        __n: ::std::os::raw::c_ulong,
2504    ) -> ::std::os::raw::c_int;
2505}
2506extern "C" {
2507    pub fn memchr(
2508        __s: *const ::std::os::raw::c_void,
2509        __c: ::std::os::raw::c_int,
2510        __n: ::std::os::raw::c_ulong,
2511    ) -> *mut ::std::os::raw::c_void;
2512}
2513extern "C" {
2514    pub fn strcpy(
2515        __dest: *mut ::std::os::raw::c_char,
2516        __src: *const ::std::os::raw::c_char,
2517    ) -> *mut ::std::os::raw::c_char;
2518}
2519extern "C" {
2520    pub fn strncpy(
2521        __dest: *mut ::std::os::raw::c_char,
2522        __src: *const ::std::os::raw::c_char,
2523        __n: ::std::os::raw::c_ulong,
2524    ) -> *mut ::std::os::raw::c_char;
2525}
2526extern "C" {
2527    pub fn strcat(
2528        __dest: *mut ::std::os::raw::c_char,
2529        __src: *const ::std::os::raw::c_char,
2530    ) -> *mut ::std::os::raw::c_char;
2531}
2532extern "C" {
2533    pub fn strncat(
2534        __dest: *mut ::std::os::raw::c_char,
2535        __src: *const ::std::os::raw::c_char,
2536        __n: ::std::os::raw::c_ulong,
2537    ) -> *mut ::std::os::raw::c_char;
2538}
2539extern "C" {
2540    pub fn strcmp(
2541        __s1: *const ::std::os::raw::c_char,
2542        __s2: *const ::std::os::raw::c_char,
2543    ) -> ::std::os::raw::c_int;
2544}
2545extern "C" {
2546    pub fn strncmp(
2547        __s1: *const ::std::os::raw::c_char,
2548        __s2: *const ::std::os::raw::c_char,
2549        __n: ::std::os::raw::c_ulong,
2550    ) -> ::std::os::raw::c_int;
2551}
2552extern "C" {
2553    pub fn strcoll(
2554        __s1: *const ::std::os::raw::c_char,
2555        __s2: *const ::std::os::raw::c_char,
2556    ) -> ::std::os::raw::c_int;
2557}
2558extern "C" {
2559    pub fn strxfrm(
2560        __dest: *mut ::std::os::raw::c_char,
2561        __src: *const ::std::os::raw::c_char,
2562        __n: ::std::os::raw::c_ulong,
2563    ) -> ::std::os::raw::c_ulong;
2564}
2565extern "C" {
2566    pub fn strcoll_l(
2567        __s1: *const ::std::os::raw::c_char,
2568        __s2: *const ::std::os::raw::c_char,
2569        __l: locale_t,
2570    ) -> ::std::os::raw::c_int;
2571}
2572extern "C" {
2573    pub fn strxfrm_l(
2574        __dest: *mut ::std::os::raw::c_char,
2575        __src: *const ::std::os::raw::c_char,
2576        __n: usize,
2577        __l: locale_t,
2578    ) -> usize;
2579}
2580extern "C" {
2581    pub fn strdup(__s: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
2582}
2583extern "C" {
2584    pub fn strndup(
2585        __string: *const ::std::os::raw::c_char,
2586        __n: ::std::os::raw::c_ulong,
2587    ) -> *mut ::std::os::raw::c_char;
2588}
2589extern "C" {
2590    pub fn strchr(
2591        __s: *const ::std::os::raw::c_char,
2592        __c: ::std::os::raw::c_int,
2593    ) -> *mut ::std::os::raw::c_char;
2594}
2595extern "C" {
2596    pub fn strrchr(
2597        __s: *const ::std::os::raw::c_char,
2598        __c: ::std::os::raw::c_int,
2599    ) -> *mut ::std::os::raw::c_char;
2600}
2601extern "C" {
2602    pub fn strcspn(
2603        __s: *const ::std::os::raw::c_char,
2604        __reject: *const ::std::os::raw::c_char,
2605    ) -> ::std::os::raw::c_ulong;
2606}
2607extern "C" {
2608    pub fn strspn(
2609        __s: *const ::std::os::raw::c_char,
2610        __accept: *const ::std::os::raw::c_char,
2611    ) -> ::std::os::raw::c_ulong;
2612}
2613extern "C" {
2614    pub fn strpbrk(
2615        __s: *const ::std::os::raw::c_char,
2616        __accept: *const ::std::os::raw::c_char,
2617    ) -> *mut ::std::os::raw::c_char;
2618}
2619extern "C" {
2620    pub fn strstr(
2621        __haystack: *const ::std::os::raw::c_char,
2622        __needle: *const ::std::os::raw::c_char,
2623    ) -> *mut ::std::os::raw::c_char;
2624}
2625extern "C" {
2626    pub fn strtok(
2627        __s: *mut ::std::os::raw::c_char,
2628        __delim: *const ::std::os::raw::c_char,
2629    ) -> *mut ::std::os::raw::c_char;
2630}
2631extern "C" {
2632    pub fn __strtok_r(
2633        __s: *mut ::std::os::raw::c_char,
2634        __delim: *const ::std::os::raw::c_char,
2635        __save_ptr: *mut *mut ::std::os::raw::c_char,
2636    ) -> *mut ::std::os::raw::c_char;
2637}
2638extern "C" {
2639    pub fn strtok_r(
2640        __s: *mut ::std::os::raw::c_char,
2641        __delim: *const ::std::os::raw::c_char,
2642        __save_ptr: *mut *mut ::std::os::raw::c_char,
2643    ) -> *mut ::std::os::raw::c_char;
2644}
2645extern "C" {
2646    pub fn strlen(__s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_ulong;
2647}
2648extern "C" {
2649    pub fn strnlen(__string: *const ::std::os::raw::c_char, __maxlen: usize) -> usize;
2650}
2651extern "C" {
2652    pub fn strerror(__errnum: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char;
2653}
2654extern "C" {
2655    #[link_name = "\u{1}__xpg_strerror_r"]
2656    pub fn strerror_r(
2657        __errnum: ::std::os::raw::c_int,
2658        __buf: *mut ::std::os::raw::c_char,
2659        __buflen: usize,
2660    ) -> ::std::os::raw::c_int;
2661}
2662extern "C" {
2663    pub fn strerror_l(
2664        __errnum: ::std::os::raw::c_int,
2665        __l: locale_t,
2666    ) -> *mut ::std::os::raw::c_char;
2667}
2668extern "C" {
2669    pub fn bcmp(
2670        __s1: *const ::std::os::raw::c_void,
2671        __s2: *const ::std::os::raw::c_void,
2672        __n: usize,
2673    ) -> ::std::os::raw::c_int;
2674}
2675extern "C" {
2676    pub fn bcopy(
2677        __src: *const ::std::os::raw::c_void,
2678        __dest: *mut ::std::os::raw::c_void,
2679        __n: usize,
2680    );
2681}
2682extern "C" {
2683    pub fn bzero(__s: *mut ::std::os::raw::c_void, __n: ::std::os::raw::c_ulong);
2684}
2685extern "C" {
2686    pub fn index(
2687        __s: *const ::std::os::raw::c_char,
2688        __c: ::std::os::raw::c_int,
2689    ) -> *mut ::std::os::raw::c_char;
2690}
2691extern "C" {
2692    pub fn rindex(
2693        __s: *const ::std::os::raw::c_char,
2694        __c: ::std::os::raw::c_int,
2695    ) -> *mut ::std::os::raw::c_char;
2696}
2697extern "C" {
2698    pub fn ffs(__i: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
2699}
2700extern "C" {
2701    pub fn ffsl(__l: ::std::os::raw::c_long) -> ::std::os::raw::c_int;
2702}
2703extern "C" {
2704    pub fn ffsll(__ll: ::std::os::raw::c_longlong) -> ::std::os::raw::c_int;
2705}
2706extern "C" {
2707    pub fn strcasecmp(
2708        __s1: *const ::std::os::raw::c_char,
2709        __s2: *const ::std::os::raw::c_char,
2710    ) -> ::std::os::raw::c_int;
2711}
2712extern "C" {
2713    pub fn strncasecmp(
2714        __s1: *const ::std::os::raw::c_char,
2715        __s2: *const ::std::os::raw::c_char,
2716        __n: ::std::os::raw::c_ulong,
2717    ) -> ::std::os::raw::c_int;
2718}
2719extern "C" {
2720    pub fn strcasecmp_l(
2721        __s1: *const ::std::os::raw::c_char,
2722        __s2: *const ::std::os::raw::c_char,
2723        __loc: locale_t,
2724    ) -> ::std::os::raw::c_int;
2725}
2726extern "C" {
2727    pub fn strncasecmp_l(
2728        __s1: *const ::std::os::raw::c_char,
2729        __s2: *const ::std::os::raw::c_char,
2730        __n: usize,
2731        __loc: locale_t,
2732    ) -> ::std::os::raw::c_int;
2733}
2734extern "C" {
2735    pub fn explicit_bzero(__s: *mut ::std::os::raw::c_void, __n: usize);
2736}
2737extern "C" {
2738    pub fn strsep(
2739        __stringp: *mut *mut ::std::os::raw::c_char,
2740        __delim: *const ::std::os::raw::c_char,
2741    ) -> *mut ::std::os::raw::c_char;
2742}
2743extern "C" {
2744    pub fn strsignal(__sig: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char;
2745}
2746extern "C" {
2747    pub fn __stpcpy(
2748        __dest: *mut ::std::os::raw::c_char,
2749        __src: *const ::std::os::raw::c_char,
2750    ) -> *mut ::std::os::raw::c_char;
2751}
2752extern "C" {
2753    pub fn stpcpy(
2754        __dest: *mut ::std::os::raw::c_char,
2755        __src: *const ::std::os::raw::c_char,
2756    ) -> *mut ::std::os::raw::c_char;
2757}
2758extern "C" {
2759    pub fn __stpncpy(
2760        __dest: *mut ::std::os::raw::c_char,
2761        __src: *const ::std::os::raw::c_char,
2762        __n: usize,
2763    ) -> *mut ::std::os::raw::c_char;
2764}
2765extern "C" {
2766    pub fn stpncpy(
2767        __dest: *mut ::std::os::raw::c_char,
2768        __src: *const ::std::os::raw::c_char,
2769        __n: ::std::os::raw::c_ulong,
2770    ) -> *mut ::std::os::raw::c_char;
2771}
2772pub const idtype_t_P_ALL: idtype_t = 0;
2773pub const idtype_t_P_PID: idtype_t = 1;
2774pub const idtype_t_P_PGID: idtype_t = 2;
2775pub type idtype_t = u32;
2776pub type _Float32 = f32;
2777pub type _Float64 = f64;
2778pub type _Float32x = f64;
2779pub type _Float64x = u128;
2780#[repr(C)]
2781#[derive(Debug, Copy, Clone)]
2782pub struct div_t {
2783    pub quot: ::std::os::raw::c_int,
2784    pub rem: ::std::os::raw::c_int,
2785}
2786#[test]
2787fn bindgen_test_layout_div_t() {
2788    assert_eq!(
2789        ::std::mem::size_of::<div_t>(),
2790        8usize,
2791        concat!("Size of: ", stringify!(div_t))
2792    );
2793    assert_eq!(
2794        ::std::mem::align_of::<div_t>(),
2795        4usize,
2796        concat!("Alignment of ", stringify!(div_t))
2797    );
2798    assert_eq!(
2799        unsafe { &(*(::std::ptr::null::<div_t>())).quot as *const _ as usize },
2800        0usize,
2801        concat!(
2802            "Offset of field: ",
2803            stringify!(div_t),
2804            "::",
2805            stringify!(quot)
2806        )
2807    );
2808    assert_eq!(
2809        unsafe { &(*(::std::ptr::null::<div_t>())).rem as *const _ as usize },
2810        4usize,
2811        concat!(
2812            "Offset of field: ",
2813            stringify!(div_t),
2814            "::",
2815            stringify!(rem)
2816        )
2817    );
2818}
2819#[repr(C)]
2820#[derive(Debug, Copy, Clone)]
2821pub struct ldiv_t {
2822    pub quot: ::std::os::raw::c_long,
2823    pub rem: ::std::os::raw::c_long,
2824}
2825#[test]
2826fn bindgen_test_layout_ldiv_t() {
2827    assert_eq!(
2828        ::std::mem::size_of::<ldiv_t>(),
2829        16usize,
2830        concat!("Size of: ", stringify!(ldiv_t))
2831    );
2832    assert_eq!(
2833        ::std::mem::align_of::<ldiv_t>(),
2834        8usize,
2835        concat!("Alignment of ", stringify!(ldiv_t))
2836    );
2837    assert_eq!(
2838        unsafe { &(*(::std::ptr::null::<ldiv_t>())).quot as *const _ as usize },
2839        0usize,
2840        concat!(
2841            "Offset of field: ",
2842            stringify!(ldiv_t),
2843            "::",
2844            stringify!(quot)
2845        )
2846    );
2847    assert_eq!(
2848        unsafe { &(*(::std::ptr::null::<ldiv_t>())).rem as *const _ as usize },
2849        8usize,
2850        concat!(
2851            "Offset of field: ",
2852            stringify!(ldiv_t),
2853            "::",
2854            stringify!(rem)
2855        )
2856    );
2857}
2858#[repr(C)]
2859#[derive(Debug, Copy, Clone)]
2860pub struct lldiv_t {
2861    pub quot: ::std::os::raw::c_longlong,
2862    pub rem: ::std::os::raw::c_longlong,
2863}
2864#[test]
2865fn bindgen_test_layout_lldiv_t() {
2866    assert_eq!(
2867        ::std::mem::size_of::<lldiv_t>(),
2868        16usize,
2869        concat!("Size of: ", stringify!(lldiv_t))
2870    );
2871    assert_eq!(
2872        ::std::mem::align_of::<lldiv_t>(),
2873        8usize,
2874        concat!("Alignment of ", stringify!(lldiv_t))
2875    );
2876    assert_eq!(
2877        unsafe { &(*(::std::ptr::null::<lldiv_t>())).quot as *const _ as usize },
2878        0usize,
2879        concat!(
2880            "Offset of field: ",
2881            stringify!(lldiv_t),
2882            "::",
2883            stringify!(quot)
2884        )
2885    );
2886    assert_eq!(
2887        unsafe { &(*(::std::ptr::null::<lldiv_t>())).rem as *const _ as usize },
2888        8usize,
2889        concat!(
2890            "Offset of field: ",
2891            stringify!(lldiv_t),
2892            "::",
2893            stringify!(rem)
2894        )
2895    );
2896}
2897extern "C" {
2898    pub fn __ctype_get_mb_cur_max() -> usize;
2899}
2900extern "C" {
2901    pub fn atof(__nptr: *const ::std::os::raw::c_char) -> f64;
2902}
2903extern "C" {
2904    pub fn atoi(__nptr: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
2905}
2906extern "C" {
2907    pub fn atol(__nptr: *const ::std::os::raw::c_char) -> ::std::os::raw::c_long;
2908}
2909extern "C" {
2910    pub fn atoll(__nptr: *const ::std::os::raw::c_char) -> ::std::os::raw::c_longlong;
2911}
2912extern "C" {
2913    pub fn strtod(
2914        __nptr: *const ::std::os::raw::c_char,
2915        __endptr: *mut *mut ::std::os::raw::c_char,
2916    ) -> f64;
2917}
2918extern "C" {
2919    pub fn strtof(
2920        __nptr: *const ::std::os::raw::c_char,
2921        __endptr: *mut *mut ::std::os::raw::c_char,
2922    ) -> f32;
2923}
2924extern "C" {
2925    pub fn strtold(
2926        __nptr: *const ::std::os::raw::c_char,
2927        __endptr: *mut *mut ::std::os::raw::c_char,
2928    ) -> u128;
2929}
2930extern "C" {
2931    pub fn strtol(
2932        __nptr: *const ::std::os::raw::c_char,
2933        __endptr: *mut *mut ::std::os::raw::c_char,
2934        __base: ::std::os::raw::c_int,
2935    ) -> ::std::os::raw::c_long;
2936}
2937extern "C" {
2938    pub fn strtoul(
2939        __nptr: *const ::std::os::raw::c_char,
2940        __endptr: *mut *mut ::std::os::raw::c_char,
2941        __base: ::std::os::raw::c_int,
2942    ) -> ::std::os::raw::c_ulong;
2943}
2944extern "C" {
2945    pub fn strtoq(
2946        __nptr: *const ::std::os::raw::c_char,
2947        __endptr: *mut *mut ::std::os::raw::c_char,
2948        __base: ::std::os::raw::c_int,
2949    ) -> ::std::os::raw::c_longlong;
2950}
2951extern "C" {
2952    pub fn strtouq(
2953        __nptr: *const ::std::os::raw::c_char,
2954        __endptr: *mut *mut ::std::os::raw::c_char,
2955        __base: ::std::os::raw::c_int,
2956    ) -> ::std::os::raw::c_ulonglong;
2957}
2958extern "C" {
2959    pub fn strtoll(
2960        __nptr: *const ::std::os::raw::c_char,
2961        __endptr: *mut *mut ::std::os::raw::c_char,
2962        __base: ::std::os::raw::c_int,
2963    ) -> ::std::os::raw::c_longlong;
2964}
2965extern "C" {
2966    pub fn strtoull(
2967        __nptr: *const ::std::os::raw::c_char,
2968        __endptr: *mut *mut ::std::os::raw::c_char,
2969        __base: ::std::os::raw::c_int,
2970    ) -> ::std::os::raw::c_ulonglong;
2971}
2972extern "C" {
2973    pub fn l64a(__n: ::std::os::raw::c_long) -> *mut ::std::os::raw::c_char;
2974}
2975extern "C" {
2976    pub fn a64l(__s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_long;
2977}
2978pub type u_char = __u_char;
2979pub type u_short = __u_short;
2980pub type u_int = __u_int;
2981pub type u_long = __u_long;
2982pub type quad_t = __quad_t;
2983pub type u_quad_t = __u_quad_t;
2984pub type fsid_t = __fsid_t;
2985pub type loff_t = __loff_t;
2986pub type ino_t = __ino_t;
2987pub type dev_t = __dev_t;
2988pub type gid_t = __gid_t;
2989pub type mode_t = __mode_t;
2990pub type nlink_t = __nlink_t;
2991pub type uid_t = __uid_t;
2992pub type pid_t = __pid_t;
2993pub type id_t = __id_t;
2994pub type daddr_t = __daddr_t;
2995pub type caddr_t = __caddr_t;
2996pub type key_t = __key_t;
2997pub type clock_t = __clock_t;
2998pub type clockid_t = __clockid_t;
2999pub type time_t = __time_t;
3000pub type timer_t = __timer_t;
3001pub type ulong = ::std::os::raw::c_ulong;
3002pub type ushort = ::std::os::raw::c_ushort;
3003pub type uint = ::std::os::raw::c_uint;
3004pub type u_int8_t = ::std::os::raw::c_uchar;
3005pub type u_int16_t = ::std::os::raw::c_ushort;
3006pub type u_int32_t = ::std::os::raw::c_uint;
3007pub type u_int64_t = ::std::os::raw::c_ulong;
3008pub type register_t = ::std::os::raw::c_long;
3009#[repr(C)]
3010#[derive(Debug, Copy, Clone)]
3011pub struct __sigset_t {
3012    pub __val: [::std::os::raw::c_ulong; 16usize],
3013}
3014#[test]
3015fn bindgen_test_layout___sigset_t() {
3016    assert_eq!(
3017        ::std::mem::size_of::<__sigset_t>(),
3018        128usize,
3019        concat!("Size of: ", stringify!(__sigset_t))
3020    );
3021    assert_eq!(
3022        ::std::mem::align_of::<__sigset_t>(),
3023        8usize,
3024        concat!("Alignment of ", stringify!(__sigset_t))
3025    );
3026    assert_eq!(
3027        unsafe { &(*(::std::ptr::null::<__sigset_t>())).__val as *const _ as usize },
3028        0usize,
3029        concat!(
3030            "Offset of field: ",
3031            stringify!(__sigset_t),
3032            "::",
3033            stringify!(__val)
3034        )
3035    );
3036}
3037pub type sigset_t = __sigset_t;
3038#[repr(C)]
3039#[derive(Debug, Copy, Clone)]
3040pub struct timeval {
3041    pub tv_sec: __time_t,
3042    pub tv_usec: __suseconds_t,
3043}
3044#[test]
3045fn bindgen_test_layout_timeval() {
3046    assert_eq!(
3047        ::std::mem::size_of::<timeval>(),
3048        16usize,
3049        concat!("Size of: ", stringify!(timeval))
3050    );
3051    assert_eq!(
3052        ::std::mem::align_of::<timeval>(),
3053        8usize,
3054        concat!("Alignment of ", stringify!(timeval))
3055    );
3056    assert_eq!(
3057        unsafe { &(*(::std::ptr::null::<timeval>())).tv_sec as *const _ as usize },
3058        0usize,
3059        concat!(
3060            "Offset of field: ",
3061            stringify!(timeval),
3062            "::",
3063            stringify!(tv_sec)
3064        )
3065    );
3066    assert_eq!(
3067        unsafe { &(*(::std::ptr::null::<timeval>())).tv_usec as *const _ as usize },
3068        8usize,
3069        concat!(
3070            "Offset of field: ",
3071            stringify!(timeval),
3072            "::",
3073            stringify!(tv_usec)
3074        )
3075    );
3076}
3077#[repr(C)]
3078#[derive(Debug, Copy, Clone)]
3079pub struct timespec {
3080    pub tv_sec: __time_t,
3081    pub tv_nsec: __syscall_slong_t,
3082}
3083#[test]
3084fn bindgen_test_layout_timespec() {
3085    assert_eq!(
3086        ::std::mem::size_of::<timespec>(),
3087        16usize,
3088        concat!("Size of: ", stringify!(timespec))
3089    );
3090    assert_eq!(
3091        ::std::mem::align_of::<timespec>(),
3092        8usize,
3093        concat!("Alignment of ", stringify!(timespec))
3094    );
3095    assert_eq!(
3096        unsafe { &(*(::std::ptr::null::<timespec>())).tv_sec as *const _ as usize },
3097        0usize,
3098        concat!(
3099            "Offset of field: ",
3100            stringify!(timespec),
3101            "::",
3102            stringify!(tv_sec)
3103        )
3104    );
3105    assert_eq!(
3106        unsafe { &(*(::std::ptr::null::<timespec>())).tv_nsec as *const _ as usize },
3107        8usize,
3108        concat!(
3109            "Offset of field: ",
3110            stringify!(timespec),
3111            "::",
3112            stringify!(tv_nsec)
3113        )
3114    );
3115}
3116pub type suseconds_t = __suseconds_t;
3117pub type __fd_mask = ::std::os::raw::c_long;
3118#[repr(C)]
3119#[derive(Debug, Copy, Clone)]
3120pub struct fd_set {
3121    pub __fds_bits: [__fd_mask; 16usize],
3122}
3123#[test]
3124fn bindgen_test_layout_fd_set() {
3125    assert_eq!(
3126        ::std::mem::size_of::<fd_set>(),
3127        128usize,
3128        concat!("Size of: ", stringify!(fd_set))
3129    );
3130    assert_eq!(
3131        ::std::mem::align_of::<fd_set>(),
3132        8usize,
3133        concat!("Alignment of ", stringify!(fd_set))
3134    );
3135    assert_eq!(
3136        unsafe { &(*(::std::ptr::null::<fd_set>())).__fds_bits as *const _ as usize },
3137        0usize,
3138        concat!(
3139            "Offset of field: ",
3140            stringify!(fd_set),
3141            "::",
3142            stringify!(__fds_bits)
3143        )
3144    );
3145}
3146pub type fd_mask = __fd_mask;
3147extern "C" {
3148    pub fn select(
3149        __nfds: ::std::os::raw::c_int,
3150        __readfds: *mut fd_set,
3151        __writefds: *mut fd_set,
3152        __exceptfds: *mut fd_set,
3153        __timeout: *mut timeval,
3154    ) -> ::std::os::raw::c_int;
3155}
3156extern "C" {
3157    pub fn pselect(
3158        __nfds: ::std::os::raw::c_int,
3159        __readfds: *mut fd_set,
3160        __writefds: *mut fd_set,
3161        __exceptfds: *mut fd_set,
3162        __timeout: *const timespec,
3163        __sigmask: *const __sigset_t,
3164    ) -> ::std::os::raw::c_int;
3165}
3166extern "C" {
3167    pub fn gnu_dev_major(__dev: __dev_t) -> ::std::os::raw::c_uint;
3168}
3169extern "C" {
3170    pub fn gnu_dev_minor(__dev: __dev_t) -> ::std::os::raw::c_uint;
3171}
3172extern "C" {
3173    pub fn gnu_dev_makedev(
3174        __major: ::std::os::raw::c_uint,
3175        __minor: ::std::os::raw::c_uint,
3176    ) -> __dev_t;
3177}
3178pub type blksize_t = __blksize_t;
3179pub type blkcnt_t = __blkcnt_t;
3180pub type fsblkcnt_t = __fsblkcnt_t;
3181pub type fsfilcnt_t = __fsfilcnt_t;
3182#[repr(C)]
3183#[derive(Debug, Copy, Clone)]
3184pub struct __pthread_rwlock_arch_t {
3185    pub __readers: ::std::os::raw::c_uint,
3186    pub __writers: ::std::os::raw::c_uint,
3187    pub __wrphase_futex: ::std::os::raw::c_uint,
3188    pub __writers_futex: ::std::os::raw::c_uint,
3189    pub __pad3: ::std::os::raw::c_uint,
3190    pub __pad4: ::std::os::raw::c_uint,
3191    pub __cur_writer: ::std::os::raw::c_int,
3192    pub __shared: ::std::os::raw::c_int,
3193    pub __rwelision: ::std::os::raw::c_schar,
3194    pub __pad1: [::std::os::raw::c_uchar; 7usize],
3195    pub __pad2: ::std::os::raw::c_ulong,
3196    pub __flags: ::std::os::raw::c_uint,
3197}
3198#[test]
3199fn bindgen_test_layout___pthread_rwlock_arch_t() {
3200    assert_eq!(
3201        ::std::mem::size_of::<__pthread_rwlock_arch_t>(),
3202        56usize,
3203        concat!("Size of: ", stringify!(__pthread_rwlock_arch_t))
3204    );
3205    assert_eq!(
3206        ::std::mem::align_of::<__pthread_rwlock_arch_t>(),
3207        8usize,
3208        concat!("Alignment of ", stringify!(__pthread_rwlock_arch_t))
3209    );
3210    assert_eq!(
3211        unsafe {
3212            &(*(::std::ptr::null::<__pthread_rwlock_arch_t>())).__readers as *const _ as usize
3213        },
3214        0usize,
3215        concat!(
3216            "Offset of field: ",
3217            stringify!(__pthread_rwlock_arch_t),
3218            "::",
3219            stringify!(__readers)
3220        )
3221    );
3222    assert_eq!(
3223        unsafe {
3224            &(*(::std::ptr::null::<__pthread_rwlock_arch_t>())).__writers as *const _ as usize
3225        },
3226        4usize,
3227        concat!(
3228            "Offset of field: ",
3229            stringify!(__pthread_rwlock_arch_t),
3230            "::",
3231            stringify!(__writers)
3232        )
3233    );
3234    assert_eq!(
3235        unsafe {
3236            &(*(::std::ptr::null::<__pthread_rwlock_arch_t>())).__wrphase_futex as *const _ as usize
3237        },
3238        8usize,
3239        concat!(
3240            "Offset of field: ",
3241            stringify!(__pthread_rwlock_arch_t),
3242            "::",
3243            stringify!(__wrphase_futex)
3244        )
3245    );
3246    assert_eq!(
3247        unsafe {
3248            &(*(::std::ptr::null::<__pthread_rwlock_arch_t>())).__writers_futex as *const _ as usize
3249        },
3250        12usize,
3251        concat!(
3252            "Offset of field: ",
3253            stringify!(__pthread_rwlock_arch_t),
3254            "::",
3255            stringify!(__writers_futex)
3256        )
3257    );
3258    assert_eq!(
3259        unsafe { &(*(::std::ptr::null::<__pthread_rwlock_arch_t>())).__pad3 as *const _ as usize },
3260        16usize,
3261        concat!(
3262            "Offset of field: ",
3263            stringify!(__pthread_rwlock_arch_t),
3264            "::",
3265            stringify!(__pad3)
3266        )
3267    );
3268    assert_eq!(
3269        unsafe { &(*(::std::ptr::null::<__pthread_rwlock_arch_t>())).__pad4 as *const _ as usize },
3270        20usize,
3271        concat!(
3272            "Offset of field: ",
3273            stringify!(__pthread_rwlock_arch_t),
3274            "::",
3275            stringify!(__pad4)
3276        )
3277    );
3278    assert_eq!(
3279        unsafe {
3280            &(*(::std::ptr::null::<__pthread_rwlock_arch_t>())).__cur_writer as *const _ as usize
3281        },
3282        24usize,
3283        concat!(
3284            "Offset of field: ",
3285            stringify!(__pthread_rwlock_arch_t),
3286            "::",
3287            stringify!(__cur_writer)
3288        )
3289    );
3290    assert_eq!(
3291        unsafe {
3292            &(*(::std::ptr::null::<__pthread_rwlock_arch_t>())).__shared as *const _ as usize
3293        },
3294        28usize,
3295        concat!(
3296            "Offset of field: ",
3297            stringify!(__pthread_rwlock_arch_t),
3298            "::",
3299            stringify!(__shared)
3300        )
3301    );
3302    assert_eq!(
3303        unsafe {
3304            &(*(::std::ptr::null::<__pthread_rwlock_arch_t>())).__rwelision as *const _ as usize
3305        },
3306        32usize,
3307        concat!(
3308            "Offset of field: ",
3309            stringify!(__pthread_rwlock_arch_t),
3310            "::",
3311            stringify!(__rwelision)
3312        )
3313    );
3314    assert_eq!(
3315        unsafe { &(*(::std::ptr::null::<__pthread_rwlock_arch_t>())).__pad1 as *const _ as usize },
3316        33usize,
3317        concat!(
3318            "Offset of field: ",
3319            stringify!(__pthread_rwlock_arch_t),
3320            "::",
3321            stringify!(__pad1)
3322        )
3323    );
3324    assert_eq!(
3325        unsafe { &(*(::std::ptr::null::<__pthread_rwlock_arch_t>())).__pad2 as *const _ as usize },
3326        40usize,
3327        concat!(
3328            "Offset of field: ",
3329            stringify!(__pthread_rwlock_arch_t),
3330            "::",
3331            stringify!(__pad2)
3332        )
3333    );
3334    assert_eq!(
3335        unsafe { &(*(::std::ptr::null::<__pthread_rwlock_arch_t>())).__flags as *const _ as usize },
3336        48usize,
3337        concat!(
3338            "Offset of field: ",
3339            stringify!(__pthread_rwlock_arch_t),
3340            "::",
3341            stringify!(__flags)
3342        )
3343    );
3344}
3345#[repr(C)]
3346#[derive(Debug, Copy, Clone)]
3347pub struct __pthread_internal_list {
3348    pub __prev: *mut __pthread_internal_list,
3349    pub __next: *mut __pthread_internal_list,
3350}
3351#[test]
3352fn bindgen_test_layout___pthread_internal_list() {
3353    assert_eq!(
3354        ::std::mem::size_of::<__pthread_internal_list>(),
3355        16usize,
3356        concat!("Size of: ", stringify!(__pthread_internal_list))
3357    );
3358    assert_eq!(
3359        ::std::mem::align_of::<__pthread_internal_list>(),
3360        8usize,
3361        concat!("Alignment of ", stringify!(__pthread_internal_list))
3362    );
3363    assert_eq!(
3364        unsafe { &(*(::std::ptr::null::<__pthread_internal_list>())).__prev as *const _ as usize },
3365        0usize,
3366        concat!(
3367            "Offset of field: ",
3368            stringify!(__pthread_internal_list),
3369            "::",
3370            stringify!(__prev)
3371        )
3372    );
3373    assert_eq!(
3374        unsafe { &(*(::std::ptr::null::<__pthread_internal_list>())).__next as *const _ as usize },
3375        8usize,
3376        concat!(
3377            "Offset of field: ",
3378            stringify!(__pthread_internal_list),
3379            "::",
3380            stringify!(__next)
3381        )
3382    );
3383}
3384pub type __pthread_list_t = __pthread_internal_list;
3385#[repr(C)]
3386#[derive(Debug, Copy, Clone)]
3387pub struct __pthread_mutex_s {
3388    pub __lock: ::std::os::raw::c_int,
3389    pub __count: ::std::os::raw::c_uint,
3390    pub __owner: ::std::os::raw::c_int,
3391    pub __nusers: ::std::os::raw::c_uint,
3392    pub __kind: ::std::os::raw::c_int,
3393    pub __spins: ::std::os::raw::c_short,
3394    pub __elision: ::std::os::raw::c_short,
3395    pub __list: __pthread_list_t,
3396}
3397#[test]
3398fn bindgen_test_layout___pthread_mutex_s() {
3399    assert_eq!(
3400        ::std::mem::size_of::<__pthread_mutex_s>(),
3401        40usize,
3402        concat!("Size of: ", stringify!(__pthread_mutex_s))
3403    );
3404    assert_eq!(
3405        ::std::mem::align_of::<__pthread_mutex_s>(),
3406        8usize,
3407        concat!("Alignment of ", stringify!(__pthread_mutex_s))
3408    );
3409    assert_eq!(
3410        unsafe { &(*(::std::ptr::null::<__pthread_mutex_s>())).__lock as *const _ as usize },
3411        0usize,
3412        concat!(
3413            "Offset of field: ",
3414            stringify!(__pthread_mutex_s),
3415            "::",
3416            stringify!(__lock)
3417        )
3418    );
3419    assert_eq!(
3420        unsafe { &(*(::std::ptr::null::<__pthread_mutex_s>())).__count as *const _ as usize },
3421        4usize,
3422        concat!(
3423            "Offset of field: ",
3424            stringify!(__pthread_mutex_s),
3425            "::",
3426            stringify!(__count)
3427        )
3428    );
3429    assert_eq!(
3430        unsafe { &(*(::std::ptr::null::<__pthread_mutex_s>())).__owner as *const _ as usize },
3431        8usize,
3432        concat!(
3433            "Offset of field: ",
3434            stringify!(__pthread_mutex_s),
3435            "::",
3436            stringify!(__owner)
3437        )
3438    );
3439    assert_eq!(
3440        unsafe { &(*(::std::ptr::null::<__pthread_mutex_s>())).__nusers as *const _ as usize },
3441        12usize,
3442        concat!(
3443            "Offset of field: ",
3444            stringify!(__pthread_mutex_s),
3445            "::",
3446            stringify!(__nusers)
3447        )
3448    );
3449    assert_eq!(
3450        unsafe { &(*(::std::ptr::null::<__pthread_mutex_s>())).__kind as *const _ as usize },
3451        16usize,
3452        concat!(
3453            "Offset of field: ",
3454            stringify!(__pthread_mutex_s),
3455            "::",
3456            stringify!(__kind)
3457        )
3458    );
3459    assert_eq!(
3460        unsafe { &(*(::std::ptr::null::<__pthread_mutex_s>())).__spins as *const _ as usize },
3461        20usize,
3462        concat!(
3463            "Offset of field: ",
3464            stringify!(__pthread_mutex_s),
3465            "::",
3466            stringify!(__spins)
3467        )
3468    );
3469    assert_eq!(
3470        unsafe { &(*(::std::ptr::null::<__pthread_mutex_s>())).__elision as *const _ as usize },
3471        22usize,
3472        concat!(
3473            "Offset of field: ",
3474            stringify!(__pthread_mutex_s),
3475            "::",
3476            stringify!(__elision)
3477        )
3478    );
3479    assert_eq!(
3480        unsafe { &(*(::std::ptr::null::<__pthread_mutex_s>())).__list as *const _ as usize },
3481        24usize,
3482        concat!(
3483            "Offset of field: ",
3484            stringify!(__pthread_mutex_s),
3485            "::",
3486            stringify!(__list)
3487        )
3488    );
3489}
3490#[repr(C)]
3491#[derive(Copy, Clone)]
3492pub struct __pthread_cond_s {
3493    pub __bindgen_anon_1: __pthread_cond_s__bindgen_ty_1,
3494    pub __bindgen_anon_2: __pthread_cond_s__bindgen_ty_2,
3495    pub __g_refs: [::std::os::raw::c_uint; 2usize],
3496    pub __g_size: [::std::os::raw::c_uint; 2usize],
3497    pub __g1_orig_size: ::std::os::raw::c_uint,
3498    pub __wrefs: ::std::os::raw::c_uint,
3499    pub __g_signals: [::std::os::raw::c_uint; 2usize],
3500}
3501#[repr(C)]
3502#[derive(Copy, Clone)]
3503pub union __pthread_cond_s__bindgen_ty_1 {
3504    pub __wseq: ::std::os::raw::c_ulonglong,
3505    pub __wseq32: __pthread_cond_s__bindgen_ty_1__bindgen_ty_1,
3506    _bindgen_union_align: u64,
3507}
3508#[repr(C)]
3509#[derive(Debug, Copy, Clone)]
3510pub struct __pthread_cond_s__bindgen_ty_1__bindgen_ty_1 {
3511    pub __low: ::std::os::raw::c_uint,
3512    pub __high: ::std::os::raw::c_uint,
3513}
3514#[test]
3515fn bindgen_test_layout___pthread_cond_s__bindgen_ty_1__bindgen_ty_1() {
3516    assert_eq!(
3517        ::std::mem::size_of::<__pthread_cond_s__bindgen_ty_1__bindgen_ty_1>(),
3518        8usize,
3519        concat!(
3520            "Size of: ",
3521            stringify!(__pthread_cond_s__bindgen_ty_1__bindgen_ty_1)
3522        )
3523    );
3524    assert_eq!(
3525        ::std::mem::align_of::<__pthread_cond_s__bindgen_ty_1__bindgen_ty_1>(),
3526        4usize,
3527        concat!(
3528            "Alignment of ",
3529            stringify!(__pthread_cond_s__bindgen_ty_1__bindgen_ty_1)
3530        )
3531    );
3532    assert_eq!(
3533        unsafe {
3534            &(*(::std::ptr::null::<__pthread_cond_s__bindgen_ty_1__bindgen_ty_1>())).__low
3535                as *const _ as usize
3536        },
3537        0usize,
3538        concat!(
3539            "Offset of field: ",
3540            stringify!(__pthread_cond_s__bindgen_ty_1__bindgen_ty_1),
3541            "::",
3542            stringify!(__low)
3543        )
3544    );
3545    assert_eq!(
3546        unsafe {
3547            &(*(::std::ptr::null::<__pthread_cond_s__bindgen_ty_1__bindgen_ty_1>())).__high
3548                as *const _ as usize
3549        },
3550        4usize,
3551        concat!(
3552            "Offset of field: ",
3553            stringify!(__pthread_cond_s__bindgen_ty_1__bindgen_ty_1),
3554            "::",
3555            stringify!(__high)
3556        )
3557    );
3558}
3559#[test]
3560fn bindgen_test_layout___pthread_cond_s__bindgen_ty_1() {
3561    assert_eq!(
3562        ::std::mem::size_of::<__pthread_cond_s__bindgen_ty_1>(),
3563        8usize,
3564        concat!("Size of: ", stringify!(__pthread_cond_s__bindgen_ty_1))
3565    );
3566    assert_eq!(
3567        ::std::mem::align_of::<__pthread_cond_s__bindgen_ty_1>(),
3568        8usize,
3569        concat!("Alignment of ", stringify!(__pthread_cond_s__bindgen_ty_1))
3570    );
3571    assert_eq!(
3572        unsafe {
3573            &(*(::std::ptr::null::<__pthread_cond_s__bindgen_ty_1>())).__wseq as *const _ as usize
3574        },
3575        0usize,
3576        concat!(
3577            "Offset of field: ",
3578            stringify!(__pthread_cond_s__bindgen_ty_1),
3579            "::",
3580            stringify!(__wseq)
3581        )
3582    );
3583    assert_eq!(
3584        unsafe {
3585            &(*(::std::ptr::null::<__pthread_cond_s__bindgen_ty_1>())).__wseq32 as *const _ as usize
3586        },
3587        0usize,
3588        concat!(
3589            "Offset of field: ",
3590            stringify!(__pthread_cond_s__bindgen_ty_1),
3591            "::",
3592            stringify!(__wseq32)
3593        )
3594    );
3595}
3596#[repr(C)]
3597#[derive(Copy, Clone)]
3598pub union __pthread_cond_s__bindgen_ty_2 {
3599    pub __g1_start: ::std::os::raw::c_ulonglong,
3600    pub __g1_start32: __pthread_cond_s__bindgen_ty_2__bindgen_ty_1,
3601    _bindgen_union_align: u64,
3602}
3603#[repr(C)]
3604#[derive(Debug, Copy, Clone)]
3605pub struct __pthread_cond_s__bindgen_ty_2__bindgen_ty_1 {
3606    pub __low: ::std::os::raw::c_uint,
3607    pub __high: ::std::os::raw::c_uint,
3608}
3609#[test]
3610fn bindgen_test_layout___pthread_cond_s__bindgen_ty_2__bindgen_ty_1() {
3611    assert_eq!(
3612        ::std::mem::size_of::<__pthread_cond_s__bindgen_ty_2__bindgen_ty_1>(),
3613        8usize,
3614        concat!(
3615            "Size of: ",
3616            stringify!(__pthread_cond_s__bindgen_ty_2__bindgen_ty_1)
3617        )
3618    );
3619    assert_eq!(
3620        ::std::mem::align_of::<__pthread_cond_s__bindgen_ty_2__bindgen_ty_1>(),
3621        4usize,
3622        concat!(
3623            "Alignment of ",
3624            stringify!(__pthread_cond_s__bindgen_ty_2__bindgen_ty_1)
3625        )
3626    );
3627    assert_eq!(
3628        unsafe {
3629            &(*(::std::ptr::null::<__pthread_cond_s__bindgen_ty_2__bindgen_ty_1>())).__low
3630                as *const _ as usize
3631        },
3632        0usize,
3633        concat!(
3634            "Offset of field: ",
3635            stringify!(__pthread_cond_s__bindgen_ty_2__bindgen_ty_1),
3636            "::",
3637            stringify!(__low)
3638        )
3639    );
3640    assert_eq!(
3641        unsafe {
3642            &(*(::std::ptr::null::<__pthread_cond_s__bindgen_ty_2__bindgen_ty_1>())).__high
3643                as *const _ as usize
3644        },
3645        4usize,
3646        concat!(
3647            "Offset of field: ",
3648            stringify!(__pthread_cond_s__bindgen_ty_2__bindgen_ty_1),
3649            "::",
3650            stringify!(__high)
3651        )
3652    );
3653}
3654#[test]
3655fn bindgen_test_layout___pthread_cond_s__bindgen_ty_2() {
3656    assert_eq!(
3657        ::std::mem::size_of::<__pthread_cond_s__bindgen_ty_2>(),
3658        8usize,
3659        concat!("Size of: ", stringify!(__pthread_cond_s__bindgen_ty_2))
3660    );
3661    assert_eq!(
3662        ::std::mem::align_of::<__pthread_cond_s__bindgen_ty_2>(),
3663        8usize,
3664        concat!("Alignment of ", stringify!(__pthread_cond_s__bindgen_ty_2))
3665    );
3666    assert_eq!(
3667        unsafe {
3668            &(*(::std::ptr::null::<__pthread_cond_s__bindgen_ty_2>())).__g1_start as *const _
3669                as usize
3670        },
3671        0usize,
3672        concat!(
3673            "Offset of field: ",
3674            stringify!(__pthread_cond_s__bindgen_ty_2),
3675            "::",
3676            stringify!(__g1_start)
3677        )
3678    );
3679    assert_eq!(
3680        unsafe {
3681            &(*(::std::ptr::null::<__pthread_cond_s__bindgen_ty_2>())).__g1_start32 as *const _
3682                as usize
3683        },
3684        0usize,
3685        concat!(
3686            "Offset of field: ",
3687            stringify!(__pthread_cond_s__bindgen_ty_2),
3688            "::",
3689            stringify!(__g1_start32)
3690        )
3691    );
3692}
3693#[test]
3694fn bindgen_test_layout___pthread_cond_s() {
3695    assert_eq!(
3696        ::std::mem::size_of::<__pthread_cond_s>(),
3697        48usize,
3698        concat!("Size of: ", stringify!(__pthread_cond_s))
3699    );
3700    assert_eq!(
3701        ::std::mem::align_of::<__pthread_cond_s>(),
3702        8usize,
3703        concat!("Alignment of ", stringify!(__pthread_cond_s))
3704    );
3705    assert_eq!(
3706        unsafe { &(*(::std::ptr::null::<__pthread_cond_s>())).__g_refs as *const _ as usize },
3707        16usize,
3708        concat!(
3709            "Offset of field: ",
3710            stringify!(__pthread_cond_s),
3711            "::",
3712            stringify!(__g_refs)
3713        )
3714    );
3715    assert_eq!(
3716        unsafe { &(*(::std::ptr::null::<__pthread_cond_s>())).__g_size as *const _ as usize },
3717        24usize,
3718        concat!(
3719            "Offset of field: ",
3720            stringify!(__pthread_cond_s),
3721            "::",
3722            stringify!(__g_size)
3723        )
3724    );
3725    assert_eq!(
3726        unsafe { &(*(::std::ptr::null::<__pthread_cond_s>())).__g1_orig_size as *const _ as usize },
3727        32usize,
3728        concat!(
3729            "Offset of field: ",
3730            stringify!(__pthread_cond_s),
3731            "::",
3732            stringify!(__g1_orig_size)
3733        )
3734    );
3735    assert_eq!(
3736        unsafe { &(*(::std::ptr::null::<__pthread_cond_s>())).__wrefs as *const _ as usize },
3737        36usize,
3738        concat!(
3739            "Offset of field: ",
3740            stringify!(__pthread_cond_s),
3741            "::",
3742            stringify!(__wrefs)
3743        )
3744    );
3745    assert_eq!(
3746        unsafe { &(*(::std::ptr::null::<__pthread_cond_s>())).__g_signals as *const _ as usize },
3747        40usize,
3748        concat!(
3749            "Offset of field: ",
3750            stringify!(__pthread_cond_s),
3751            "::",
3752            stringify!(__g_signals)
3753        )
3754    );
3755}
3756pub type pthread_t = ::std::os::raw::c_ulong;
3757#[repr(C)]
3758#[derive(Copy, Clone)]
3759pub union pthread_mutexattr_t {
3760    pub __size: [::std::os::raw::c_char; 4usize],
3761    pub __align: ::std::os::raw::c_int,
3762    _bindgen_union_align: u32,
3763}
3764#[test]
3765fn bindgen_test_layout_pthread_mutexattr_t() {
3766    assert_eq!(
3767        ::std::mem::size_of::<pthread_mutexattr_t>(),
3768        4usize,
3769        concat!("Size of: ", stringify!(pthread_mutexattr_t))
3770    );
3771    assert_eq!(
3772        ::std::mem::align_of::<pthread_mutexattr_t>(),
3773        4usize,
3774        concat!("Alignment of ", stringify!(pthread_mutexattr_t))
3775    );
3776    assert_eq!(
3777        unsafe { &(*(::std::ptr::null::<pthread_mutexattr_t>())).__size as *const _ as usize },
3778        0usize,
3779        concat!(
3780            "Offset of field: ",
3781            stringify!(pthread_mutexattr_t),
3782            "::",
3783            stringify!(__size)
3784        )
3785    );
3786    assert_eq!(
3787        unsafe { &(*(::std::ptr::null::<pthread_mutexattr_t>())).__align as *const _ as usize },
3788        0usize,
3789        concat!(
3790            "Offset of field: ",
3791            stringify!(pthread_mutexattr_t),
3792            "::",
3793            stringify!(__align)
3794        )
3795    );
3796}
3797#[repr(C)]
3798#[derive(Copy, Clone)]
3799pub union pthread_condattr_t {
3800    pub __size: [::std::os::raw::c_char; 4usize],
3801    pub __align: ::std::os::raw::c_int,
3802    _bindgen_union_align: u32,
3803}
3804#[test]
3805fn bindgen_test_layout_pthread_condattr_t() {
3806    assert_eq!(
3807        ::std::mem::size_of::<pthread_condattr_t>(),
3808        4usize,
3809        concat!("Size of: ", stringify!(pthread_condattr_t))
3810    );
3811    assert_eq!(
3812        ::std::mem::align_of::<pthread_condattr_t>(),
3813        4usize,
3814        concat!("Alignment of ", stringify!(pthread_condattr_t))
3815    );
3816    assert_eq!(
3817        unsafe { &(*(::std::ptr::null::<pthread_condattr_t>())).__size as *const _ as usize },
3818        0usize,
3819        concat!(
3820            "Offset of field: ",
3821            stringify!(pthread_condattr_t),
3822            "::",
3823            stringify!(__size)
3824        )
3825    );
3826    assert_eq!(
3827        unsafe { &(*(::std::ptr::null::<pthread_condattr_t>())).__align as *const _ as usize },
3828        0usize,
3829        concat!(
3830            "Offset of field: ",
3831            stringify!(pthread_condattr_t),
3832            "::",
3833            stringify!(__align)
3834        )
3835    );
3836}
3837pub type pthread_key_t = ::std::os::raw::c_uint;
3838pub type pthread_once_t = ::std::os::raw::c_int;
3839#[repr(C)]
3840#[derive(Copy, Clone)]
3841pub union pthread_attr_t {
3842    pub __size: [::std::os::raw::c_char; 56usize],
3843    pub __align: ::std::os::raw::c_long,
3844    _bindgen_union_align: [u64; 7usize],
3845}
3846#[test]
3847fn bindgen_test_layout_pthread_attr_t() {
3848    assert_eq!(
3849        ::std::mem::size_of::<pthread_attr_t>(),
3850        56usize,
3851        concat!("Size of: ", stringify!(pthread_attr_t))
3852    );
3853    assert_eq!(
3854        ::std::mem::align_of::<pthread_attr_t>(),
3855        8usize,
3856        concat!("Alignment of ", stringify!(pthread_attr_t))
3857    );
3858    assert_eq!(
3859        unsafe { &(*(::std::ptr::null::<pthread_attr_t>())).__size as *const _ as usize },
3860        0usize,
3861        concat!(
3862            "Offset of field: ",
3863            stringify!(pthread_attr_t),
3864            "::",
3865            stringify!(__size)
3866        )
3867    );
3868    assert_eq!(
3869        unsafe { &(*(::std::ptr::null::<pthread_attr_t>())).__align as *const _ as usize },
3870        0usize,
3871        concat!(
3872            "Offset of field: ",
3873            stringify!(pthread_attr_t),
3874            "::",
3875            stringify!(__align)
3876        )
3877    );
3878}
3879#[repr(C)]
3880#[derive(Copy, Clone)]
3881pub union pthread_mutex_t {
3882    pub __data: __pthread_mutex_s,
3883    pub __size: [::std::os::raw::c_char; 40usize],
3884    pub __align: ::std::os::raw::c_long,
3885    _bindgen_union_align: [u64; 5usize],
3886}
3887#[test]
3888fn bindgen_test_layout_pthread_mutex_t() {
3889    assert_eq!(
3890        ::std::mem::size_of::<pthread_mutex_t>(),
3891        40usize,
3892        concat!("Size of: ", stringify!(pthread_mutex_t))
3893    );
3894    assert_eq!(
3895        ::std::mem::align_of::<pthread_mutex_t>(),
3896        8usize,
3897        concat!("Alignment of ", stringify!(pthread_mutex_t))
3898    );
3899    assert_eq!(
3900        unsafe { &(*(::std::ptr::null::<pthread_mutex_t>())).__data as *const _ as usize },
3901        0usize,
3902        concat!(
3903            "Offset of field: ",
3904            stringify!(pthread_mutex_t),
3905            "::",
3906            stringify!(__data)
3907        )
3908    );
3909    assert_eq!(
3910        unsafe { &(*(::std::ptr::null::<pthread_mutex_t>())).__size as *const _ as usize },
3911        0usize,
3912        concat!(
3913            "Offset of field: ",
3914            stringify!(pthread_mutex_t),
3915            "::",
3916            stringify!(__size)
3917        )
3918    );
3919    assert_eq!(
3920        unsafe { &(*(::std::ptr::null::<pthread_mutex_t>())).__align as *const _ as usize },
3921        0usize,
3922        concat!(
3923            "Offset of field: ",
3924            stringify!(pthread_mutex_t),
3925            "::",
3926            stringify!(__align)
3927        )
3928    );
3929}
3930#[repr(C)]
3931#[derive(Copy, Clone)]
3932pub union pthread_cond_t {
3933    pub __data: __pthread_cond_s,
3934    pub __size: [::std::os::raw::c_char; 48usize],
3935    pub __align: ::std::os::raw::c_longlong,
3936    _bindgen_union_align: [u64; 6usize],
3937}
3938#[test]
3939fn bindgen_test_layout_pthread_cond_t() {
3940    assert_eq!(
3941        ::std::mem::size_of::<pthread_cond_t>(),
3942        48usize,
3943        concat!("Size of: ", stringify!(pthread_cond_t))
3944    );
3945    assert_eq!(
3946        ::std::mem::align_of::<pthread_cond_t>(),
3947        8usize,
3948        concat!("Alignment of ", stringify!(pthread_cond_t))
3949    );
3950    assert_eq!(
3951        unsafe { &(*(::std::ptr::null::<pthread_cond_t>())).__data as *const _ as usize },
3952        0usize,
3953        concat!(
3954            "Offset of field: ",
3955            stringify!(pthread_cond_t),
3956            "::",
3957            stringify!(__data)
3958        )
3959    );
3960    assert_eq!(
3961        unsafe { &(*(::std::ptr::null::<pthread_cond_t>())).__size as *const _ as usize },
3962        0usize,
3963        concat!(
3964            "Offset of field: ",
3965            stringify!(pthread_cond_t),
3966            "::",
3967            stringify!(__size)
3968        )
3969    );
3970    assert_eq!(
3971        unsafe { &(*(::std::ptr::null::<pthread_cond_t>())).__align as *const _ as usize },
3972        0usize,
3973        concat!(
3974            "Offset of field: ",
3975            stringify!(pthread_cond_t),
3976            "::",
3977            stringify!(__align)
3978        )
3979    );
3980}
3981#[repr(C)]
3982#[derive(Copy, Clone)]
3983pub union pthread_rwlock_t {
3984    pub __data: __pthread_rwlock_arch_t,
3985    pub __size: [::std::os::raw::c_char; 56usize],
3986    pub __align: ::std::os::raw::c_long,
3987    _bindgen_union_align: [u64; 7usize],
3988}
3989#[test]
3990fn bindgen_test_layout_pthread_rwlock_t() {
3991    assert_eq!(
3992        ::std::mem::size_of::<pthread_rwlock_t>(),
3993        56usize,
3994        concat!("Size of: ", stringify!(pthread_rwlock_t))
3995    );
3996    assert_eq!(
3997        ::std::mem::align_of::<pthread_rwlock_t>(),
3998        8usize,
3999        concat!("Alignment of ", stringify!(pthread_rwlock_t))
4000    );
4001    assert_eq!(
4002        unsafe { &(*(::std::ptr::null::<pthread_rwlock_t>())).__data as *const _ as usize },
4003        0usize,
4004        concat!(
4005            "Offset of field: ",
4006            stringify!(pthread_rwlock_t),
4007            "::",
4008            stringify!(__data)
4009        )
4010    );
4011    assert_eq!(
4012        unsafe { &(*(::std::ptr::null::<pthread_rwlock_t>())).__size as *const _ as usize },
4013        0usize,
4014        concat!(
4015            "Offset of field: ",
4016            stringify!(pthread_rwlock_t),
4017            "::",
4018            stringify!(__size)
4019        )
4020    );
4021    assert_eq!(
4022        unsafe { &(*(::std::ptr::null::<pthread_rwlock_t>())).__align as *const _ as usize },
4023        0usize,
4024        concat!(
4025            "Offset of field: ",
4026            stringify!(pthread_rwlock_t),
4027            "::",
4028            stringify!(__align)
4029        )
4030    );
4031}
4032#[repr(C)]
4033#[derive(Copy, Clone)]
4034pub union pthread_rwlockattr_t {
4035    pub __size: [::std::os::raw::c_char; 8usize],
4036    pub __align: ::std::os::raw::c_long,
4037    _bindgen_union_align: u64,
4038}
4039#[test]
4040fn bindgen_test_layout_pthread_rwlockattr_t() {
4041    assert_eq!(
4042        ::std::mem::size_of::<pthread_rwlockattr_t>(),
4043        8usize,
4044        concat!("Size of: ", stringify!(pthread_rwlockattr_t))
4045    );
4046    assert_eq!(
4047        ::std::mem::align_of::<pthread_rwlockattr_t>(),
4048        8usize,
4049        concat!("Alignment of ", stringify!(pthread_rwlockattr_t))
4050    );
4051    assert_eq!(
4052        unsafe { &(*(::std::ptr::null::<pthread_rwlockattr_t>())).__size as *const _ as usize },
4053        0usize,
4054        concat!(
4055            "Offset of field: ",
4056            stringify!(pthread_rwlockattr_t),
4057            "::",
4058            stringify!(__size)
4059        )
4060    );
4061    assert_eq!(
4062        unsafe { &(*(::std::ptr::null::<pthread_rwlockattr_t>())).__align as *const _ as usize },
4063        0usize,
4064        concat!(
4065            "Offset of field: ",
4066            stringify!(pthread_rwlockattr_t),
4067            "::",
4068            stringify!(__align)
4069        )
4070    );
4071}
4072pub type pthread_spinlock_t = ::std::os::raw::c_int;
4073#[repr(C)]
4074#[derive(Copy, Clone)]
4075pub union pthread_barrier_t {
4076    pub __size: [::std::os::raw::c_char; 32usize],
4077    pub __align: ::std::os::raw::c_long,
4078    _bindgen_union_align: [u64; 4usize],
4079}
4080#[test]
4081fn bindgen_test_layout_pthread_barrier_t() {
4082    assert_eq!(
4083        ::std::mem::size_of::<pthread_barrier_t>(),
4084        32usize,
4085        concat!("Size of: ", stringify!(pthread_barrier_t))
4086    );
4087    assert_eq!(
4088        ::std::mem::align_of::<pthread_barrier_t>(),
4089        8usize,
4090        concat!("Alignment of ", stringify!(pthread_barrier_t))
4091    );
4092    assert_eq!(
4093        unsafe { &(*(::std::ptr::null::<pthread_barrier_t>())).__size as *const _ as usize },
4094        0usize,
4095        concat!(
4096            "Offset of field: ",
4097            stringify!(pthread_barrier_t),
4098            "::",
4099            stringify!(__size)
4100        )
4101    );
4102    assert_eq!(
4103        unsafe { &(*(::std::ptr::null::<pthread_barrier_t>())).__align as *const _ as usize },
4104        0usize,
4105        concat!(
4106            "Offset of field: ",
4107            stringify!(pthread_barrier_t),
4108            "::",
4109            stringify!(__align)
4110        )
4111    );
4112}
4113#[repr(C)]
4114#[derive(Copy, Clone)]
4115pub union pthread_barrierattr_t {
4116    pub __size: [::std::os::raw::c_char; 4usize],
4117    pub __align: ::std::os::raw::c_int,
4118    _bindgen_union_align: u32,
4119}
4120#[test]
4121fn bindgen_test_layout_pthread_barrierattr_t() {
4122    assert_eq!(
4123        ::std::mem::size_of::<pthread_barrierattr_t>(),
4124        4usize,
4125        concat!("Size of: ", stringify!(pthread_barrierattr_t))
4126    );
4127    assert_eq!(
4128        ::std::mem::align_of::<pthread_barrierattr_t>(),
4129        4usize,
4130        concat!("Alignment of ", stringify!(pthread_barrierattr_t))
4131    );
4132    assert_eq!(
4133        unsafe { &(*(::std::ptr::null::<pthread_barrierattr_t>())).__size as *const _ as usize },
4134        0usize,
4135        concat!(
4136            "Offset of field: ",
4137            stringify!(pthread_barrierattr_t),
4138            "::",
4139            stringify!(__size)
4140        )
4141    );
4142    assert_eq!(
4143        unsafe { &(*(::std::ptr::null::<pthread_barrierattr_t>())).__align as *const _ as usize },
4144        0usize,
4145        concat!(
4146            "Offset of field: ",
4147            stringify!(pthread_barrierattr_t),
4148            "::",
4149            stringify!(__align)
4150        )
4151    );
4152}
4153extern "C" {
4154    pub fn random() -> ::std::os::raw::c_long;
4155}
4156extern "C" {
4157    pub fn srandom(__seed: ::std::os::raw::c_uint);
4158}
4159extern "C" {
4160    pub fn initstate(
4161        __seed: ::std::os::raw::c_uint,
4162        __statebuf: *mut ::std::os::raw::c_char,
4163        __statelen: usize,
4164    ) -> *mut ::std::os::raw::c_char;
4165}
4166extern "C" {
4167    pub fn setstate(__statebuf: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
4168}
4169#[repr(C)]
4170#[derive(Debug, Copy, Clone)]
4171pub struct random_data {
4172    pub fptr: *mut i32,
4173    pub rptr: *mut i32,
4174    pub state: *mut i32,
4175    pub rand_type: ::std::os::raw::c_int,
4176    pub rand_deg: ::std::os::raw::c_int,
4177    pub rand_sep: ::std::os::raw::c_int,
4178    pub end_ptr: *mut i32,
4179}
4180#[test]
4181fn bindgen_test_layout_random_data() {
4182    assert_eq!(
4183        ::std::mem::size_of::<random_data>(),
4184        48usize,
4185        concat!("Size of: ", stringify!(random_data))
4186    );
4187    assert_eq!(
4188        ::std::mem::align_of::<random_data>(),
4189        8usize,
4190        concat!("Alignment of ", stringify!(random_data))
4191    );
4192    assert_eq!(
4193        unsafe { &(*(::std::ptr::null::<random_data>())).fptr as *const _ as usize },
4194        0usize,
4195        concat!(
4196            "Offset of field: ",
4197            stringify!(random_data),
4198            "::",
4199            stringify!(fptr)
4200        )
4201    );
4202    assert_eq!(
4203        unsafe { &(*(::std::ptr::null::<random_data>())).rptr as *const _ as usize },
4204        8usize,
4205        concat!(
4206            "Offset of field: ",
4207            stringify!(random_data),
4208            "::",
4209            stringify!(rptr)
4210        )
4211    );
4212    assert_eq!(
4213        unsafe { &(*(::std::ptr::null::<random_data>())).state as *const _ as usize },
4214        16usize,
4215        concat!(
4216            "Offset of field: ",
4217            stringify!(random_data),
4218            "::",
4219            stringify!(state)
4220        )
4221    );
4222    assert_eq!(
4223        unsafe { &(*(::std::ptr::null::<random_data>())).rand_type as *const _ as usize },
4224        24usize,
4225        concat!(
4226            "Offset of field: ",
4227            stringify!(random_data),
4228            "::",
4229            stringify!(rand_type)
4230        )
4231    );
4232    assert_eq!(
4233        unsafe { &(*(::std::ptr::null::<random_data>())).rand_deg as *const _ as usize },
4234        28usize,
4235        concat!(
4236            "Offset of field: ",
4237            stringify!(random_data),
4238            "::",
4239            stringify!(rand_deg)
4240        )
4241    );
4242    assert_eq!(
4243        unsafe { &(*(::std::ptr::null::<random_data>())).rand_sep as *const _ as usize },
4244        32usize,
4245        concat!(
4246            "Offset of field: ",
4247            stringify!(random_data),
4248            "::",
4249            stringify!(rand_sep)
4250        )
4251    );
4252    assert_eq!(
4253        unsafe { &(*(::std::ptr::null::<random_data>())).end_ptr as *const _ as usize },
4254        40usize,
4255        concat!(
4256            "Offset of field: ",
4257            stringify!(random_data),
4258            "::",
4259            stringify!(end_ptr)
4260        )
4261    );
4262}
4263extern "C" {
4264    pub fn random_r(__buf: *mut random_data, __result: *mut i32) -> ::std::os::raw::c_int;
4265}
4266extern "C" {
4267    pub fn srandom_r(
4268        __seed: ::std::os::raw::c_uint,
4269        __buf: *mut random_data,
4270    ) -> ::std::os::raw::c_int;
4271}
4272extern "C" {
4273    pub fn initstate_r(
4274        __seed: ::std::os::raw::c_uint,
4275        __statebuf: *mut ::std::os::raw::c_char,
4276        __statelen: usize,
4277        __buf: *mut random_data,
4278    ) -> ::std::os::raw::c_int;
4279}
4280extern "C" {
4281    pub fn setstate_r(
4282        __statebuf: *mut ::std::os::raw::c_char,
4283        __buf: *mut random_data,
4284    ) -> ::std::os::raw::c_int;
4285}
4286extern "C" {
4287    pub fn rand() -> ::std::os::raw::c_int;
4288}
4289extern "C" {
4290    pub fn srand(__seed: ::std::os::raw::c_uint);
4291}
4292extern "C" {
4293    pub fn rand_r(__seed: *mut ::std::os::raw::c_uint) -> ::std::os::raw::c_int;
4294}
4295extern "C" {
4296    pub fn drand48() -> f64;
4297}
4298extern "C" {
4299    pub fn erand48(__xsubi: *mut ::std::os::raw::c_ushort) -> f64;
4300}
4301extern "C" {
4302    pub fn lrand48() -> ::std::os::raw::c_long;
4303}
4304extern "C" {
4305    pub fn nrand48(__xsubi: *mut ::std::os::raw::c_ushort) -> ::std::os::raw::c_long;
4306}
4307extern "C" {
4308    pub fn mrand48() -> ::std::os::raw::c_long;
4309}
4310extern "C" {
4311    pub fn jrand48(__xsubi: *mut ::std::os::raw::c_ushort) -> ::std::os::raw::c_long;
4312}
4313extern "C" {
4314    pub fn srand48(__seedval: ::std::os::raw::c_long);
4315}
4316extern "C" {
4317    pub fn seed48(__seed16v: *mut ::std::os::raw::c_ushort) -> *mut ::std::os::raw::c_ushort;
4318}
4319extern "C" {
4320    pub fn lcong48(__param: *mut ::std::os::raw::c_ushort);
4321}
4322#[repr(C)]
4323#[derive(Debug, Copy, Clone)]
4324pub struct drand48_data {
4325    pub __x: [::std::os::raw::c_ushort; 3usize],
4326    pub __old_x: [::std::os::raw::c_ushort; 3usize],
4327    pub __c: ::std::os::raw::c_ushort,
4328    pub __init: ::std::os::raw::c_ushort,
4329    pub __a: ::std::os::raw::c_ulonglong,
4330}
4331#[test]
4332fn bindgen_test_layout_drand48_data() {
4333    assert_eq!(
4334        ::std::mem::size_of::<drand48_data>(),
4335        24usize,
4336        concat!("Size of: ", stringify!(drand48_data))
4337    );
4338    assert_eq!(
4339        ::std::mem::align_of::<drand48_data>(),
4340        8usize,
4341        concat!("Alignment of ", stringify!(drand48_data))
4342    );
4343    assert_eq!(
4344        unsafe { &(*(::std::ptr::null::<drand48_data>())).__x as *const _ as usize },
4345        0usize,
4346        concat!(
4347            "Offset of field: ",
4348            stringify!(drand48_data),
4349            "::",
4350            stringify!(__x)
4351        )
4352    );
4353    assert_eq!(
4354        unsafe { &(*(::std::ptr::null::<drand48_data>())).__old_x as *const _ as usize },
4355        6usize,
4356        concat!(
4357            "Offset of field: ",
4358            stringify!(drand48_data),
4359            "::",
4360            stringify!(__old_x)
4361        )
4362    );
4363    assert_eq!(
4364        unsafe { &(*(::std::ptr::null::<drand48_data>())).__c as *const _ as usize },
4365        12usize,
4366        concat!(
4367            "Offset of field: ",
4368            stringify!(drand48_data),
4369            "::",
4370            stringify!(__c)
4371        )
4372    );
4373    assert_eq!(
4374        unsafe { &(*(::std::ptr::null::<drand48_data>())).__init as *const _ as usize },
4375        14usize,
4376        concat!(
4377            "Offset of field: ",
4378            stringify!(drand48_data),
4379            "::",
4380            stringify!(__init)
4381        )
4382    );
4383    assert_eq!(
4384        unsafe { &(*(::std::ptr::null::<drand48_data>())).__a as *const _ as usize },
4385        16usize,
4386        concat!(
4387            "Offset of field: ",
4388            stringify!(drand48_data),
4389            "::",
4390            stringify!(__a)
4391        )
4392    );
4393}
4394extern "C" {
4395    pub fn drand48_r(__buffer: *mut drand48_data, __result: *mut f64) -> ::std::os::raw::c_int;
4396}
4397extern "C" {
4398    pub fn erand48_r(
4399        __xsubi: *mut ::std::os::raw::c_ushort,
4400        __buffer: *mut drand48_data,
4401        __result: *mut f64,
4402    ) -> ::std::os::raw::c_int;
4403}
4404extern "C" {
4405    pub fn lrand48_r(
4406        __buffer: *mut drand48_data,
4407        __result: *mut ::std::os::raw::c_long,
4408    ) -> ::std::os::raw::c_int;
4409}
4410extern "C" {
4411    pub fn nrand48_r(
4412        __xsubi: *mut ::std::os::raw::c_ushort,
4413        __buffer: *mut drand48_data,
4414        __result: *mut ::std::os::raw::c_long,
4415    ) -> ::std::os::raw::c_int;
4416}
4417extern "C" {
4418    pub fn mrand48_r(
4419        __buffer: *mut drand48_data,
4420        __result: *mut ::std::os::raw::c_long,
4421    ) -> ::std::os::raw::c_int;
4422}
4423extern "C" {
4424    pub fn jrand48_r(
4425        __xsubi: *mut ::std::os::raw::c_ushort,
4426        __buffer: *mut drand48_data,
4427        __result: *mut ::std::os::raw::c_long,
4428    ) -> ::std::os::raw::c_int;
4429}
4430extern "C" {
4431    pub fn srand48_r(
4432        __seedval: ::std::os::raw::c_long,
4433        __buffer: *mut drand48_data,
4434    ) -> ::std::os::raw::c_int;
4435}
4436extern "C" {
4437    pub fn seed48_r(
4438        __seed16v: *mut ::std::os::raw::c_ushort,
4439        __buffer: *mut drand48_data,
4440    ) -> ::std::os::raw::c_int;
4441}
4442extern "C" {
4443    pub fn lcong48_r(
4444        __param: *mut ::std::os::raw::c_ushort,
4445        __buffer: *mut drand48_data,
4446    ) -> ::std::os::raw::c_int;
4447}
4448extern "C" {
4449    pub fn malloc(__size: ::std::os::raw::c_ulong) -> *mut ::std::os::raw::c_void;
4450}
4451extern "C" {
4452    pub fn calloc(
4453        __nmemb: ::std::os::raw::c_ulong,
4454        __size: ::std::os::raw::c_ulong,
4455    ) -> *mut ::std::os::raw::c_void;
4456}
4457extern "C" {
4458    pub fn realloc(
4459        __ptr: *mut ::std::os::raw::c_void,
4460        __size: ::std::os::raw::c_ulong,
4461    ) -> *mut ::std::os::raw::c_void;
4462}
4463extern "C" {
4464    pub fn free(__ptr: *mut ::std::os::raw::c_void);
4465}
4466extern "C" {
4467    pub fn alloca(__size: ::std::os::raw::c_ulong) -> *mut ::std::os::raw::c_void;
4468}
4469extern "C" {
4470    pub fn valloc(__size: usize) -> *mut ::std::os::raw::c_void;
4471}
4472extern "C" {
4473    pub fn posix_memalign(
4474        __memptr: *mut *mut ::std::os::raw::c_void,
4475        __alignment: usize,
4476        __size: usize,
4477    ) -> ::std::os::raw::c_int;
4478}
4479extern "C" {
4480    pub fn aligned_alloc(__alignment: usize, __size: usize) -> *mut ::std::os::raw::c_void;
4481}
4482extern "C" {
4483    pub fn abort();
4484}
4485extern "C" {
4486    pub fn atexit(__func: ::std::option::Option<unsafe extern "C" fn()>) -> ::std::os::raw::c_int;
4487}
4488extern "C" {
4489    pub fn at_quick_exit(
4490        __func: ::std::option::Option<unsafe extern "C" fn()>,
4491    ) -> ::std::os::raw::c_int;
4492}
4493extern "C" {
4494    pub fn on_exit(
4495        __func: ::std::option::Option<
4496            unsafe extern "C" fn(
4497                __status: ::std::os::raw::c_int,
4498                __arg: *mut ::std::os::raw::c_void,
4499            ),
4500        >,
4501        __arg: *mut ::std::os::raw::c_void,
4502    ) -> ::std::os::raw::c_int;
4503}
4504extern "C" {
4505    pub fn exit(__status: ::std::os::raw::c_int);
4506}
4507extern "C" {
4508    pub fn quick_exit(__status: ::std::os::raw::c_int);
4509}
4510extern "C" {
4511    pub fn _Exit(__status: ::std::os::raw::c_int);
4512}
4513extern "C" {
4514    pub fn getenv(__name: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
4515}
4516extern "C" {
4517    pub fn putenv(__string: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int;
4518}
4519extern "C" {
4520    pub fn setenv(
4521        __name: *const ::std::os::raw::c_char,
4522        __value: *const ::std::os::raw::c_char,
4523        __replace: ::std::os::raw::c_int,
4524    ) -> ::std::os::raw::c_int;
4525}
4526extern "C" {
4527    pub fn unsetenv(__name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
4528}
4529extern "C" {
4530    pub fn clearenv() -> ::std::os::raw::c_int;
4531}
4532extern "C" {
4533    pub fn mktemp(__template: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
4534}
4535extern "C" {
4536    pub fn mkstemp(__template: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int;
4537}
4538extern "C" {
4539    pub fn mkstemps(
4540        __template: *mut ::std::os::raw::c_char,
4541        __suffixlen: ::std::os::raw::c_int,
4542    ) -> ::std::os::raw::c_int;
4543}
4544extern "C" {
4545    pub fn mkdtemp(__template: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
4546}
4547extern "C" {
4548    pub fn system(__command: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
4549}
4550extern "C" {
4551    pub fn realpath(
4552        __name: *const ::std::os::raw::c_char,
4553        __resolved: *mut ::std::os::raw::c_char,
4554    ) -> *mut ::std::os::raw::c_char;
4555}
4556pub type __compar_fn_t = ::std::option::Option<
4557    unsafe extern "C" fn(
4558        arg1: *const ::std::os::raw::c_void,
4559        arg2: *const ::std::os::raw::c_void,
4560    ) -> ::std::os::raw::c_int,
4561>;
4562extern "C" {
4563    pub fn bsearch(
4564        __key: *const ::std::os::raw::c_void,
4565        __base: *const ::std::os::raw::c_void,
4566        __nmemb: usize,
4567        __size: usize,
4568        __compar: __compar_fn_t,
4569    ) -> *mut ::std::os::raw::c_void;
4570}
4571extern "C" {
4572    pub fn qsort(
4573        __base: *mut ::std::os::raw::c_void,
4574        __nmemb: usize,
4575        __size: usize,
4576        __compar: __compar_fn_t,
4577    );
4578}
4579extern "C" {
4580    pub fn abs(__x: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
4581}
4582extern "C" {
4583    pub fn labs(__x: ::std::os::raw::c_long) -> ::std::os::raw::c_long;
4584}
4585extern "C" {
4586    pub fn llabs(__x: ::std::os::raw::c_longlong) -> ::std::os::raw::c_longlong;
4587}
4588extern "C" {
4589    pub fn div(__numer: ::std::os::raw::c_int, __denom: ::std::os::raw::c_int) -> div_t;
4590}
4591extern "C" {
4592    pub fn ldiv(__numer: ::std::os::raw::c_long, __denom: ::std::os::raw::c_long) -> ldiv_t;
4593}
4594extern "C" {
4595    pub fn lldiv(
4596        __numer: ::std::os::raw::c_longlong,
4597        __denom: ::std::os::raw::c_longlong,
4598    ) -> lldiv_t;
4599}
4600extern "C" {
4601    pub fn ecvt(
4602        __value: f64,
4603        __ndigit: ::std::os::raw::c_int,
4604        __decpt: *mut ::std::os::raw::c_int,
4605        __sign: *mut ::std::os::raw::c_int,
4606    ) -> *mut ::std::os::raw::c_char;
4607}
4608extern "C" {
4609    pub fn fcvt(
4610        __value: f64,
4611        __ndigit: ::std::os::raw::c_int,
4612        __decpt: *mut ::std::os::raw::c_int,
4613        __sign: *mut ::std::os::raw::c_int,
4614    ) -> *mut ::std::os::raw::c_char;
4615}
4616extern "C" {
4617    pub fn gcvt(
4618        __value: f64,
4619        __ndigit: ::std::os::raw::c_int,
4620        __buf: *mut ::std::os::raw::c_char,
4621    ) -> *mut ::std::os::raw::c_char;
4622}
4623extern "C" {
4624    pub fn qecvt(
4625        __value: u128,
4626        __ndigit: ::std::os::raw::c_int,
4627        __decpt: *mut ::std::os::raw::c_int,
4628        __sign: *mut ::std::os::raw::c_int,
4629    ) -> *mut ::std::os::raw::c_char;
4630}
4631extern "C" {
4632    pub fn qfcvt(
4633        __value: u128,
4634        __ndigit: ::std::os::raw::c_int,
4635        __decpt: *mut ::std::os::raw::c_int,
4636        __sign: *mut ::std::os::raw::c_int,
4637    ) -> *mut ::std::os::raw::c_char;
4638}
4639extern "C" {
4640    pub fn qgcvt(
4641        __value: u128,
4642        __ndigit: ::std::os::raw::c_int,
4643        __buf: *mut ::std::os::raw::c_char,
4644    ) -> *mut ::std::os::raw::c_char;
4645}
4646extern "C" {
4647    pub fn ecvt_r(
4648        __value: f64,
4649        __ndigit: ::std::os::raw::c_int,
4650        __decpt: *mut ::std::os::raw::c_int,
4651        __sign: *mut ::std::os::raw::c_int,
4652        __buf: *mut ::std::os::raw::c_char,
4653        __len: usize,
4654    ) -> ::std::os::raw::c_int;
4655}
4656extern "C" {
4657    pub fn fcvt_r(
4658        __value: f64,
4659        __ndigit: ::std::os::raw::c_int,
4660        __decpt: *mut ::std::os::raw::c_int,
4661        __sign: *mut ::std::os::raw::c_int,
4662        __buf: *mut ::std::os::raw::c_char,
4663        __len: usize,
4664    ) -> ::std::os::raw::c_int;
4665}
4666extern "C" {
4667    pub fn qecvt_r(
4668        __value: u128,
4669        __ndigit: ::std::os::raw::c_int,
4670        __decpt: *mut ::std::os::raw::c_int,
4671        __sign: *mut ::std::os::raw::c_int,
4672        __buf: *mut ::std::os::raw::c_char,
4673        __len: usize,
4674    ) -> ::std::os::raw::c_int;
4675}
4676extern "C" {
4677    pub fn qfcvt_r(
4678        __value: u128,
4679        __ndigit: ::std::os::raw::c_int,
4680        __decpt: *mut ::std::os::raw::c_int,
4681        __sign: *mut ::std::os::raw::c_int,
4682        __buf: *mut ::std::os::raw::c_char,
4683        __len: usize,
4684    ) -> ::std::os::raw::c_int;
4685}
4686extern "C" {
4687    pub fn mblen(__s: *const ::std::os::raw::c_char, __n: usize) -> ::std::os::raw::c_int;
4688}
4689extern "C" {
4690    pub fn mbtowc(
4691        __pwc: *mut wchar_t,
4692        __s: *const ::std::os::raw::c_char,
4693        __n: usize,
4694    ) -> ::std::os::raw::c_int;
4695}
4696extern "C" {
4697    pub fn wctomb(__s: *mut ::std::os::raw::c_char, __wchar: wchar_t) -> ::std::os::raw::c_int;
4698}
4699extern "C" {
4700    pub fn mbstowcs(__pwcs: *mut wchar_t, __s: *const ::std::os::raw::c_char, __n: usize) -> usize;
4701}
4702extern "C" {
4703    pub fn wcstombs(__s: *mut ::std::os::raw::c_char, __pwcs: *const wchar_t, __n: usize) -> usize;
4704}
4705extern "C" {
4706    pub fn rpmatch(__response: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
4707}
4708extern "C" {
4709    pub fn getsubopt(
4710        __optionp: *mut *mut ::std::os::raw::c_char,
4711        __tokens: *const *mut ::std::os::raw::c_char,
4712        __valuep: *mut *mut ::std::os::raw::c_char,
4713    ) -> ::std::os::raw::c_int;
4714}
4715extern "C" {
4716    pub fn getloadavg(__loadavg: *mut f64, __nelem: ::std::os::raw::c_int)
4717        -> ::std::os::raw::c_int;
4718}
4719extern "C" {
4720    pub fn __errno_location() -> *mut ::std::os::raw::c_int;
4721}
4722#[repr(C)]
4723#[derive(Debug, Copy, Clone)]
4724pub struct tm {
4725    pub tm_sec: ::std::os::raw::c_int,
4726    pub tm_min: ::std::os::raw::c_int,
4727    pub tm_hour: ::std::os::raw::c_int,
4728    pub tm_mday: ::std::os::raw::c_int,
4729    pub tm_mon: ::std::os::raw::c_int,
4730    pub tm_year: ::std::os::raw::c_int,
4731    pub tm_wday: ::std::os::raw::c_int,
4732    pub tm_yday: ::std::os::raw::c_int,
4733    pub tm_isdst: ::std::os::raw::c_int,
4734    pub tm_gmtoff: ::std::os::raw::c_long,
4735    pub tm_zone: *const ::std::os::raw::c_char,
4736}
4737#[test]
4738fn bindgen_test_layout_tm() {
4739    assert_eq!(
4740        ::std::mem::size_of::<tm>(),
4741        56usize,
4742        concat!("Size of: ", stringify!(tm))
4743    );
4744    assert_eq!(
4745        ::std::mem::align_of::<tm>(),
4746        8usize,
4747        concat!("Alignment of ", stringify!(tm))
4748    );
4749    assert_eq!(
4750        unsafe { &(*(::std::ptr::null::<tm>())).tm_sec as *const _ as usize },
4751        0usize,
4752        concat!(
4753            "Offset of field: ",
4754            stringify!(tm),
4755            "::",
4756            stringify!(tm_sec)
4757        )
4758    );
4759    assert_eq!(
4760        unsafe { &(*(::std::ptr::null::<tm>())).tm_min as *const _ as usize },
4761        4usize,
4762        concat!(
4763            "Offset of field: ",
4764            stringify!(tm),
4765            "::",
4766            stringify!(tm_min)
4767        )
4768    );
4769    assert_eq!(
4770        unsafe { &(*(::std::ptr::null::<tm>())).tm_hour as *const _ as usize },
4771        8usize,
4772        concat!(
4773            "Offset of field: ",
4774            stringify!(tm),
4775            "::",
4776            stringify!(tm_hour)
4777        )
4778    );
4779    assert_eq!(
4780        unsafe { &(*(::std::ptr::null::<tm>())).tm_mday as *const _ as usize },
4781        12usize,
4782        concat!(
4783            "Offset of field: ",
4784            stringify!(tm),
4785            "::",
4786            stringify!(tm_mday)
4787        )
4788    );
4789    assert_eq!(
4790        unsafe { &(*(::std::ptr::null::<tm>())).tm_mon as *const _ as usize },
4791        16usize,
4792        concat!(
4793            "Offset of field: ",
4794            stringify!(tm),
4795            "::",
4796            stringify!(tm_mon)
4797        )
4798    );
4799    assert_eq!(
4800        unsafe { &(*(::std::ptr::null::<tm>())).tm_year as *const _ as usize },
4801        20usize,
4802        concat!(
4803            "Offset of field: ",
4804            stringify!(tm),
4805            "::",
4806            stringify!(tm_year)
4807        )
4808    );
4809    assert_eq!(
4810        unsafe { &(*(::std::ptr::null::<tm>())).tm_wday as *const _ as usize },
4811        24usize,
4812        concat!(
4813            "Offset of field: ",
4814            stringify!(tm),
4815            "::",
4816            stringify!(tm_wday)
4817        )
4818    );
4819    assert_eq!(
4820        unsafe { &(*(::std::ptr::null::<tm>())).tm_yday as *const _ as usize },
4821        28usize,
4822        concat!(
4823            "Offset of field: ",
4824            stringify!(tm),
4825            "::",
4826            stringify!(tm_yday)
4827        )
4828    );
4829    assert_eq!(
4830        unsafe { &(*(::std::ptr::null::<tm>())).tm_isdst as *const _ as usize },
4831        32usize,
4832        concat!(
4833            "Offset of field: ",
4834            stringify!(tm),
4835            "::",
4836            stringify!(tm_isdst)
4837        )
4838    );
4839    assert_eq!(
4840        unsafe { &(*(::std::ptr::null::<tm>())).tm_gmtoff as *const _ as usize },
4841        40usize,
4842        concat!(
4843            "Offset of field: ",
4844            stringify!(tm),
4845            "::",
4846            stringify!(tm_gmtoff)
4847        )
4848    );
4849    assert_eq!(
4850        unsafe { &(*(::std::ptr::null::<tm>())).tm_zone as *const _ as usize },
4851        48usize,
4852        concat!(
4853            "Offset of field: ",
4854            stringify!(tm),
4855            "::",
4856            stringify!(tm_zone)
4857        )
4858    );
4859}
4860#[repr(C)]
4861#[derive(Debug, Copy, Clone)]
4862pub struct itimerspec {
4863    pub it_interval: timespec,
4864    pub it_value: timespec,
4865}
4866#[test]
4867fn bindgen_test_layout_itimerspec() {
4868    assert_eq!(
4869        ::std::mem::size_of::<itimerspec>(),
4870        32usize,
4871        concat!("Size of: ", stringify!(itimerspec))
4872    );
4873    assert_eq!(
4874        ::std::mem::align_of::<itimerspec>(),
4875        8usize,
4876        concat!("Alignment of ", stringify!(itimerspec))
4877    );
4878    assert_eq!(
4879        unsafe { &(*(::std::ptr::null::<itimerspec>())).it_interval as *const _ as usize },
4880        0usize,
4881        concat!(
4882            "Offset of field: ",
4883            stringify!(itimerspec),
4884            "::",
4885            stringify!(it_interval)
4886        )
4887    );
4888    assert_eq!(
4889        unsafe { &(*(::std::ptr::null::<itimerspec>())).it_value as *const _ as usize },
4890        16usize,
4891        concat!(
4892            "Offset of field: ",
4893            stringify!(itimerspec),
4894            "::",
4895            stringify!(it_value)
4896        )
4897    );
4898}
4899extern "C" {
4900    pub fn clock() -> clock_t;
4901}
4902extern "C" {
4903    pub fn time(__timer: *mut time_t) -> time_t;
4904}
4905extern "C" {
4906    pub fn difftime(__time1: time_t, __time0: time_t) -> f64;
4907}
4908extern "C" {
4909    pub fn mktime(__tp: *mut tm) -> time_t;
4910}
4911extern "C" {
4912    pub fn strftime(
4913        __s: *mut ::std::os::raw::c_char,
4914        __maxsize: usize,
4915        __format: *const ::std::os::raw::c_char,
4916        __tp: *const tm,
4917    ) -> usize;
4918}
4919extern "C" {
4920    pub fn strftime_l(
4921        __s: *mut ::std::os::raw::c_char,
4922        __maxsize: usize,
4923        __format: *const ::std::os::raw::c_char,
4924        __tp: *const tm,
4925        __loc: locale_t,
4926    ) -> usize;
4927}
4928extern "C" {
4929    pub fn gmtime(__timer: *const time_t) -> *mut tm;
4930}
4931extern "C" {
4932    pub fn localtime(__timer: *const time_t) -> *mut tm;
4933}
4934extern "C" {
4935    pub fn gmtime_r(__timer: *const time_t, __tp: *mut tm) -> *mut tm;
4936}
4937extern "C" {
4938    pub fn localtime_r(__timer: *const time_t, __tp: *mut tm) -> *mut tm;
4939}
4940extern "C" {
4941    pub fn asctime(__tp: *const tm) -> *mut ::std::os::raw::c_char;
4942}
4943extern "C" {
4944    pub fn ctime(__timer: *const time_t) -> *mut ::std::os::raw::c_char;
4945}
4946extern "C" {
4947    pub fn asctime_r(
4948        __tp: *const tm,
4949        __buf: *mut ::std::os::raw::c_char,
4950    ) -> *mut ::std::os::raw::c_char;
4951}
4952extern "C" {
4953    pub fn ctime_r(
4954        __timer: *const time_t,
4955        __buf: *mut ::std::os::raw::c_char,
4956    ) -> *mut ::std::os::raw::c_char;
4957}
4958extern "C" {
4959    pub static mut __tzname: [*mut ::std::os::raw::c_char; 2usize];
4960}
4961extern "C" {
4962    pub static mut __daylight: ::std::os::raw::c_int;
4963}
4964extern "C" {
4965    pub static mut __timezone: ::std::os::raw::c_long;
4966}
4967extern "C" {
4968    pub static mut tzname: [*mut ::std::os::raw::c_char; 2usize];
4969}
4970extern "C" {
4971    pub fn tzset();
4972}
4973extern "C" {
4974    pub static mut daylight: ::std::os::raw::c_int;
4975}
4976extern "C" {
4977    pub static mut timezone: ::std::os::raw::c_long;
4978}
4979extern "C" {
4980    pub fn stime(__when: *const time_t) -> ::std::os::raw::c_int;
4981}
4982extern "C" {
4983    pub fn timegm(__tp: *mut tm) -> time_t;
4984}
4985extern "C" {
4986    pub fn timelocal(__tp: *mut tm) -> time_t;
4987}
4988extern "C" {
4989    pub fn dysize(__year: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
4990}
4991extern "C" {
4992    pub fn nanosleep(
4993        __requested_time: *const timespec,
4994        __remaining: *mut timespec,
4995    ) -> ::std::os::raw::c_int;
4996}
4997extern "C" {
4998    pub fn clock_getres(__clock_id: clockid_t, __res: *mut timespec) -> ::std::os::raw::c_int;
4999}
5000extern "C" {
5001    pub fn clock_gettime(__clock_id: clockid_t, __tp: *mut timespec) -> ::std::os::raw::c_int;
5002}
5003extern "C" {
5004    pub fn clock_settime(__clock_id: clockid_t, __tp: *const timespec) -> ::std::os::raw::c_int;
5005}
5006extern "C" {
5007    pub fn clock_nanosleep(
5008        __clock_id: clockid_t,
5009        __flags: ::std::os::raw::c_int,
5010        __req: *const timespec,
5011        __rem: *mut timespec,
5012    ) -> ::std::os::raw::c_int;
5013}
5014extern "C" {
5015    pub fn clock_getcpuclockid(__pid: pid_t, __clock_id: *mut clockid_t) -> ::std::os::raw::c_int;
5016}
5017extern "C" {
5018    pub fn timer_create(
5019        __clock_id: clockid_t,
5020        __evp: *mut sigevent,
5021        __timerid: *mut timer_t,
5022    ) -> ::std::os::raw::c_int;
5023}
5024extern "C" {
5025    pub fn timer_delete(__timerid: timer_t) -> ::std::os::raw::c_int;
5026}
5027extern "C" {
5028    pub fn timer_settime(
5029        __timerid: timer_t,
5030        __flags: ::std::os::raw::c_int,
5031        __value: *const itimerspec,
5032        __ovalue: *mut itimerspec,
5033    ) -> ::std::os::raw::c_int;
5034}
5035extern "C" {
5036    pub fn timer_gettime(__timerid: timer_t, __value: *mut itimerspec) -> ::std::os::raw::c_int;
5037}
5038extern "C" {
5039    pub fn timer_getoverrun(__timerid: timer_t) -> ::std::os::raw::c_int;
5040}
5041extern "C" {
5042    pub fn timespec_get(
5043        __ts: *mut timespec,
5044        __base: ::std::os::raw::c_int,
5045    ) -> ::std::os::raw::c_int;
5046}
5047#[repr(C)]
5048#[derive(Debug, Copy, Clone)]
5049pub struct timezone {
5050    pub tz_minuteswest: ::std::os::raw::c_int,
5051    pub tz_dsttime: ::std::os::raw::c_int,
5052}
5053#[test]
5054fn bindgen_test_layout_timezone() {
5055    assert_eq!(
5056        ::std::mem::size_of::<timezone>(),
5057        8usize,
5058        concat!("Size of: ", stringify!(timezone))
5059    );
5060    assert_eq!(
5061        ::std::mem::align_of::<timezone>(),
5062        4usize,
5063        concat!("Alignment of ", stringify!(timezone))
5064    );
5065    assert_eq!(
5066        unsafe { &(*(::std::ptr::null::<timezone>())).tz_minuteswest as *const _ as usize },
5067        0usize,
5068        concat!(
5069            "Offset of field: ",
5070            stringify!(timezone),
5071            "::",
5072            stringify!(tz_minuteswest)
5073        )
5074    );
5075    assert_eq!(
5076        unsafe { &(*(::std::ptr::null::<timezone>())).tz_dsttime as *const _ as usize },
5077        4usize,
5078        concat!(
5079            "Offset of field: ",
5080            stringify!(timezone),
5081            "::",
5082            stringify!(tz_dsttime)
5083        )
5084    );
5085}
5086pub type __timezone_ptr_t = *mut timezone;
5087extern "C" {
5088    pub fn gettimeofday(__tv: *mut timeval, __tz: __timezone_ptr_t) -> ::std::os::raw::c_int;
5089}
5090extern "C" {
5091    pub fn settimeofday(__tv: *const timeval, __tz: *const timezone) -> ::std::os::raw::c_int;
5092}
5093extern "C" {
5094    pub fn adjtime(__delta: *const timeval, __olddelta: *mut timeval) -> ::std::os::raw::c_int;
5095}
5096pub const __itimer_which_ITIMER_REAL: __itimer_which = 0;
5097pub const __itimer_which_ITIMER_VIRTUAL: __itimer_which = 1;
5098pub const __itimer_which_ITIMER_PROF: __itimer_which = 2;
5099pub type __itimer_which = u32;
5100#[repr(C)]
5101#[derive(Debug, Copy, Clone)]
5102pub struct itimerval {
5103    pub it_interval: timeval,
5104    pub it_value: timeval,
5105}
5106#[test]
5107fn bindgen_test_layout_itimerval() {
5108    assert_eq!(
5109        ::std::mem::size_of::<itimerval>(),
5110        32usize,
5111        concat!("Size of: ", stringify!(itimerval))
5112    );
5113    assert_eq!(
5114        ::std::mem::align_of::<itimerval>(),
5115        8usize,
5116        concat!("Alignment of ", stringify!(itimerval))
5117    );
5118    assert_eq!(
5119        unsafe { &(*(::std::ptr::null::<itimerval>())).it_interval as *const _ as usize },
5120        0usize,
5121        concat!(
5122            "Offset of field: ",
5123            stringify!(itimerval),
5124            "::",
5125            stringify!(it_interval)
5126        )
5127    );
5128    assert_eq!(
5129        unsafe { &(*(::std::ptr::null::<itimerval>())).it_value as *const _ as usize },
5130        16usize,
5131        concat!(
5132            "Offset of field: ",
5133            stringify!(itimerval),
5134            "::",
5135            stringify!(it_value)
5136        )
5137    );
5138}
5139pub type __itimer_which_t = ::std::os::raw::c_int;
5140extern "C" {
5141    pub fn getitimer(__which: __itimer_which_t, __value: *mut itimerval) -> ::std::os::raw::c_int;
5142}
5143extern "C" {
5144    pub fn setitimer(
5145        __which: __itimer_which_t,
5146        __new: *const itimerval,
5147        __old: *mut itimerval,
5148    ) -> ::std::os::raw::c_int;
5149}
5150extern "C" {
5151    pub fn utimes(
5152        __file: *const ::std::os::raw::c_char,
5153        __tvp: *const timeval,
5154    ) -> ::std::os::raw::c_int;
5155}
5156extern "C" {
5157    pub fn lutimes(
5158        __file: *const ::std::os::raw::c_char,
5159        __tvp: *const timeval,
5160    ) -> ::std::os::raw::c_int;
5161}
5162extern "C" {
5163    pub fn futimes(__fd: ::std::os::raw::c_int, __tvp: *const timeval) -> ::std::os::raw::c_int;
5164}
5165#[repr(C)]
5166#[derive(Debug, Copy, Clone)]
5167pub struct stat {
5168    pub st_dev: __dev_t,
5169    pub st_ino: __ino_t,
5170    pub st_nlink: __nlink_t,
5171    pub st_mode: __mode_t,
5172    pub st_uid: __uid_t,
5173    pub st_gid: __gid_t,
5174    pub __pad0: ::std::os::raw::c_int,
5175    pub st_rdev: __dev_t,
5176    pub st_size: __off_t,
5177    pub st_blksize: __blksize_t,
5178    pub st_blocks: __blkcnt_t,
5179    pub st_atim: timespec,
5180    pub st_mtim: timespec,
5181    pub st_ctim: timespec,
5182    pub __glibc_reserved: [__syscall_slong_t; 3usize],
5183}
5184#[test]
5185fn bindgen_test_layout_stat() {
5186    assert_eq!(
5187        ::std::mem::size_of::<stat>(),
5188        144usize,
5189        concat!("Size of: ", stringify!(stat))
5190    );
5191    assert_eq!(
5192        ::std::mem::align_of::<stat>(),
5193        8usize,
5194        concat!("Alignment of ", stringify!(stat))
5195    );
5196    assert_eq!(
5197        unsafe { &(*(::std::ptr::null::<stat>())).st_dev as *const _ as usize },
5198        0usize,
5199        concat!(
5200            "Offset of field: ",
5201            stringify!(stat),
5202            "::",
5203            stringify!(st_dev)
5204        )
5205    );
5206    assert_eq!(
5207        unsafe { &(*(::std::ptr::null::<stat>())).st_ino as *const _ as usize },
5208        8usize,
5209        concat!(
5210            "Offset of field: ",
5211            stringify!(stat),
5212            "::",
5213            stringify!(st_ino)
5214        )
5215    );
5216    assert_eq!(
5217        unsafe { &(*(::std::ptr::null::<stat>())).st_nlink as *const _ as usize },
5218        16usize,
5219        concat!(
5220            "Offset of field: ",
5221            stringify!(stat),
5222            "::",
5223            stringify!(st_nlink)
5224        )
5225    );
5226    assert_eq!(
5227        unsafe { &(*(::std::ptr::null::<stat>())).st_mode as *const _ as usize },
5228        24usize,
5229        concat!(
5230            "Offset of field: ",
5231            stringify!(stat),
5232            "::",
5233            stringify!(st_mode)
5234        )
5235    );
5236    assert_eq!(
5237        unsafe { &(*(::std::ptr::null::<stat>())).st_uid as *const _ as usize },
5238        28usize,
5239        concat!(
5240            "Offset of field: ",
5241            stringify!(stat),
5242            "::",
5243            stringify!(st_uid)
5244        )
5245    );
5246    assert_eq!(
5247        unsafe { &(*(::std::ptr::null::<stat>())).st_gid as *const _ as usize },
5248        32usize,
5249        concat!(
5250            "Offset of field: ",
5251            stringify!(stat),
5252            "::",
5253            stringify!(st_gid)
5254        )
5255    );
5256    assert_eq!(
5257        unsafe { &(*(::std::ptr::null::<stat>())).__pad0 as *const _ as usize },
5258        36usize,
5259        concat!(
5260            "Offset of field: ",
5261            stringify!(stat),
5262            "::",
5263            stringify!(__pad0)
5264        )
5265    );
5266    assert_eq!(
5267        unsafe { &(*(::std::ptr::null::<stat>())).st_rdev as *const _ as usize },
5268        40usize,
5269        concat!(
5270            "Offset of field: ",
5271            stringify!(stat),
5272            "::",
5273            stringify!(st_rdev)
5274        )
5275    );
5276    assert_eq!(
5277        unsafe { &(*(::std::ptr::null::<stat>())).st_size as *const _ as usize },
5278        48usize,
5279        concat!(
5280            "Offset of field: ",
5281            stringify!(stat),
5282            "::",
5283            stringify!(st_size)
5284        )
5285    );
5286    assert_eq!(
5287        unsafe { &(*(::std::ptr::null::<stat>())).st_blksize as *const _ as usize },
5288        56usize,
5289        concat!(
5290            "Offset of field: ",
5291            stringify!(stat),
5292            "::",
5293            stringify!(st_blksize)
5294        )
5295    );
5296    assert_eq!(
5297        unsafe { &(*(::std::ptr::null::<stat>())).st_blocks as *const _ as usize },
5298        64usize,
5299        concat!(
5300            "Offset of field: ",
5301            stringify!(stat),
5302            "::",
5303            stringify!(st_blocks)
5304        )
5305    );
5306    assert_eq!(
5307        unsafe { &(*(::std::ptr::null::<stat>())).st_atim as *const _ as usize },
5308        72usize,
5309        concat!(
5310            "Offset of field: ",
5311            stringify!(stat),
5312            "::",
5313            stringify!(st_atim)
5314        )
5315    );
5316    assert_eq!(
5317        unsafe { &(*(::std::ptr::null::<stat>())).st_mtim as *const _ as usize },
5318        88usize,
5319        concat!(
5320            "Offset of field: ",
5321            stringify!(stat),
5322            "::",
5323            stringify!(st_mtim)
5324        )
5325    );
5326    assert_eq!(
5327        unsafe { &(*(::std::ptr::null::<stat>())).st_ctim as *const _ as usize },
5328        104usize,
5329        concat!(
5330            "Offset of field: ",
5331            stringify!(stat),
5332            "::",
5333            stringify!(st_ctim)
5334        )
5335    );
5336    assert_eq!(
5337        unsafe { &(*(::std::ptr::null::<stat>())).__glibc_reserved as *const _ as usize },
5338        120usize,
5339        concat!(
5340            "Offset of field: ",
5341            stringify!(stat),
5342            "::",
5343            stringify!(__glibc_reserved)
5344        )
5345    );
5346}
5347extern "C" {
5348    pub fn stat(__file: *const ::std::os::raw::c_char, __buf: *mut stat) -> ::std::os::raw::c_int;
5349}
5350extern "C" {
5351    pub fn fstat(__fd: ::std::os::raw::c_int, __buf: *mut stat) -> ::std::os::raw::c_int;
5352}
5353extern "C" {
5354    pub fn fstatat(
5355        __fd: ::std::os::raw::c_int,
5356        __file: *const ::std::os::raw::c_char,
5357        __buf: *mut stat,
5358        __flag: ::std::os::raw::c_int,
5359    ) -> ::std::os::raw::c_int;
5360}
5361extern "C" {
5362    pub fn lstat(__file: *const ::std::os::raw::c_char, __buf: *mut stat) -> ::std::os::raw::c_int;
5363}
5364extern "C" {
5365    pub fn chmod(__file: *const ::std::os::raw::c_char, __mode: __mode_t) -> ::std::os::raw::c_int;
5366}
5367extern "C" {
5368    pub fn lchmod(__file: *const ::std::os::raw::c_char, __mode: __mode_t)
5369        -> ::std::os::raw::c_int;
5370}
5371extern "C" {
5372    pub fn fchmod(__fd: ::std::os::raw::c_int, __mode: __mode_t) -> ::std::os::raw::c_int;
5373}
5374extern "C" {
5375    pub fn fchmodat(
5376        __fd: ::std::os::raw::c_int,
5377        __file: *const ::std::os::raw::c_char,
5378        __mode: __mode_t,
5379        __flag: ::std::os::raw::c_int,
5380    ) -> ::std::os::raw::c_int;
5381}
5382extern "C" {
5383    pub fn umask(__mask: __mode_t) -> __mode_t;
5384}
5385extern "C" {
5386    pub fn mkdir(__path: *const ::std::os::raw::c_char, __mode: __mode_t) -> ::std::os::raw::c_int;
5387}
5388extern "C" {
5389    pub fn mkdirat(
5390        __fd: ::std::os::raw::c_int,
5391        __path: *const ::std::os::raw::c_char,
5392        __mode: __mode_t,
5393    ) -> ::std::os::raw::c_int;
5394}
5395extern "C" {
5396    pub fn mknod(
5397        __path: *const ::std::os::raw::c_char,
5398        __mode: __mode_t,
5399        __dev: __dev_t,
5400    ) -> ::std::os::raw::c_int;
5401}
5402extern "C" {
5403    pub fn mknodat(
5404        __fd: ::std::os::raw::c_int,
5405        __path: *const ::std::os::raw::c_char,
5406        __mode: __mode_t,
5407        __dev: __dev_t,
5408    ) -> ::std::os::raw::c_int;
5409}
5410extern "C" {
5411    pub fn mkfifo(__path: *const ::std::os::raw::c_char, __mode: __mode_t)
5412        -> ::std::os::raw::c_int;
5413}
5414extern "C" {
5415    pub fn mkfifoat(
5416        __fd: ::std::os::raw::c_int,
5417        __path: *const ::std::os::raw::c_char,
5418        __mode: __mode_t,
5419    ) -> ::std::os::raw::c_int;
5420}
5421extern "C" {
5422    pub fn utimensat(
5423        __fd: ::std::os::raw::c_int,
5424        __path: *const ::std::os::raw::c_char,
5425        __times: *const timespec,
5426        __flags: ::std::os::raw::c_int,
5427    ) -> ::std::os::raw::c_int;
5428}
5429extern "C" {
5430    pub fn futimens(__fd: ::std::os::raw::c_int, __times: *const timespec)
5431        -> ::std::os::raw::c_int;
5432}
5433extern "C" {
5434    pub fn __fxstat(
5435        __ver: ::std::os::raw::c_int,
5436        __fildes: ::std::os::raw::c_int,
5437        __stat_buf: *mut stat,
5438    ) -> ::std::os::raw::c_int;
5439}
5440extern "C" {
5441    pub fn __xstat(
5442        __ver: ::std::os::raw::c_int,
5443        __filename: *const ::std::os::raw::c_char,
5444        __stat_buf: *mut stat,
5445    ) -> ::std::os::raw::c_int;
5446}
5447extern "C" {
5448    pub fn __lxstat(
5449        __ver: ::std::os::raw::c_int,
5450        __filename: *const ::std::os::raw::c_char,
5451        __stat_buf: *mut stat,
5452    ) -> ::std::os::raw::c_int;
5453}
5454extern "C" {
5455    pub fn __fxstatat(
5456        __ver: ::std::os::raw::c_int,
5457        __fildes: ::std::os::raw::c_int,
5458        __filename: *const ::std::os::raw::c_char,
5459        __stat_buf: *mut stat,
5460        __flag: ::std::os::raw::c_int,
5461    ) -> ::std::os::raw::c_int;
5462}
5463extern "C" {
5464    pub fn __xmknod(
5465        __ver: ::std::os::raw::c_int,
5466        __path: *const ::std::os::raw::c_char,
5467        __mode: __mode_t,
5468        __dev: *mut __dev_t,
5469    ) -> ::std::os::raw::c_int;
5470}
5471extern "C" {
5472    pub fn __xmknodat(
5473        __ver: ::std::os::raw::c_int,
5474        __fd: ::std::os::raw::c_int,
5475        __path: *const ::std::os::raw::c_char,
5476        __mode: __mode_t,
5477        __dev: *mut __dev_t,
5478    ) -> ::std::os::raw::c_int;
5479}
5480pub type useconds_t = __useconds_t;
5481pub type socklen_t = __socklen_t;
5482extern "C" {
5483    pub fn access(
5484        __name: *const ::std::os::raw::c_char,
5485        __type: ::std::os::raw::c_int,
5486    ) -> ::std::os::raw::c_int;
5487}
5488extern "C" {
5489    pub fn faccessat(
5490        __fd: ::std::os::raw::c_int,
5491        __file: *const ::std::os::raw::c_char,
5492        __type: ::std::os::raw::c_int,
5493        __flag: ::std::os::raw::c_int,
5494    ) -> ::std::os::raw::c_int;
5495}
5496extern "C" {
5497    pub fn lseek(
5498        __fd: ::std::os::raw::c_int,
5499        __offset: __off_t,
5500        __whence: ::std::os::raw::c_int,
5501    ) -> __off_t;
5502}
5503extern "C" {
5504    pub fn close(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
5505}
5506extern "C" {
5507    pub fn read(
5508        __fd: ::std::os::raw::c_int,
5509        __buf: *mut ::std::os::raw::c_void,
5510        __nbytes: usize,
5511    ) -> isize;
5512}
5513extern "C" {
5514    pub fn write(
5515        __fd: ::std::os::raw::c_int,
5516        __buf: *const ::std::os::raw::c_void,
5517        __n: usize,
5518    ) -> isize;
5519}
5520extern "C" {
5521    pub fn pread(
5522        __fd: ::std::os::raw::c_int,
5523        __buf: *mut ::std::os::raw::c_void,
5524        __nbytes: usize,
5525        __offset: __off_t,
5526    ) -> isize;
5527}
5528extern "C" {
5529    pub fn pwrite(
5530        __fd: ::std::os::raw::c_int,
5531        __buf: *const ::std::os::raw::c_void,
5532        __n: usize,
5533        __offset: __off_t,
5534    ) -> isize;
5535}
5536extern "C" {
5537    pub fn pipe(__pipedes: *mut ::std::os::raw::c_int) -> ::std::os::raw::c_int;
5538}
5539extern "C" {
5540    pub fn alarm(__seconds: ::std::os::raw::c_uint) -> ::std::os::raw::c_uint;
5541}
5542extern "C" {
5543    pub fn sleep(__seconds: ::std::os::raw::c_uint) -> ::std::os::raw::c_uint;
5544}
5545extern "C" {
5546    pub fn ualarm(__value: __useconds_t, __interval: __useconds_t) -> __useconds_t;
5547}
5548extern "C" {
5549    pub fn usleep(__useconds: __useconds_t) -> ::std::os::raw::c_int;
5550}
5551extern "C" {
5552    pub fn pause() -> ::std::os::raw::c_int;
5553}
5554extern "C" {
5555    pub fn chown(
5556        __file: *const ::std::os::raw::c_char,
5557        __owner: __uid_t,
5558        __group: __gid_t,
5559    ) -> ::std::os::raw::c_int;
5560}
5561extern "C" {
5562    pub fn fchown(
5563        __fd: ::std::os::raw::c_int,
5564        __owner: __uid_t,
5565        __group: __gid_t,
5566    ) -> ::std::os::raw::c_int;
5567}
5568extern "C" {
5569    pub fn lchown(
5570        __file: *const ::std::os::raw::c_char,
5571        __owner: __uid_t,
5572        __group: __gid_t,
5573    ) -> ::std::os::raw::c_int;
5574}
5575extern "C" {
5576    pub fn fchownat(
5577        __fd: ::std::os::raw::c_int,
5578        __file: *const ::std::os::raw::c_char,
5579        __owner: __uid_t,
5580        __group: __gid_t,
5581        __flag: ::std::os::raw::c_int,
5582    ) -> ::std::os::raw::c_int;
5583}
5584extern "C" {
5585    pub fn chdir(__path: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
5586}
5587extern "C" {
5588    pub fn fchdir(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
5589}
5590extern "C" {
5591    pub fn getcwd(__buf: *mut ::std::os::raw::c_char, __size: usize)
5592        -> *mut ::std::os::raw::c_char;
5593}
5594extern "C" {
5595    pub fn getwd(__buf: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
5596}
5597extern "C" {
5598    pub fn dup(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
5599}
5600extern "C" {
5601    pub fn dup2(__fd: ::std::os::raw::c_int, __fd2: ::std::os::raw::c_int)
5602        -> ::std::os::raw::c_int;
5603}
5604extern "C" {
5605    pub static mut __environ: *mut *mut ::std::os::raw::c_char;
5606}
5607extern "C" {
5608    pub fn execve(
5609        __path: *const ::std::os::raw::c_char,
5610        __argv: *const *mut ::std::os::raw::c_char,
5611        __envp: *const *mut ::std::os::raw::c_char,
5612    ) -> ::std::os::raw::c_int;
5613}
5614extern "C" {
5615    pub fn fexecve(
5616        __fd: ::std::os::raw::c_int,
5617        __argv: *const *mut ::std::os::raw::c_char,
5618        __envp: *const *mut ::std::os::raw::c_char,
5619    ) -> ::std::os::raw::c_int;
5620}
5621extern "C" {
5622    pub fn execv(
5623        __path: *const ::std::os::raw::c_char,
5624        __argv: *const *mut ::std::os::raw::c_char,
5625    ) -> ::std::os::raw::c_int;
5626}
5627extern "C" {
5628    pub fn execle(
5629        __path: *const ::std::os::raw::c_char,
5630        __arg: *const ::std::os::raw::c_char,
5631        ...
5632    ) -> ::std::os::raw::c_int;
5633}
5634extern "C" {
5635    pub fn execl(
5636        __path: *const ::std::os::raw::c_char,
5637        __arg: *const ::std::os::raw::c_char,
5638        ...
5639    ) -> ::std::os::raw::c_int;
5640}
5641extern "C" {
5642    pub fn execvp(
5643        __file: *const ::std::os::raw::c_char,
5644        __argv: *const *mut ::std::os::raw::c_char,
5645    ) -> ::std::os::raw::c_int;
5646}
5647extern "C" {
5648    pub fn execlp(
5649        __file: *const ::std::os::raw::c_char,
5650        __arg: *const ::std::os::raw::c_char,
5651        ...
5652    ) -> ::std::os::raw::c_int;
5653}
5654extern "C" {
5655    pub fn nice(__inc: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
5656}
5657extern "C" {
5658    pub fn _exit(__status: ::std::os::raw::c_int);
5659}
5660pub const _PC_LINK_MAX: _bindgen_ty_2 = 0;
5661pub const _PC_MAX_CANON: _bindgen_ty_2 = 1;
5662pub const _PC_MAX_INPUT: _bindgen_ty_2 = 2;
5663pub const _PC_NAME_MAX: _bindgen_ty_2 = 3;
5664pub const _PC_PATH_MAX: _bindgen_ty_2 = 4;
5665pub const _PC_PIPE_BUF: _bindgen_ty_2 = 5;
5666pub const _PC_CHOWN_RESTRICTED: _bindgen_ty_2 = 6;
5667pub const _PC_NO_TRUNC: _bindgen_ty_2 = 7;
5668pub const _PC_VDISABLE: _bindgen_ty_2 = 8;
5669pub const _PC_SYNC_IO: _bindgen_ty_2 = 9;
5670pub const _PC_ASYNC_IO: _bindgen_ty_2 = 10;
5671pub const _PC_PRIO_IO: _bindgen_ty_2 = 11;
5672pub const _PC_SOCK_MAXBUF: _bindgen_ty_2 = 12;
5673pub const _PC_FILESIZEBITS: _bindgen_ty_2 = 13;
5674pub const _PC_REC_INCR_XFER_SIZE: _bindgen_ty_2 = 14;
5675pub const _PC_REC_MAX_XFER_SIZE: _bindgen_ty_2 = 15;
5676pub const _PC_REC_MIN_XFER_SIZE: _bindgen_ty_2 = 16;
5677pub const _PC_REC_XFER_ALIGN: _bindgen_ty_2 = 17;
5678pub const _PC_ALLOC_SIZE_MIN: _bindgen_ty_2 = 18;
5679pub const _PC_SYMLINK_MAX: _bindgen_ty_2 = 19;
5680pub const _PC_2_SYMLINKS: _bindgen_ty_2 = 20;
5681pub type _bindgen_ty_2 = u32;
5682pub const _SC_ARG_MAX: _bindgen_ty_3 = 0;
5683pub const _SC_CHILD_MAX: _bindgen_ty_3 = 1;
5684pub const _SC_CLK_TCK: _bindgen_ty_3 = 2;
5685pub const _SC_NGROUPS_MAX: _bindgen_ty_3 = 3;
5686pub const _SC_OPEN_MAX: _bindgen_ty_3 = 4;
5687pub const _SC_STREAM_MAX: _bindgen_ty_3 = 5;
5688pub const _SC_TZNAME_MAX: _bindgen_ty_3 = 6;
5689pub const _SC_JOB_CONTROL: _bindgen_ty_3 = 7;
5690pub const _SC_SAVED_IDS: _bindgen_ty_3 = 8;
5691pub const _SC_REALTIME_SIGNALS: _bindgen_ty_3 = 9;
5692pub const _SC_PRIORITY_SCHEDULING: _bindgen_ty_3 = 10;
5693pub const _SC_TIMERS: _bindgen_ty_3 = 11;
5694pub const _SC_ASYNCHRONOUS_IO: _bindgen_ty_3 = 12;
5695pub const _SC_PRIORITIZED_IO: _bindgen_ty_3 = 13;
5696pub const _SC_SYNCHRONIZED_IO: _bindgen_ty_3 = 14;
5697pub const _SC_FSYNC: _bindgen_ty_3 = 15;
5698pub const _SC_MAPPED_FILES: _bindgen_ty_3 = 16;
5699pub const _SC_MEMLOCK: _bindgen_ty_3 = 17;
5700pub const _SC_MEMLOCK_RANGE: _bindgen_ty_3 = 18;
5701pub const _SC_MEMORY_PROTECTION: _bindgen_ty_3 = 19;
5702pub const _SC_MESSAGE_PASSING: _bindgen_ty_3 = 20;
5703pub const _SC_SEMAPHORES: _bindgen_ty_3 = 21;
5704pub const _SC_SHARED_MEMORY_OBJECTS: _bindgen_ty_3 = 22;
5705pub const _SC_AIO_LISTIO_MAX: _bindgen_ty_3 = 23;
5706pub const _SC_AIO_MAX: _bindgen_ty_3 = 24;
5707pub const _SC_AIO_PRIO_DELTA_MAX: _bindgen_ty_3 = 25;
5708pub const _SC_DELAYTIMER_MAX: _bindgen_ty_3 = 26;
5709pub const _SC_MQ_OPEN_MAX: _bindgen_ty_3 = 27;
5710pub const _SC_MQ_PRIO_MAX: _bindgen_ty_3 = 28;
5711pub const _SC_VERSION: _bindgen_ty_3 = 29;
5712pub const _SC_PAGESIZE: _bindgen_ty_3 = 30;
5713pub const _SC_RTSIG_MAX: _bindgen_ty_3 = 31;
5714pub const _SC_SEM_NSEMS_MAX: _bindgen_ty_3 = 32;
5715pub const _SC_SEM_VALUE_MAX: _bindgen_ty_3 = 33;
5716pub const _SC_SIGQUEUE_MAX: _bindgen_ty_3 = 34;
5717pub const _SC_TIMER_MAX: _bindgen_ty_3 = 35;
5718pub const _SC_BC_BASE_MAX: _bindgen_ty_3 = 36;
5719pub const _SC_BC_DIM_MAX: _bindgen_ty_3 = 37;
5720pub const _SC_BC_SCALE_MAX: _bindgen_ty_3 = 38;
5721pub const _SC_BC_STRING_MAX: _bindgen_ty_3 = 39;
5722pub const _SC_COLL_WEIGHTS_MAX: _bindgen_ty_3 = 40;
5723pub const _SC_EQUIV_CLASS_MAX: _bindgen_ty_3 = 41;
5724pub const _SC_EXPR_NEST_MAX: _bindgen_ty_3 = 42;
5725pub const _SC_LINE_MAX: _bindgen_ty_3 = 43;
5726pub const _SC_RE_DUP_MAX: _bindgen_ty_3 = 44;
5727pub const _SC_CHARCLASS_NAME_MAX: _bindgen_ty_3 = 45;
5728pub const _SC_2_VERSION: _bindgen_ty_3 = 46;
5729pub const _SC_2_C_BIND: _bindgen_ty_3 = 47;
5730pub const _SC_2_C_DEV: _bindgen_ty_3 = 48;
5731pub const _SC_2_FORT_DEV: _bindgen_ty_3 = 49;
5732pub const _SC_2_FORT_RUN: _bindgen_ty_3 = 50;
5733pub const _SC_2_SW_DEV: _bindgen_ty_3 = 51;
5734pub const _SC_2_LOCALEDEF: _bindgen_ty_3 = 52;
5735pub const _SC_PII: _bindgen_ty_3 = 53;
5736pub const _SC_PII_XTI: _bindgen_ty_3 = 54;
5737pub const _SC_PII_SOCKET: _bindgen_ty_3 = 55;
5738pub const _SC_PII_INTERNET: _bindgen_ty_3 = 56;
5739pub const _SC_PII_OSI: _bindgen_ty_3 = 57;
5740pub const _SC_POLL: _bindgen_ty_3 = 58;
5741pub const _SC_SELECT: _bindgen_ty_3 = 59;
5742pub const _SC_UIO_MAXIOV: _bindgen_ty_3 = 60;
5743pub const _SC_IOV_MAX: _bindgen_ty_3 = 60;
5744pub const _SC_PII_INTERNET_STREAM: _bindgen_ty_3 = 61;
5745pub const _SC_PII_INTERNET_DGRAM: _bindgen_ty_3 = 62;
5746pub const _SC_PII_OSI_COTS: _bindgen_ty_3 = 63;
5747pub const _SC_PII_OSI_CLTS: _bindgen_ty_3 = 64;
5748pub const _SC_PII_OSI_M: _bindgen_ty_3 = 65;
5749pub const _SC_T_IOV_MAX: _bindgen_ty_3 = 66;
5750pub const _SC_THREADS: _bindgen_ty_3 = 67;
5751pub const _SC_THREAD_SAFE_FUNCTIONS: _bindgen_ty_3 = 68;
5752pub const _SC_GETGR_R_SIZE_MAX: _bindgen_ty_3 = 69;
5753pub const _SC_GETPW_R_SIZE_MAX: _bindgen_ty_3 = 70;
5754pub const _SC_LOGIN_NAME_MAX: _bindgen_ty_3 = 71;
5755pub const _SC_TTY_NAME_MAX: _bindgen_ty_3 = 72;
5756pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: _bindgen_ty_3 = 73;
5757pub const _SC_THREAD_KEYS_MAX: _bindgen_ty_3 = 74;
5758pub const _SC_THREAD_STACK_MIN: _bindgen_ty_3 = 75;
5759pub const _SC_THREAD_THREADS_MAX: _bindgen_ty_3 = 76;
5760pub const _SC_THREAD_ATTR_STACKADDR: _bindgen_ty_3 = 77;
5761pub const _SC_THREAD_ATTR_STACKSIZE: _bindgen_ty_3 = 78;
5762pub const _SC_THREAD_PRIORITY_SCHEDULING: _bindgen_ty_3 = 79;
5763pub const _SC_THREAD_PRIO_INHERIT: _bindgen_ty_3 = 80;
5764pub const _SC_THREAD_PRIO_PROTECT: _bindgen_ty_3 = 81;
5765pub const _SC_THREAD_PROCESS_SHARED: _bindgen_ty_3 = 82;
5766pub const _SC_NPROCESSORS_CONF: _bindgen_ty_3 = 83;
5767pub const _SC_NPROCESSORS_ONLN: _bindgen_ty_3 = 84;
5768pub const _SC_PHYS_PAGES: _bindgen_ty_3 = 85;
5769pub const _SC_AVPHYS_PAGES: _bindgen_ty_3 = 86;
5770pub const _SC_ATEXIT_MAX: _bindgen_ty_3 = 87;
5771pub const _SC_PASS_MAX: _bindgen_ty_3 = 88;
5772pub const _SC_XOPEN_VERSION: _bindgen_ty_3 = 89;
5773pub const _SC_XOPEN_XCU_VERSION: _bindgen_ty_3 = 90;
5774pub const _SC_XOPEN_UNIX: _bindgen_ty_3 = 91;
5775pub const _SC_XOPEN_CRYPT: _bindgen_ty_3 = 92;
5776pub const _SC_XOPEN_ENH_I18N: _bindgen_ty_3 = 93;
5777pub const _SC_XOPEN_SHM: _bindgen_ty_3 = 94;
5778pub const _SC_2_CHAR_TERM: _bindgen_ty_3 = 95;
5779pub const _SC_2_C_VERSION: _bindgen_ty_3 = 96;
5780pub const _SC_2_UPE: _bindgen_ty_3 = 97;
5781pub const _SC_XOPEN_XPG2: _bindgen_ty_3 = 98;
5782pub const _SC_XOPEN_XPG3: _bindgen_ty_3 = 99;
5783pub const _SC_XOPEN_XPG4: _bindgen_ty_3 = 100;
5784pub const _SC_CHAR_BIT: _bindgen_ty_3 = 101;
5785pub const _SC_CHAR_MAX: _bindgen_ty_3 = 102;
5786pub const _SC_CHAR_MIN: _bindgen_ty_3 = 103;
5787pub const _SC_INT_MAX: _bindgen_ty_3 = 104;
5788pub const _SC_INT_MIN: _bindgen_ty_3 = 105;
5789pub const _SC_LONG_BIT: _bindgen_ty_3 = 106;
5790pub const _SC_WORD_BIT: _bindgen_ty_3 = 107;
5791pub const _SC_MB_LEN_MAX: _bindgen_ty_3 = 108;
5792pub const _SC_NZERO: _bindgen_ty_3 = 109;
5793pub const _SC_SSIZE_MAX: _bindgen_ty_3 = 110;
5794pub const _SC_SCHAR_MAX: _bindgen_ty_3 = 111;
5795pub const _SC_SCHAR_MIN: _bindgen_ty_3 = 112;
5796pub const _SC_SHRT_MAX: _bindgen_ty_3 = 113;
5797pub const _SC_SHRT_MIN: _bindgen_ty_3 = 114;
5798pub const _SC_UCHAR_MAX: _bindgen_ty_3 = 115;
5799pub const _SC_UINT_MAX: _bindgen_ty_3 = 116;
5800pub const _SC_ULONG_MAX: _bindgen_ty_3 = 117;
5801pub const _SC_USHRT_MAX: _bindgen_ty_3 = 118;
5802pub const _SC_NL_ARGMAX: _bindgen_ty_3 = 119;
5803pub const _SC_NL_LANGMAX: _bindgen_ty_3 = 120;
5804pub const _SC_NL_MSGMAX: _bindgen_ty_3 = 121;
5805pub const _SC_NL_NMAX: _bindgen_ty_3 = 122;
5806pub const _SC_NL_SETMAX: _bindgen_ty_3 = 123;
5807pub const _SC_NL_TEXTMAX: _bindgen_ty_3 = 124;
5808pub const _SC_XBS5_ILP32_OFF32: _bindgen_ty_3 = 125;
5809pub const _SC_XBS5_ILP32_OFFBIG: _bindgen_ty_3 = 126;
5810pub const _SC_XBS5_LP64_OFF64: _bindgen_ty_3 = 127;
5811pub const _SC_XBS5_LPBIG_OFFBIG: _bindgen_ty_3 = 128;
5812pub const _SC_XOPEN_LEGACY: _bindgen_ty_3 = 129;
5813pub const _SC_XOPEN_REALTIME: _bindgen_ty_3 = 130;
5814pub const _SC_XOPEN_REALTIME_THREADS: _bindgen_ty_3 = 131;
5815pub const _SC_ADVISORY_INFO: _bindgen_ty_3 = 132;
5816pub const _SC_BARRIERS: _bindgen_ty_3 = 133;
5817pub const _SC_BASE: _bindgen_ty_3 = 134;
5818pub const _SC_C_LANG_SUPPORT: _bindgen_ty_3 = 135;
5819pub const _SC_C_LANG_SUPPORT_R: _bindgen_ty_3 = 136;
5820pub const _SC_CLOCK_SELECTION: _bindgen_ty_3 = 137;
5821pub const _SC_CPUTIME: _bindgen_ty_3 = 138;
5822pub const _SC_THREAD_CPUTIME: _bindgen_ty_3 = 139;
5823pub const _SC_DEVICE_IO: _bindgen_ty_3 = 140;
5824pub const _SC_DEVICE_SPECIFIC: _bindgen_ty_3 = 141;
5825pub const _SC_DEVICE_SPECIFIC_R: _bindgen_ty_3 = 142;
5826pub const _SC_FD_MGMT: _bindgen_ty_3 = 143;
5827pub const _SC_FIFO: _bindgen_ty_3 = 144;
5828pub const _SC_PIPE: _bindgen_ty_3 = 145;
5829pub const _SC_FILE_ATTRIBUTES: _bindgen_ty_3 = 146;
5830pub const _SC_FILE_LOCKING: _bindgen_ty_3 = 147;
5831pub const _SC_FILE_SYSTEM: _bindgen_ty_3 = 148;
5832pub const _SC_MONOTONIC_CLOCK: _bindgen_ty_3 = 149;
5833pub const _SC_MULTI_PROCESS: _bindgen_ty_3 = 150;
5834pub const _SC_SINGLE_PROCESS: _bindgen_ty_3 = 151;
5835pub const _SC_NETWORKING: _bindgen_ty_3 = 152;
5836pub const _SC_READER_WRITER_LOCKS: _bindgen_ty_3 = 153;
5837pub const _SC_SPIN_LOCKS: _bindgen_ty_3 = 154;
5838pub const _SC_REGEXP: _bindgen_ty_3 = 155;
5839pub const _SC_REGEX_VERSION: _bindgen_ty_3 = 156;
5840pub const _SC_SHELL: _bindgen_ty_3 = 157;
5841pub const _SC_SIGNALS: _bindgen_ty_3 = 158;
5842pub const _SC_SPAWN: _bindgen_ty_3 = 159;
5843pub const _SC_SPORADIC_SERVER: _bindgen_ty_3 = 160;
5844pub const _SC_THREAD_SPORADIC_SERVER: _bindgen_ty_3 = 161;
5845pub const _SC_SYSTEM_DATABASE: _bindgen_ty_3 = 162;
5846pub const _SC_SYSTEM_DATABASE_R: _bindgen_ty_3 = 163;
5847pub const _SC_TIMEOUTS: _bindgen_ty_3 = 164;
5848pub const _SC_TYPED_MEMORY_OBJECTS: _bindgen_ty_3 = 165;
5849pub const _SC_USER_GROUPS: _bindgen_ty_3 = 166;
5850pub const _SC_USER_GROUPS_R: _bindgen_ty_3 = 167;
5851pub const _SC_2_PBS: _bindgen_ty_3 = 168;
5852pub const _SC_2_PBS_ACCOUNTING: _bindgen_ty_3 = 169;
5853pub const _SC_2_PBS_LOCATE: _bindgen_ty_3 = 170;
5854pub const _SC_2_PBS_MESSAGE: _bindgen_ty_3 = 171;
5855pub const _SC_2_PBS_TRACK: _bindgen_ty_3 = 172;
5856pub const _SC_SYMLOOP_MAX: _bindgen_ty_3 = 173;
5857pub const _SC_STREAMS: _bindgen_ty_3 = 174;
5858pub const _SC_2_PBS_CHECKPOINT: _bindgen_ty_3 = 175;
5859pub const _SC_V6_ILP32_OFF32: _bindgen_ty_3 = 176;
5860pub const _SC_V6_ILP32_OFFBIG: _bindgen_ty_3 = 177;
5861pub const _SC_V6_LP64_OFF64: _bindgen_ty_3 = 178;
5862pub const _SC_V6_LPBIG_OFFBIG: _bindgen_ty_3 = 179;
5863pub const _SC_HOST_NAME_MAX: _bindgen_ty_3 = 180;
5864pub const _SC_TRACE: _bindgen_ty_3 = 181;
5865pub const _SC_TRACE_EVENT_FILTER: _bindgen_ty_3 = 182;
5866pub const _SC_TRACE_INHERIT: _bindgen_ty_3 = 183;
5867pub const _SC_TRACE_LOG: _bindgen_ty_3 = 184;
5868pub const _SC_LEVEL1_ICACHE_SIZE: _bindgen_ty_3 = 185;
5869pub const _SC_LEVEL1_ICACHE_ASSOC: _bindgen_ty_3 = 186;
5870pub const _SC_LEVEL1_ICACHE_LINESIZE: _bindgen_ty_3 = 187;
5871pub const _SC_LEVEL1_DCACHE_SIZE: _bindgen_ty_3 = 188;
5872pub const _SC_LEVEL1_DCACHE_ASSOC: _bindgen_ty_3 = 189;
5873pub const _SC_LEVEL1_DCACHE_LINESIZE: _bindgen_ty_3 = 190;
5874pub const _SC_LEVEL2_CACHE_SIZE: _bindgen_ty_3 = 191;
5875pub const _SC_LEVEL2_CACHE_ASSOC: _bindgen_ty_3 = 192;
5876pub const _SC_LEVEL2_CACHE_LINESIZE: _bindgen_ty_3 = 193;
5877pub const _SC_LEVEL3_CACHE_SIZE: _bindgen_ty_3 = 194;
5878pub const _SC_LEVEL3_CACHE_ASSOC: _bindgen_ty_3 = 195;
5879pub const _SC_LEVEL3_CACHE_LINESIZE: _bindgen_ty_3 = 196;
5880pub const _SC_LEVEL4_CACHE_SIZE: _bindgen_ty_3 = 197;
5881pub const _SC_LEVEL4_CACHE_ASSOC: _bindgen_ty_3 = 198;
5882pub const _SC_LEVEL4_CACHE_LINESIZE: _bindgen_ty_3 = 199;
5883pub const _SC_IPV6: _bindgen_ty_3 = 235;
5884pub const _SC_RAW_SOCKETS: _bindgen_ty_3 = 236;
5885pub const _SC_V7_ILP32_OFF32: _bindgen_ty_3 = 237;
5886pub const _SC_V7_ILP32_OFFBIG: _bindgen_ty_3 = 238;
5887pub const _SC_V7_LP64_OFF64: _bindgen_ty_3 = 239;
5888pub const _SC_V7_LPBIG_OFFBIG: _bindgen_ty_3 = 240;
5889pub const _SC_SS_REPL_MAX: _bindgen_ty_3 = 241;
5890pub const _SC_TRACE_EVENT_NAME_MAX: _bindgen_ty_3 = 242;
5891pub const _SC_TRACE_NAME_MAX: _bindgen_ty_3 = 243;
5892pub const _SC_TRACE_SYS_MAX: _bindgen_ty_3 = 244;
5893pub const _SC_TRACE_USER_EVENT_MAX: _bindgen_ty_3 = 245;
5894pub const _SC_XOPEN_STREAMS: _bindgen_ty_3 = 246;
5895pub const _SC_THREAD_ROBUST_PRIO_INHERIT: _bindgen_ty_3 = 247;
5896pub const _SC_THREAD_ROBUST_PRIO_PROTECT: _bindgen_ty_3 = 248;
5897pub type _bindgen_ty_3 = u32;
5898pub const _CS_PATH: _bindgen_ty_4 = 0;
5899pub const _CS_V6_WIDTH_RESTRICTED_ENVS: _bindgen_ty_4 = 1;
5900pub const _CS_GNU_LIBC_VERSION: _bindgen_ty_4 = 2;
5901pub const _CS_GNU_LIBPTHREAD_VERSION: _bindgen_ty_4 = 3;
5902pub const _CS_V5_WIDTH_RESTRICTED_ENVS: _bindgen_ty_4 = 4;
5903pub const _CS_V7_WIDTH_RESTRICTED_ENVS: _bindgen_ty_4 = 5;
5904pub const _CS_LFS_CFLAGS: _bindgen_ty_4 = 1000;
5905pub const _CS_LFS_LDFLAGS: _bindgen_ty_4 = 1001;
5906pub const _CS_LFS_LIBS: _bindgen_ty_4 = 1002;
5907pub const _CS_LFS_LINTFLAGS: _bindgen_ty_4 = 1003;
5908pub const _CS_LFS64_CFLAGS: _bindgen_ty_4 = 1004;
5909pub const _CS_LFS64_LDFLAGS: _bindgen_ty_4 = 1005;
5910pub const _CS_LFS64_LIBS: _bindgen_ty_4 = 1006;
5911pub const _CS_LFS64_LINTFLAGS: _bindgen_ty_4 = 1007;
5912pub const _CS_XBS5_ILP32_OFF32_CFLAGS: _bindgen_ty_4 = 1100;
5913pub const _CS_XBS5_ILP32_OFF32_LDFLAGS: _bindgen_ty_4 = 1101;
5914pub const _CS_XBS5_ILP32_OFF32_LIBS: _bindgen_ty_4 = 1102;
5915pub const _CS_XBS5_ILP32_OFF32_LINTFLAGS: _bindgen_ty_4 = 1103;
5916pub const _CS_XBS5_ILP32_OFFBIG_CFLAGS: _bindgen_ty_4 = 1104;
5917pub const _CS_XBS5_ILP32_OFFBIG_LDFLAGS: _bindgen_ty_4 = 1105;
5918pub const _CS_XBS5_ILP32_OFFBIG_LIBS: _bindgen_ty_4 = 1106;
5919pub const _CS_XBS5_ILP32_OFFBIG_LINTFLAGS: _bindgen_ty_4 = 1107;
5920pub const _CS_XBS5_LP64_OFF64_CFLAGS: _bindgen_ty_4 = 1108;
5921pub const _CS_XBS5_LP64_OFF64_LDFLAGS: _bindgen_ty_4 = 1109;
5922pub const _CS_XBS5_LP64_OFF64_LIBS: _bindgen_ty_4 = 1110;
5923pub const _CS_XBS5_LP64_OFF64_LINTFLAGS: _bindgen_ty_4 = 1111;
5924pub const _CS_XBS5_LPBIG_OFFBIG_CFLAGS: _bindgen_ty_4 = 1112;
5925pub const _CS_XBS5_LPBIG_OFFBIG_LDFLAGS: _bindgen_ty_4 = 1113;
5926pub const _CS_XBS5_LPBIG_OFFBIG_LIBS: _bindgen_ty_4 = 1114;
5927pub const _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS: _bindgen_ty_4 = 1115;
5928pub const _CS_POSIX_V6_ILP32_OFF32_CFLAGS: _bindgen_ty_4 = 1116;
5929pub const _CS_POSIX_V6_ILP32_OFF32_LDFLAGS: _bindgen_ty_4 = 1117;
5930pub const _CS_POSIX_V6_ILP32_OFF32_LIBS: _bindgen_ty_4 = 1118;
5931pub const _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS: _bindgen_ty_4 = 1119;
5932pub const _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS: _bindgen_ty_4 = 1120;
5933pub const _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS: _bindgen_ty_4 = 1121;
5934pub const _CS_POSIX_V6_ILP32_OFFBIG_LIBS: _bindgen_ty_4 = 1122;
5935pub const _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS: _bindgen_ty_4 = 1123;
5936pub const _CS_POSIX_V6_LP64_OFF64_CFLAGS: _bindgen_ty_4 = 1124;
5937pub const _CS_POSIX_V6_LP64_OFF64_LDFLAGS: _bindgen_ty_4 = 1125;
5938pub const _CS_POSIX_V6_LP64_OFF64_LIBS: _bindgen_ty_4 = 1126;
5939pub const _CS_POSIX_V6_LP64_OFF64_LINTFLAGS: _bindgen_ty_4 = 1127;
5940pub const _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS: _bindgen_ty_4 = 1128;
5941pub const _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS: _bindgen_ty_4 = 1129;
5942pub const _CS_POSIX_V6_LPBIG_OFFBIG_LIBS: _bindgen_ty_4 = 1130;
5943pub const _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS: _bindgen_ty_4 = 1131;
5944pub const _CS_POSIX_V7_ILP32_OFF32_CFLAGS: _bindgen_ty_4 = 1132;
5945pub const _CS_POSIX_V7_ILP32_OFF32_LDFLAGS: _bindgen_ty_4 = 1133;
5946pub const _CS_POSIX_V7_ILP32_OFF32_LIBS: _bindgen_ty_4 = 1134;
5947pub const _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS: _bindgen_ty_4 = 1135;
5948pub const _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS: _bindgen_ty_4 = 1136;
5949pub const _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS: _bindgen_ty_4 = 1137;
5950pub const _CS_POSIX_V7_ILP32_OFFBIG_LIBS: _bindgen_ty_4 = 1138;
5951pub const _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS: _bindgen_ty_4 = 1139;
5952pub const _CS_POSIX_V7_LP64_OFF64_CFLAGS: _bindgen_ty_4 = 1140;
5953pub const _CS_POSIX_V7_LP64_OFF64_LDFLAGS: _bindgen_ty_4 = 1141;
5954pub const _CS_POSIX_V7_LP64_OFF64_LIBS: _bindgen_ty_4 = 1142;
5955pub const _CS_POSIX_V7_LP64_OFF64_LINTFLAGS: _bindgen_ty_4 = 1143;
5956pub const _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS: _bindgen_ty_4 = 1144;
5957pub const _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS: _bindgen_ty_4 = 1145;
5958pub const _CS_POSIX_V7_LPBIG_OFFBIG_LIBS: _bindgen_ty_4 = 1146;
5959pub const _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS: _bindgen_ty_4 = 1147;
5960pub const _CS_V6_ENV: _bindgen_ty_4 = 1148;
5961pub const _CS_V7_ENV: _bindgen_ty_4 = 1149;
5962pub type _bindgen_ty_4 = u32;
5963extern "C" {
5964    pub fn pathconf(
5965        __path: *const ::std::os::raw::c_char,
5966        __name: ::std::os::raw::c_int,
5967    ) -> ::std::os::raw::c_long;
5968}
5969extern "C" {
5970    pub fn fpathconf(
5971        __fd: ::std::os::raw::c_int,
5972        __name: ::std::os::raw::c_int,
5973    ) -> ::std::os::raw::c_long;
5974}
5975extern "C" {
5976    pub fn sysconf(__name: ::std::os::raw::c_int) -> ::std::os::raw::c_long;
5977}
5978extern "C" {
5979    pub fn confstr(
5980        __name: ::std::os::raw::c_int,
5981        __buf: *mut ::std::os::raw::c_char,
5982        __len: usize,
5983    ) -> usize;
5984}
5985extern "C" {
5986    pub fn getpid() -> __pid_t;
5987}
5988extern "C" {
5989    pub fn getppid() -> __pid_t;
5990}
5991extern "C" {
5992    pub fn getpgrp() -> __pid_t;
5993}
5994extern "C" {
5995    pub fn __getpgid(__pid: __pid_t) -> __pid_t;
5996}
5997extern "C" {
5998    pub fn getpgid(__pid: __pid_t) -> __pid_t;
5999}
6000extern "C" {
6001    pub fn setpgid(__pid: __pid_t, __pgid: __pid_t) -> ::std::os::raw::c_int;
6002}
6003extern "C" {
6004    pub fn setpgrp() -> ::std::os::raw::c_int;
6005}
6006extern "C" {
6007    pub fn setsid() -> __pid_t;
6008}
6009extern "C" {
6010    pub fn getsid(__pid: __pid_t) -> __pid_t;
6011}
6012extern "C" {
6013    pub fn getuid() -> __uid_t;
6014}
6015extern "C" {
6016    pub fn geteuid() -> __uid_t;
6017}
6018extern "C" {
6019    pub fn getgid() -> __gid_t;
6020}
6021extern "C" {
6022    pub fn getegid() -> __gid_t;
6023}
6024extern "C" {
6025    pub fn getgroups(__size: ::std::os::raw::c_int, __list: *mut __gid_t) -> ::std::os::raw::c_int;
6026}
6027extern "C" {
6028    pub fn setuid(__uid: __uid_t) -> ::std::os::raw::c_int;
6029}
6030extern "C" {
6031    pub fn setreuid(__ruid: __uid_t, __euid: __uid_t) -> ::std::os::raw::c_int;
6032}
6033extern "C" {
6034    pub fn seteuid(__uid: __uid_t) -> ::std::os::raw::c_int;
6035}
6036extern "C" {
6037    pub fn setgid(__gid: __gid_t) -> ::std::os::raw::c_int;
6038}
6039extern "C" {
6040    pub fn setregid(__rgid: __gid_t, __egid: __gid_t) -> ::std::os::raw::c_int;
6041}
6042extern "C" {
6043    pub fn setegid(__gid: __gid_t) -> ::std::os::raw::c_int;
6044}
6045extern "C" {
6046    pub fn fork() -> __pid_t;
6047}
6048extern "C" {
6049    pub fn vfork() -> ::std::os::raw::c_int;
6050}
6051extern "C" {
6052    pub fn ttyname(__fd: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char;
6053}
6054extern "C" {
6055    pub fn ttyname_r(
6056        __fd: ::std::os::raw::c_int,
6057        __buf: *mut ::std::os::raw::c_char,
6058        __buflen: usize,
6059    ) -> ::std::os::raw::c_int;
6060}
6061extern "C" {
6062    pub fn isatty(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
6063}
6064extern "C" {
6065    pub fn ttyslot() -> ::std::os::raw::c_int;
6066}
6067extern "C" {
6068    pub fn link(
6069        __from: *const ::std::os::raw::c_char,
6070        __to: *const ::std::os::raw::c_char,
6071    ) -> ::std::os::raw::c_int;
6072}
6073extern "C" {
6074    pub fn linkat(
6075        __fromfd: ::std::os::raw::c_int,
6076        __from: *const ::std::os::raw::c_char,
6077        __tofd: ::std::os::raw::c_int,
6078        __to: *const ::std::os::raw::c_char,
6079        __flags: ::std::os::raw::c_int,
6080    ) -> ::std::os::raw::c_int;
6081}
6082extern "C" {
6083    pub fn symlink(
6084        __from: *const ::std::os::raw::c_char,
6085        __to: *const ::std::os::raw::c_char,
6086    ) -> ::std::os::raw::c_int;
6087}
6088extern "C" {
6089    pub fn readlink(
6090        __path: *const ::std::os::raw::c_char,
6091        __buf: *mut ::std::os::raw::c_char,
6092        __len: usize,
6093    ) -> isize;
6094}
6095extern "C" {
6096    pub fn symlinkat(
6097        __from: *const ::std::os::raw::c_char,
6098        __tofd: ::std::os::raw::c_int,
6099        __to: *const ::std::os::raw::c_char,
6100    ) -> ::std::os::raw::c_int;
6101}
6102extern "C" {
6103    pub fn readlinkat(
6104        __fd: ::std::os::raw::c_int,
6105        __path: *const ::std::os::raw::c_char,
6106        __buf: *mut ::std::os::raw::c_char,
6107        __len: usize,
6108    ) -> isize;
6109}
6110extern "C" {
6111    pub fn unlink(__name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
6112}
6113extern "C" {
6114    pub fn unlinkat(
6115        __fd: ::std::os::raw::c_int,
6116        __name: *const ::std::os::raw::c_char,
6117        __flag: ::std::os::raw::c_int,
6118    ) -> ::std::os::raw::c_int;
6119}
6120extern "C" {
6121    pub fn rmdir(__path: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
6122}
6123extern "C" {
6124    pub fn tcgetpgrp(__fd: ::std::os::raw::c_int) -> __pid_t;
6125}
6126extern "C" {
6127    pub fn tcsetpgrp(__fd: ::std::os::raw::c_int, __pgrp_id: __pid_t) -> ::std::os::raw::c_int;
6128}
6129extern "C" {
6130    pub fn getlogin() -> *mut ::std::os::raw::c_char;
6131}
6132extern "C" {
6133    pub fn getlogin_r(
6134        __name: *mut ::std::os::raw::c_char,
6135        __name_len: usize,
6136    ) -> ::std::os::raw::c_int;
6137}
6138extern "C" {
6139    pub fn setlogin(__name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
6140}
6141extern "C" {
6142    pub static mut optarg: *mut ::std::os::raw::c_char;
6143}
6144extern "C" {
6145    pub static mut optind: ::std::os::raw::c_int;
6146}
6147extern "C" {
6148    pub static mut opterr: ::std::os::raw::c_int;
6149}
6150extern "C" {
6151    pub static mut optopt: ::std::os::raw::c_int;
6152}
6153extern "C" {
6154    pub fn getopt(
6155        ___argc: ::std::os::raw::c_int,
6156        ___argv: *const *mut ::std::os::raw::c_char,
6157        __shortopts: *const ::std::os::raw::c_char,
6158    ) -> ::std::os::raw::c_int;
6159}
6160extern "C" {
6161    pub fn gethostname(__name: *mut ::std::os::raw::c_char, __len: usize) -> ::std::os::raw::c_int;
6162}
6163extern "C" {
6164    pub fn sethostname(
6165        __name: *const ::std::os::raw::c_char,
6166        __len: usize,
6167    ) -> ::std::os::raw::c_int;
6168}
6169extern "C" {
6170    pub fn sethostid(__id: ::std::os::raw::c_long) -> ::std::os::raw::c_int;
6171}
6172extern "C" {
6173    pub fn getdomainname(
6174        __name: *mut ::std::os::raw::c_char,
6175        __len: usize,
6176    ) -> ::std::os::raw::c_int;
6177}
6178extern "C" {
6179    pub fn setdomainname(
6180        __name: *const ::std::os::raw::c_char,
6181        __len: usize,
6182    ) -> ::std::os::raw::c_int;
6183}
6184extern "C" {
6185    pub fn vhangup() -> ::std::os::raw::c_int;
6186}
6187extern "C" {
6188    pub fn revoke(__file: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
6189}
6190extern "C" {
6191    pub fn profil(
6192        __sample_buffer: *mut ::std::os::raw::c_ushort,
6193        __size: usize,
6194        __offset: usize,
6195        __scale: ::std::os::raw::c_uint,
6196    ) -> ::std::os::raw::c_int;
6197}
6198extern "C" {
6199    pub fn acct(__name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
6200}
6201extern "C" {
6202    pub fn getusershell() -> *mut ::std::os::raw::c_char;
6203}
6204extern "C" {
6205    pub fn endusershell();
6206}
6207extern "C" {
6208    pub fn setusershell();
6209}
6210extern "C" {
6211    pub fn daemon(
6212        __nochdir: ::std::os::raw::c_int,
6213        __noclose: ::std::os::raw::c_int,
6214    ) -> ::std::os::raw::c_int;
6215}
6216extern "C" {
6217    pub fn chroot(__path: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
6218}
6219extern "C" {
6220    pub fn getpass(__prompt: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
6221}
6222extern "C" {
6223    pub fn fsync(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
6224}
6225extern "C" {
6226    pub fn gethostid() -> ::std::os::raw::c_long;
6227}
6228extern "C" {
6229    pub fn sync();
6230}
6231extern "C" {
6232    pub fn getpagesize() -> ::std::os::raw::c_int;
6233}
6234extern "C" {
6235    pub fn getdtablesize() -> ::std::os::raw::c_int;
6236}
6237extern "C" {
6238    pub fn truncate(
6239        __file: *const ::std::os::raw::c_char,
6240        __length: __off_t,
6241    ) -> ::std::os::raw::c_int;
6242}
6243extern "C" {
6244    pub fn ftruncate(__fd: ::std::os::raw::c_int, __length: __off_t) -> ::std::os::raw::c_int;
6245}
6246extern "C" {
6247    pub fn brk(__addr: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int;
6248}
6249extern "C" {
6250    pub fn sbrk(__delta: isize) -> *mut ::std::os::raw::c_void;
6251}
6252extern "C" {
6253    pub fn syscall(__sysno: ::std::os::raw::c_long, ...) -> ::std::os::raw::c_long;
6254}
6255extern "C" {
6256    pub fn lockf(
6257        __fd: ::std::os::raw::c_int,
6258        __cmd: ::std::os::raw::c_int,
6259        __len: __off_t,
6260    ) -> ::std::os::raw::c_int;
6261}
6262extern "C" {
6263    pub fn fdatasync(__fildes: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
6264}
6265extern "C" {
6266    pub fn getentropy(
6267        __buffer: *mut ::std::os::raw::c_void,
6268        __length: usize,
6269    ) -> ::std::os::raw::c_int;
6270}
6271#[repr(C)]
6272#[derive(Copy, Clone)]
6273pub struct dirent {
6274    pub d_ino: __ino_t,
6275    pub d_off: __off_t,
6276    pub d_reclen: ::std::os::raw::c_ushort,
6277    pub d_type: ::std::os::raw::c_uchar,
6278    pub d_name: [::std::os::raw::c_char; 256usize],
6279}
6280#[test]
6281fn bindgen_test_layout_dirent() {
6282    assert_eq!(
6283        ::std::mem::size_of::<dirent>(),
6284        280usize,
6285        concat!("Size of: ", stringify!(dirent))
6286    );
6287    assert_eq!(
6288        ::std::mem::align_of::<dirent>(),
6289        8usize,
6290        concat!("Alignment of ", stringify!(dirent))
6291    );
6292    assert_eq!(
6293        unsafe { &(*(::std::ptr::null::<dirent>())).d_ino as *const _ as usize },
6294        0usize,
6295        concat!(
6296            "Offset of field: ",
6297            stringify!(dirent),
6298            "::",
6299            stringify!(d_ino)
6300        )
6301    );
6302    assert_eq!(
6303        unsafe { &(*(::std::ptr::null::<dirent>())).d_off as *const _ as usize },
6304        8usize,
6305        concat!(
6306            "Offset of field: ",
6307            stringify!(dirent),
6308            "::",
6309            stringify!(d_off)
6310        )
6311    );
6312    assert_eq!(
6313        unsafe { &(*(::std::ptr::null::<dirent>())).d_reclen as *const _ as usize },
6314        16usize,
6315        concat!(
6316            "Offset of field: ",
6317            stringify!(dirent),
6318            "::",
6319            stringify!(d_reclen)
6320        )
6321    );
6322    assert_eq!(
6323        unsafe { &(*(::std::ptr::null::<dirent>())).d_type as *const _ as usize },
6324        18usize,
6325        concat!(
6326            "Offset of field: ",
6327            stringify!(dirent),
6328            "::",
6329            stringify!(d_type)
6330        )
6331    );
6332    assert_eq!(
6333        unsafe { &(*(::std::ptr::null::<dirent>())).d_name as *const _ as usize },
6334        19usize,
6335        concat!(
6336            "Offset of field: ",
6337            stringify!(dirent),
6338            "::",
6339            stringify!(d_name)
6340        )
6341    );
6342}
6343pub const DT_UNKNOWN: _bindgen_ty_5 = 0;
6344pub const DT_FIFO: _bindgen_ty_5 = 1;
6345pub const DT_CHR: _bindgen_ty_5 = 2;
6346pub const DT_DIR: _bindgen_ty_5 = 4;
6347pub const DT_BLK: _bindgen_ty_5 = 6;
6348pub const DT_REG: _bindgen_ty_5 = 8;
6349pub const DT_LNK: _bindgen_ty_5 = 10;
6350pub const DT_SOCK: _bindgen_ty_5 = 12;
6351pub const DT_WHT: _bindgen_ty_5 = 14;
6352pub type _bindgen_ty_5 = u32;
6353#[repr(C)]
6354#[derive(Debug, Copy, Clone)]
6355pub struct __dirstream {
6356    _unused: [u8; 0],
6357}
6358pub type DIR = __dirstream;
6359extern "C" {
6360    pub fn opendir(__name: *const ::std::os::raw::c_char) -> *mut DIR;
6361}
6362extern "C" {
6363    pub fn fdopendir(__fd: ::std::os::raw::c_int) -> *mut DIR;
6364}
6365extern "C" {
6366    pub fn closedir(__dirp: *mut DIR) -> ::std::os::raw::c_int;
6367}
6368extern "C" {
6369    pub fn readdir(__dirp: *mut DIR) -> *mut dirent;
6370}
6371extern "C" {
6372    pub fn readdir_r(
6373        __dirp: *mut DIR,
6374        __entry: *mut dirent,
6375        __result: *mut *mut dirent,
6376    ) -> ::std::os::raw::c_int;
6377}
6378extern "C" {
6379    pub fn rewinddir(__dirp: *mut DIR);
6380}
6381extern "C" {
6382    pub fn seekdir(__dirp: *mut DIR, __pos: ::std::os::raw::c_long);
6383}
6384extern "C" {
6385    pub fn telldir(__dirp: *mut DIR) -> ::std::os::raw::c_long;
6386}
6387extern "C" {
6388    pub fn dirfd(__dirp: *mut DIR) -> ::std::os::raw::c_int;
6389}
6390extern "C" {
6391    pub fn scandir(
6392        __dir: *const ::std::os::raw::c_char,
6393        __namelist: *mut *mut *mut dirent,
6394        __selector: ::std::option::Option<
6395            unsafe extern "C" fn(arg1: *const dirent) -> ::std::os::raw::c_int,
6396        >,
6397        __cmp: ::std::option::Option<
6398            unsafe extern "C" fn(
6399                arg1: *mut *const dirent,
6400                arg2: *mut *const dirent,
6401            ) -> ::std::os::raw::c_int,
6402        >,
6403    ) -> ::std::os::raw::c_int;
6404}
6405extern "C" {
6406    pub fn alphasort(__e1: *mut *const dirent, __e2: *mut *const dirent) -> ::std::os::raw::c_int;
6407}
6408extern "C" {
6409    pub fn getdirentries(
6410        __fd: ::std::os::raw::c_int,
6411        __buf: *mut ::std::os::raw::c_char,
6412        __nbytes: usize,
6413        __basep: *mut __off_t,
6414    ) -> __ssize_t;
6415}
6416#[repr(C)]
6417#[derive(Debug, Copy, Clone)]
6418pub struct flock {
6419    pub l_type: ::std::os::raw::c_short,
6420    pub l_whence: ::std::os::raw::c_short,
6421    pub l_start: __off_t,
6422    pub l_len: __off_t,
6423    pub l_pid: __pid_t,
6424}
6425#[test]
6426fn bindgen_test_layout_flock() {
6427    assert_eq!(
6428        ::std::mem::size_of::<flock>(),
6429        32usize,
6430        concat!("Size of: ", stringify!(flock))
6431    );
6432    assert_eq!(
6433        ::std::mem::align_of::<flock>(),
6434        8usize,
6435        concat!("Alignment of ", stringify!(flock))
6436    );
6437    assert_eq!(
6438        unsafe { &(*(::std::ptr::null::<flock>())).l_type as *const _ as usize },
6439        0usize,
6440        concat!(
6441            "Offset of field: ",
6442            stringify!(flock),
6443            "::",
6444            stringify!(l_type)
6445        )
6446    );
6447    assert_eq!(
6448        unsafe { &(*(::std::ptr::null::<flock>())).l_whence as *const _ as usize },
6449        2usize,
6450        concat!(
6451            "Offset of field: ",
6452            stringify!(flock),
6453            "::",
6454            stringify!(l_whence)
6455        )
6456    );
6457    assert_eq!(
6458        unsafe { &(*(::std::ptr::null::<flock>())).l_start as *const _ as usize },
6459        8usize,
6460        concat!(
6461            "Offset of field: ",
6462            stringify!(flock),
6463            "::",
6464            stringify!(l_start)
6465        )
6466    );
6467    assert_eq!(
6468        unsafe { &(*(::std::ptr::null::<flock>())).l_len as *const _ as usize },
6469        16usize,
6470        concat!(
6471            "Offset of field: ",
6472            stringify!(flock),
6473            "::",
6474            stringify!(l_len)
6475        )
6476    );
6477    assert_eq!(
6478        unsafe { &(*(::std::ptr::null::<flock>())).l_pid as *const _ as usize },
6479        24usize,
6480        concat!(
6481            "Offset of field: ",
6482            stringify!(flock),
6483            "::",
6484            stringify!(l_pid)
6485        )
6486    );
6487}
6488extern "C" {
6489    pub fn fcntl(
6490        __fd: ::std::os::raw::c_int,
6491        __cmd: ::std::os::raw::c_int,
6492        ...
6493    ) -> ::std::os::raw::c_int;
6494}
6495extern "C" {
6496    pub fn open(
6497        __file: *const ::std::os::raw::c_char,
6498        __oflag: ::std::os::raw::c_int,
6499        ...
6500    ) -> ::std::os::raw::c_int;
6501}
6502extern "C" {
6503    pub fn openat(
6504        __fd: ::std::os::raw::c_int,
6505        __file: *const ::std::os::raw::c_char,
6506        __oflag: ::std::os::raw::c_int,
6507        ...
6508    ) -> ::std::os::raw::c_int;
6509}
6510extern "C" {
6511    pub fn creat(__file: *const ::std::os::raw::c_char, __mode: mode_t) -> ::std::os::raw::c_int;
6512}
6513extern "C" {
6514    pub fn posix_fadvise(
6515        __fd: ::std::os::raw::c_int,
6516        __offset: off_t,
6517        __len: off_t,
6518        __advise: ::std::os::raw::c_int,
6519    ) -> ::std::os::raw::c_int;
6520}
6521extern "C" {
6522    pub fn posix_fallocate(
6523        __fd: ::std::os::raw::c_int,
6524        __offset: off_t,
6525        __len: off_t,
6526    ) -> ::std::os::raw::c_int;
6527}
6528pub type gint8 = ::std::os::raw::c_schar;
6529pub type guint8 = ::std::os::raw::c_uchar;
6530pub type gint16 = ::std::os::raw::c_short;
6531pub type guint16 = ::std::os::raw::c_ushort;
6532pub type gint32 = ::std::os::raw::c_int;
6533pub type guint32 = ::std::os::raw::c_uint;
6534pub type gint64 = ::std::os::raw::c_long;
6535pub type guint64 = ::std::os::raw::c_ulong;
6536pub type gssize = ::std::os::raw::c_long;
6537pub type gsize = ::std::os::raw::c_ulong;
6538pub type goffset = gint64;
6539pub type gintptr = ::std::os::raw::c_long;
6540pub type guintptr = ::std::os::raw::c_ulong;
6541pub type GPid = ::std::os::raw::c_int;
6542pub type gchar = ::std::os::raw::c_char;
6543pub type gshort = ::std::os::raw::c_short;
6544pub type glong = ::std::os::raw::c_long;
6545pub type gint = ::std::os::raw::c_int;
6546pub type gboolean = gint;
6547pub type guchar = ::std::os::raw::c_uchar;
6548pub type gushort = ::std::os::raw::c_ushort;
6549pub type gulong = ::std::os::raw::c_ulong;
6550pub type guint = ::std::os::raw::c_uint;
6551pub type gfloat = f32;
6552pub type gdouble = f64;
6553pub type gpointer = *mut ::std::os::raw::c_void;
6554pub type gconstpointer = *const ::std::os::raw::c_void;
6555pub type GCompareFunc =
6556    ::std::option::Option<unsafe extern "C" fn(a: gconstpointer, b: gconstpointer) -> gint>;
6557pub type GCompareDataFunc = ::std::option::Option<
6558    unsafe extern "C" fn(a: gconstpointer, b: gconstpointer, user_data: gpointer) -> gint,
6559>;
6560pub type GEqualFunc =
6561    ::std::option::Option<unsafe extern "C" fn(a: gconstpointer, b: gconstpointer) -> gboolean>;
6562pub type GDestroyNotify = ::std::option::Option<unsafe extern "C" fn(data: gpointer)>;
6563pub type GFunc = ::std::option::Option<unsafe extern "C" fn(data: gpointer, user_data: gpointer)>;
6564pub type GHashFunc = ::std::option::Option<unsafe extern "C" fn(key: gconstpointer) -> guint>;
6565pub type GHFunc = ::std::option::Option<
6566    unsafe extern "C" fn(key: gpointer, value: gpointer, user_data: gpointer),
6567>;
6568#[doc = " GFreeFunc:"]
6569#[doc = " @data: a data pointer"]
6570#[doc = ""]
6571#[doc = " Declares a type of function which takes an arbitrary"]
6572#[doc = " data pointer argument and has no return value. It is"]
6573#[doc = " not currently used in GLib or GTK+."]
6574pub type GFreeFunc = ::std::option::Option<unsafe extern "C" fn(data: gpointer)>;
6575#[doc = " GTranslateFunc:"]
6576#[doc = " @str: the untranslated string"]
6577#[doc = " @data: user data specified when installing the function, e.g."]
6578#[doc = "  in g_option_group_set_translate_func()"]
6579#[doc = ""]
6580#[doc = " The type of functions which are used to translate user-visible"]
6581#[doc = " strings, for <option>--help</option> output."]
6582#[doc = ""]
6583#[doc = " Returns: a translation of the string for the current locale."]
6584#[doc = "  The returned string is owned by GLib and must not be freed."]
6585pub type GTranslateFunc =
6586    ::std::option::Option<unsafe extern "C" fn(str: *const gchar, data: gpointer) -> *const gchar>;
6587pub type GDoubleIEEE754 = _GDoubleIEEE754;
6588pub type GFloatIEEE754 = _GFloatIEEE754;
6589#[repr(C)]
6590#[derive(Copy, Clone)]
6591pub union _GFloatIEEE754 {
6592    pub v_float: gfloat,
6593    pub mpn: _GFloatIEEE754__bindgen_ty_1,
6594    _bindgen_union_align: u32,
6595}
6596#[repr(C)]
6597#[repr(align(4))]
6598#[derive(Debug, Copy, Clone)]
6599pub struct _GFloatIEEE754__bindgen_ty_1 {
6600    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize], u32>,
6601}
6602#[test]
6603fn bindgen_test_layout__GFloatIEEE754__bindgen_ty_1() {
6604    assert_eq!(
6605        ::std::mem::size_of::<_GFloatIEEE754__bindgen_ty_1>(),
6606        4usize,
6607        concat!("Size of: ", stringify!(_GFloatIEEE754__bindgen_ty_1))
6608    );
6609    assert_eq!(
6610        ::std::mem::align_of::<_GFloatIEEE754__bindgen_ty_1>(),
6611        4usize,
6612        concat!("Alignment of ", stringify!(_GFloatIEEE754__bindgen_ty_1))
6613    );
6614}
6615impl _GFloatIEEE754__bindgen_ty_1 {
6616    #[inline]
6617    pub fn mantissa(&self) -> guint {
6618        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 23u8) as u32) }
6619    }
6620    #[inline]
6621    pub fn set_mantissa(&mut self, val: guint) {
6622        unsafe {
6623            let val: u32 = ::std::mem::transmute(val);
6624            self._bitfield_1.set(0usize, 23u8, val as u64)
6625        }
6626    }
6627    #[inline]
6628    pub fn biased_exponent(&self) -> guint {
6629        unsafe { ::std::mem::transmute(self._bitfield_1.get(23usize, 8u8) as u32) }
6630    }
6631    #[inline]
6632    pub fn set_biased_exponent(&mut self, val: guint) {
6633        unsafe {
6634            let val: u32 = ::std::mem::transmute(val);
6635            self._bitfield_1.set(23usize, 8u8, val as u64)
6636        }
6637    }
6638    #[inline]
6639    pub fn sign(&self) -> guint {
6640        unsafe { ::std::mem::transmute(self._bitfield_1.get(31usize, 1u8) as u32) }
6641    }
6642    #[inline]
6643    pub fn set_sign(&mut self, val: guint) {
6644        unsafe {
6645            let val: u32 = ::std::mem::transmute(val);
6646            self._bitfield_1.set(31usize, 1u8, val as u64)
6647        }
6648    }
6649    #[inline]
6650    pub fn new_bitfield_1(
6651        mantissa: guint,
6652        biased_exponent: guint,
6653        sign: guint,
6654    ) -> __BindgenBitfieldUnit<[u8; 4usize], u32> {
6655        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize], u32> =
6656            Default::default();
6657        __bindgen_bitfield_unit.set(0usize, 23u8, {
6658            let mantissa: u32 = unsafe { ::std::mem::transmute(mantissa) };
6659            mantissa as u64
6660        });
6661        __bindgen_bitfield_unit.set(23usize, 8u8, {
6662            let biased_exponent: u32 = unsafe { ::std::mem::transmute(biased_exponent) };
6663            biased_exponent as u64
6664        });
6665        __bindgen_bitfield_unit.set(31usize, 1u8, {
6666            let sign: u32 = unsafe { ::std::mem::transmute(sign) };
6667            sign as u64
6668        });
6669        __bindgen_bitfield_unit
6670    }
6671}
6672#[test]
6673fn bindgen_test_layout__GFloatIEEE754() {
6674    assert_eq!(
6675        ::std::mem::size_of::<_GFloatIEEE754>(),
6676        4usize,
6677        concat!("Size of: ", stringify!(_GFloatIEEE754))
6678    );
6679    assert_eq!(
6680        ::std::mem::align_of::<_GFloatIEEE754>(),
6681        4usize,
6682        concat!("Alignment of ", stringify!(_GFloatIEEE754))
6683    );
6684    assert_eq!(
6685        unsafe { &(*(::std::ptr::null::<_GFloatIEEE754>())).v_float as *const _ as usize },
6686        0usize,
6687        concat!(
6688            "Offset of field: ",
6689            stringify!(_GFloatIEEE754),
6690            "::",
6691            stringify!(v_float)
6692        )
6693    );
6694    assert_eq!(
6695        unsafe { &(*(::std::ptr::null::<_GFloatIEEE754>())).mpn as *const _ as usize },
6696        0usize,
6697        concat!(
6698            "Offset of field: ",
6699            stringify!(_GFloatIEEE754),
6700            "::",
6701            stringify!(mpn)
6702        )
6703    );
6704}
6705#[repr(C)]
6706#[derive(Copy, Clone)]
6707pub union _GDoubleIEEE754 {
6708    pub v_double: gdouble,
6709    pub mpn: _GDoubleIEEE754__bindgen_ty_1,
6710    _bindgen_union_align: u64,
6711}
6712#[repr(C)]
6713#[repr(align(4))]
6714#[derive(Debug, Copy, Clone)]
6715pub struct _GDoubleIEEE754__bindgen_ty_1 {
6716    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize], u32>,
6717}
6718#[test]
6719fn bindgen_test_layout__GDoubleIEEE754__bindgen_ty_1() {
6720    assert_eq!(
6721        ::std::mem::size_of::<_GDoubleIEEE754__bindgen_ty_1>(),
6722        8usize,
6723        concat!("Size of: ", stringify!(_GDoubleIEEE754__bindgen_ty_1))
6724    );
6725    assert_eq!(
6726        ::std::mem::align_of::<_GDoubleIEEE754__bindgen_ty_1>(),
6727        4usize,
6728        concat!("Alignment of ", stringify!(_GDoubleIEEE754__bindgen_ty_1))
6729    );
6730}
6731impl _GDoubleIEEE754__bindgen_ty_1 {
6732    #[inline]
6733    pub fn mantissa_low(&self) -> guint {
6734        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 32u8) as u32) }
6735    }
6736    #[inline]
6737    pub fn set_mantissa_low(&mut self, val: guint) {
6738        unsafe {
6739            let val: u32 = ::std::mem::transmute(val);
6740            self._bitfield_1.set(0usize, 32u8, val as u64)
6741        }
6742    }
6743    #[inline]
6744    pub fn mantissa_high(&self) -> guint {
6745        unsafe { ::std::mem::transmute(self._bitfield_1.get(32usize, 20u8) as u32) }
6746    }
6747    #[inline]
6748    pub fn set_mantissa_high(&mut self, val: guint) {
6749        unsafe {
6750            let val: u32 = ::std::mem::transmute(val);
6751            self._bitfield_1.set(32usize, 20u8, val as u64)
6752        }
6753    }
6754    #[inline]
6755    pub fn biased_exponent(&self) -> guint {
6756        unsafe { ::std::mem::transmute(self._bitfield_1.get(52usize, 11u8) as u32) }
6757    }
6758    #[inline]
6759    pub fn set_biased_exponent(&mut self, val: guint) {
6760        unsafe {
6761            let val: u32 = ::std::mem::transmute(val);
6762            self._bitfield_1.set(52usize, 11u8, val as u64)
6763        }
6764    }
6765    #[inline]
6766    pub fn sign(&self) -> guint {
6767        unsafe { ::std::mem::transmute(self._bitfield_1.get(63usize, 1u8) as u32) }
6768    }
6769    #[inline]
6770    pub fn set_sign(&mut self, val: guint) {
6771        unsafe {
6772            let val: u32 = ::std::mem::transmute(val);
6773            self._bitfield_1.set(63usize, 1u8, val as u64)
6774        }
6775    }
6776    #[inline]
6777    pub fn new_bitfield_1(
6778        mantissa_low: guint,
6779        mantissa_high: guint,
6780        biased_exponent: guint,
6781        sign: guint,
6782    ) -> __BindgenBitfieldUnit<[u8; 8usize], u32> {
6783        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize], u32> =
6784            Default::default();
6785        __bindgen_bitfield_unit.set(0usize, 32u8, {
6786            let mantissa_low: u32 = unsafe { ::std::mem::transmute(mantissa_low) };
6787            mantissa_low as u64
6788        });
6789        __bindgen_bitfield_unit.set(32usize, 20u8, {
6790            let mantissa_high: u32 = unsafe { ::std::mem::transmute(mantissa_high) };
6791            mantissa_high as u64
6792        });
6793        __bindgen_bitfield_unit.set(52usize, 11u8, {
6794            let biased_exponent: u32 = unsafe { ::std::mem::transmute(biased_exponent) };
6795            biased_exponent as u64
6796        });
6797        __bindgen_bitfield_unit.set(63usize, 1u8, {
6798            let sign: u32 = unsafe { ::std::mem::transmute(sign) };
6799            sign as u64
6800        });
6801        __bindgen_bitfield_unit
6802    }
6803}
6804#[test]
6805fn bindgen_test_layout__GDoubleIEEE754() {
6806    assert_eq!(
6807        ::std::mem::size_of::<_GDoubleIEEE754>(),
6808        8usize,
6809        concat!("Size of: ", stringify!(_GDoubleIEEE754))
6810    );
6811    assert_eq!(
6812        ::std::mem::align_of::<_GDoubleIEEE754>(),
6813        8usize,
6814        concat!("Alignment of ", stringify!(_GDoubleIEEE754))
6815    );
6816    assert_eq!(
6817        unsafe { &(*(::std::ptr::null::<_GDoubleIEEE754>())).v_double as *const _ as usize },
6818        0usize,
6819        concat!(
6820            "Offset of field: ",
6821            stringify!(_GDoubleIEEE754),
6822            "::",
6823            stringify!(v_double)
6824        )
6825    );
6826    assert_eq!(
6827        unsafe { &(*(::std::ptr::null::<_GDoubleIEEE754>())).mpn as *const _ as usize },
6828        0usize,
6829        concat!(
6830            "Offset of field: ",
6831            stringify!(_GDoubleIEEE754),
6832            "::",
6833            stringify!(mpn)
6834        )
6835    );
6836}
6837pub type GTimeVal = _GTimeVal;
6838#[repr(C)]
6839#[derive(Debug, Copy, Clone)]
6840pub struct _GTimeVal {
6841    pub tv_sec: glong,
6842    pub tv_usec: glong,
6843}
6844#[test]
6845fn bindgen_test_layout__GTimeVal() {
6846    assert_eq!(
6847        ::std::mem::size_of::<_GTimeVal>(),
6848        16usize,
6849        concat!("Size of: ", stringify!(_GTimeVal))
6850    );
6851    assert_eq!(
6852        ::std::mem::align_of::<_GTimeVal>(),
6853        8usize,
6854        concat!("Alignment of ", stringify!(_GTimeVal))
6855    );
6856    assert_eq!(
6857        unsafe { &(*(::std::ptr::null::<_GTimeVal>())).tv_sec as *const _ as usize },
6858        0usize,
6859        concat!(
6860            "Offset of field: ",
6861            stringify!(_GTimeVal),
6862            "::",
6863            stringify!(tv_sec)
6864        )
6865    );
6866    assert_eq!(
6867        unsafe { &(*(::std::ptr::null::<_GTimeVal>())).tv_usec as *const _ as usize },
6868        8usize,
6869        concat!(
6870            "Offset of field: ",
6871            stringify!(_GTimeVal),
6872            "::",
6873            stringify!(tv_usec)
6874        )
6875    );
6876}
6877#[repr(C)]
6878#[derive(Debug, Copy, Clone)]
6879pub struct _GBytes {
6880    _unused: [u8; 0],
6881}
6882pub type GBytes = _GBytes;
6883pub type GArray = _GArray;
6884pub type GByteArray = _GByteArray;
6885pub type GPtrArray = _GPtrArray;
6886#[repr(C)]
6887#[derive(Debug, Copy, Clone)]
6888pub struct _GArray {
6889    pub data: *mut gchar,
6890    pub len: guint,
6891}
6892#[test]
6893fn bindgen_test_layout__GArray() {
6894    assert_eq!(
6895        ::std::mem::size_of::<_GArray>(),
6896        16usize,
6897        concat!("Size of: ", stringify!(_GArray))
6898    );
6899    assert_eq!(
6900        ::std::mem::align_of::<_GArray>(),
6901        8usize,
6902        concat!("Alignment of ", stringify!(_GArray))
6903    );
6904    assert_eq!(
6905        unsafe { &(*(::std::ptr::null::<_GArray>())).data as *const _ as usize },
6906        0usize,
6907        concat!(
6908            "Offset of field: ",
6909            stringify!(_GArray),
6910            "::",
6911            stringify!(data)
6912        )
6913    );
6914    assert_eq!(
6915        unsafe { &(*(::std::ptr::null::<_GArray>())).len as *const _ as usize },
6916        8usize,
6917        concat!(
6918            "Offset of field: ",
6919            stringify!(_GArray),
6920            "::",
6921            stringify!(len)
6922        )
6923    );
6924}
6925#[repr(C)]
6926#[derive(Debug, Copy, Clone)]
6927pub struct _GByteArray {
6928    pub data: *mut guint8,
6929    pub len: guint,
6930}
6931#[test]
6932fn bindgen_test_layout__GByteArray() {
6933    assert_eq!(
6934        ::std::mem::size_of::<_GByteArray>(),
6935        16usize,
6936        concat!("Size of: ", stringify!(_GByteArray))
6937    );
6938    assert_eq!(
6939        ::std::mem::align_of::<_GByteArray>(),
6940        8usize,
6941        concat!("Alignment of ", stringify!(_GByteArray))
6942    );
6943    assert_eq!(
6944        unsafe { &(*(::std::ptr::null::<_GByteArray>())).data as *const _ as usize },
6945        0usize,
6946        concat!(
6947            "Offset of field: ",
6948            stringify!(_GByteArray),
6949            "::",
6950            stringify!(data)
6951        )
6952    );
6953    assert_eq!(
6954        unsafe { &(*(::std::ptr::null::<_GByteArray>())).len as *const _ as usize },
6955        8usize,
6956        concat!(
6957            "Offset of field: ",
6958            stringify!(_GByteArray),
6959            "::",
6960            stringify!(len)
6961        )
6962    );
6963}
6964#[repr(C)]
6965#[derive(Debug, Copy, Clone)]
6966pub struct _GPtrArray {
6967    pub pdata: *mut gpointer,
6968    pub len: guint,
6969}
6970#[test]
6971fn bindgen_test_layout__GPtrArray() {
6972    assert_eq!(
6973        ::std::mem::size_of::<_GPtrArray>(),
6974        16usize,
6975        concat!("Size of: ", stringify!(_GPtrArray))
6976    );
6977    assert_eq!(
6978        ::std::mem::align_of::<_GPtrArray>(),
6979        8usize,
6980        concat!("Alignment of ", stringify!(_GPtrArray))
6981    );
6982    assert_eq!(
6983        unsafe { &(*(::std::ptr::null::<_GPtrArray>())).pdata as *const _ as usize },
6984        0usize,
6985        concat!(
6986            "Offset of field: ",
6987            stringify!(_GPtrArray),
6988            "::",
6989            stringify!(pdata)
6990        )
6991    );
6992    assert_eq!(
6993        unsafe { &(*(::std::ptr::null::<_GPtrArray>())).len as *const _ as usize },
6994        8usize,
6995        concat!(
6996            "Offset of field: ",
6997            stringify!(_GPtrArray),
6998            "::",
6999            stringify!(len)
7000        )
7001    );
7002}
7003extern "C" {
7004    pub fn g_array_new(
7005        zero_terminated: gboolean,
7006        clear_: gboolean,
7007        element_size: guint,
7008    ) -> *mut GArray;
7009}
7010extern "C" {
7011    pub fn g_array_sized_new(
7012        zero_terminated: gboolean,
7013        clear_: gboolean,
7014        element_size: guint,
7015        reserved_size: guint,
7016    ) -> *mut GArray;
7017}
7018extern "C" {
7019    pub fn g_array_free(array: *mut GArray, free_segment: gboolean) -> *mut gchar;
7020}
7021extern "C" {
7022    pub fn g_array_ref(array: *mut GArray) -> *mut GArray;
7023}
7024extern "C" {
7025    pub fn g_array_unref(array: *mut GArray);
7026}
7027extern "C" {
7028    pub fn g_array_get_element_size(array: *mut GArray) -> guint;
7029}
7030extern "C" {
7031    pub fn g_array_append_vals(array: *mut GArray, data: gconstpointer, len: guint) -> *mut GArray;
7032}
7033extern "C" {
7034    pub fn g_array_prepend_vals(array: *mut GArray, data: gconstpointer, len: guint)
7035        -> *mut GArray;
7036}
7037extern "C" {
7038    pub fn g_array_insert_vals(
7039        array: *mut GArray,
7040        index_: guint,
7041        data: gconstpointer,
7042        len: guint,
7043    ) -> *mut GArray;
7044}
7045extern "C" {
7046    pub fn g_array_set_size(array: *mut GArray, length: guint) -> *mut GArray;
7047}
7048extern "C" {
7049    pub fn g_array_remove_index(array: *mut GArray, index_: guint) -> *mut GArray;
7050}
7051extern "C" {
7052    pub fn g_array_remove_index_fast(array: *mut GArray, index_: guint) -> *mut GArray;
7053}
7054extern "C" {
7055    pub fn g_array_remove_range(array: *mut GArray, index_: guint, length: guint) -> *mut GArray;
7056}
7057extern "C" {
7058    pub fn g_array_sort(array: *mut GArray, compare_func: GCompareFunc);
7059}
7060extern "C" {
7061    pub fn g_array_sort_with_data(
7062        array: *mut GArray,
7063        compare_func: GCompareDataFunc,
7064        user_data: gpointer,
7065    );
7066}
7067extern "C" {
7068    pub fn g_array_set_clear_func(array: *mut GArray, clear_func: GDestroyNotify);
7069}
7070extern "C" {
7071    pub fn g_ptr_array_new() -> *mut GPtrArray;
7072}
7073extern "C" {
7074    pub fn g_ptr_array_new_with_free_func(element_free_func: GDestroyNotify) -> *mut GPtrArray;
7075}
7076extern "C" {
7077    pub fn g_ptr_array_sized_new(reserved_size: guint) -> *mut GPtrArray;
7078}
7079extern "C" {
7080    pub fn g_ptr_array_new_full(
7081        reserved_size: guint,
7082        element_free_func: GDestroyNotify,
7083    ) -> *mut GPtrArray;
7084}
7085extern "C" {
7086    pub fn g_ptr_array_free(array: *mut GPtrArray, free_seg: gboolean) -> *mut gpointer;
7087}
7088extern "C" {
7089    pub fn g_ptr_array_ref(array: *mut GPtrArray) -> *mut GPtrArray;
7090}
7091extern "C" {
7092    pub fn g_ptr_array_unref(array: *mut GPtrArray);
7093}
7094extern "C" {
7095    pub fn g_ptr_array_set_free_func(array: *mut GPtrArray, element_free_func: GDestroyNotify);
7096}
7097extern "C" {
7098    pub fn g_ptr_array_set_size(array: *mut GPtrArray, length: gint);
7099}
7100extern "C" {
7101    pub fn g_ptr_array_remove_index(array: *mut GPtrArray, index_: guint) -> gpointer;
7102}
7103extern "C" {
7104    pub fn g_ptr_array_remove_index_fast(array: *mut GPtrArray, index_: guint) -> gpointer;
7105}
7106extern "C" {
7107    pub fn g_ptr_array_remove(array: *mut GPtrArray, data: gpointer) -> gboolean;
7108}
7109extern "C" {
7110    pub fn g_ptr_array_remove_fast(array: *mut GPtrArray, data: gpointer) -> gboolean;
7111}
7112extern "C" {
7113    pub fn g_ptr_array_remove_range(
7114        array: *mut GPtrArray,
7115        index_: guint,
7116        length: guint,
7117    ) -> *mut GPtrArray;
7118}
7119extern "C" {
7120    pub fn g_ptr_array_add(array: *mut GPtrArray, data: gpointer);
7121}
7122extern "C" {
7123    pub fn g_ptr_array_insert(array: *mut GPtrArray, index_: gint, data: gpointer);
7124}
7125extern "C" {
7126    pub fn g_ptr_array_sort(array: *mut GPtrArray, compare_func: GCompareFunc);
7127}
7128extern "C" {
7129    pub fn g_ptr_array_sort_with_data(
7130        array: *mut GPtrArray,
7131        compare_func: GCompareDataFunc,
7132        user_data: gpointer,
7133    );
7134}
7135extern "C" {
7136    pub fn g_ptr_array_foreach(array: *mut GPtrArray, func: GFunc, user_data: gpointer);
7137}
7138extern "C" {
7139    pub fn g_ptr_array_find(
7140        haystack: *mut GPtrArray,
7141        needle: gconstpointer,
7142        index_: *mut guint,
7143    ) -> gboolean;
7144}
7145extern "C" {
7146    pub fn g_ptr_array_find_with_equal_func(
7147        haystack: *mut GPtrArray,
7148        needle: gconstpointer,
7149        equal_func: GEqualFunc,
7150        index_: *mut guint,
7151    ) -> gboolean;
7152}
7153extern "C" {
7154    pub fn g_byte_array_new() -> *mut GByteArray;
7155}
7156extern "C" {
7157    pub fn g_byte_array_new_take(data: *mut guint8, len: gsize) -> *mut GByteArray;
7158}
7159extern "C" {
7160    pub fn g_byte_array_sized_new(reserved_size: guint) -> *mut GByteArray;
7161}
7162extern "C" {
7163    pub fn g_byte_array_free(array: *mut GByteArray, free_segment: gboolean) -> *mut guint8;
7164}
7165extern "C" {
7166    pub fn g_byte_array_free_to_bytes(array: *mut GByteArray) -> *mut GBytes;
7167}
7168extern "C" {
7169    pub fn g_byte_array_ref(array: *mut GByteArray) -> *mut GByteArray;
7170}
7171extern "C" {
7172    pub fn g_byte_array_unref(array: *mut GByteArray);
7173}
7174extern "C" {
7175    pub fn g_byte_array_append(
7176        array: *mut GByteArray,
7177        data: *const guint8,
7178        len: guint,
7179    ) -> *mut GByteArray;
7180}
7181extern "C" {
7182    pub fn g_byte_array_prepend(
7183        array: *mut GByteArray,
7184        data: *const guint8,
7185        len: guint,
7186    ) -> *mut GByteArray;
7187}
7188extern "C" {
7189    pub fn g_byte_array_set_size(array: *mut GByteArray, length: guint) -> *mut GByteArray;
7190}
7191extern "C" {
7192    pub fn g_byte_array_remove_index(array: *mut GByteArray, index_: guint) -> *mut GByteArray;
7193}
7194extern "C" {
7195    pub fn g_byte_array_remove_index_fast(array: *mut GByteArray, index_: guint)
7196        -> *mut GByteArray;
7197}
7198extern "C" {
7199    pub fn g_byte_array_remove_range(
7200        array: *mut GByteArray,
7201        index_: guint,
7202        length: guint,
7203    ) -> *mut GByteArray;
7204}
7205extern "C" {
7206    pub fn g_byte_array_sort(array: *mut GByteArray, compare_func: GCompareFunc);
7207}
7208extern "C" {
7209    pub fn g_byte_array_sort_with_data(
7210        array: *mut GByteArray,
7211        compare_func: GCompareDataFunc,
7212        user_data: gpointer,
7213    );
7214}
7215extern "C" {
7216    pub fn g_atomic_int_get(atomic: *const gint) -> gint;
7217}
7218extern "C" {
7219    pub fn g_atomic_int_set(atomic: *mut gint, newval: gint);
7220}
7221extern "C" {
7222    pub fn g_atomic_int_inc(atomic: *mut gint);
7223}
7224extern "C" {
7225    pub fn g_atomic_int_dec_and_test(atomic: *mut gint) -> gboolean;
7226}
7227extern "C" {
7228    pub fn g_atomic_int_compare_and_exchange(
7229        atomic: *mut gint,
7230        oldval: gint,
7231        newval: gint,
7232    ) -> gboolean;
7233}
7234extern "C" {
7235    pub fn g_atomic_int_add(atomic: *mut gint, val: gint) -> gint;
7236}
7237extern "C" {
7238    pub fn g_atomic_int_and(atomic: *mut guint, val: guint) -> guint;
7239}
7240extern "C" {
7241    pub fn g_atomic_int_or(atomic: *mut guint, val: guint) -> guint;
7242}
7243extern "C" {
7244    pub fn g_atomic_int_xor(atomic: *mut guint, val: guint) -> guint;
7245}
7246extern "C" {
7247    pub fn g_atomic_pointer_get(atomic: *const ::std::os::raw::c_void) -> gpointer;
7248}
7249extern "C" {
7250    pub fn g_atomic_pointer_set(atomic: *mut ::std::os::raw::c_void, newval: gpointer);
7251}
7252extern "C" {
7253    pub fn g_atomic_pointer_compare_and_exchange(
7254        atomic: *mut ::std::os::raw::c_void,
7255        oldval: gpointer,
7256        newval: gpointer,
7257    ) -> gboolean;
7258}
7259extern "C" {
7260    pub fn g_atomic_pointer_add(atomic: *mut ::std::os::raw::c_void, val: gssize) -> gssize;
7261}
7262extern "C" {
7263    pub fn g_atomic_pointer_and(atomic: *mut ::std::os::raw::c_void, val: gsize) -> gsize;
7264}
7265extern "C" {
7266    pub fn g_atomic_pointer_or(atomic: *mut ::std::os::raw::c_void, val: gsize) -> gsize;
7267}
7268extern "C" {
7269    pub fn g_atomic_pointer_xor(atomic: *mut ::std::os::raw::c_void, val: gsize) -> gsize;
7270}
7271extern "C" {
7272    pub fn g_atomic_int_exchange_and_add(atomic: *mut gint, val: gint) -> gint;
7273}
7274pub type GQuark = guint32;
7275extern "C" {
7276    pub fn g_quark_try_string(string: *const gchar) -> GQuark;
7277}
7278extern "C" {
7279    pub fn g_quark_from_static_string(string: *const gchar) -> GQuark;
7280}
7281extern "C" {
7282    pub fn g_quark_from_string(string: *const gchar) -> GQuark;
7283}
7284extern "C" {
7285    pub fn g_quark_to_string(quark: GQuark) -> *const gchar;
7286}
7287extern "C" {
7288    pub fn g_intern_string(string: *const gchar) -> *const gchar;
7289}
7290extern "C" {
7291    pub fn g_intern_static_string(string: *const gchar) -> *const gchar;
7292}
7293#[doc = " GError:"]
7294#[doc = " @domain: error domain, e.g. #G_FILE_ERROR"]
7295#[doc = " @code: error code, e.g. %G_FILE_ERROR_NOENT"]
7296#[doc = " @message: human-readable informative error message"]
7297#[doc = ""]
7298#[doc = " The `GError` structure contains information about"]
7299#[doc = " an error that has occurred."]
7300pub type GError = _GError;
7301#[repr(C)]
7302#[derive(Debug, Copy, Clone)]
7303pub struct _GError {
7304    pub domain: GQuark,
7305    pub code: gint,
7306    pub message: *mut gchar,
7307}
7308#[test]
7309fn bindgen_test_layout__GError() {
7310    assert_eq!(
7311        ::std::mem::size_of::<_GError>(),
7312        16usize,
7313        concat!("Size of: ", stringify!(_GError))
7314    );
7315    assert_eq!(
7316        ::std::mem::align_of::<_GError>(),
7317        8usize,
7318        concat!("Alignment of ", stringify!(_GError))
7319    );
7320    assert_eq!(
7321        unsafe { &(*(::std::ptr::null::<_GError>())).domain as *const _ as usize },
7322        0usize,
7323        concat!(
7324            "Offset of field: ",
7325            stringify!(_GError),
7326            "::",
7327            stringify!(domain)
7328        )
7329    );
7330    assert_eq!(
7331        unsafe { &(*(::std::ptr::null::<_GError>())).code as *const _ as usize },
7332        4usize,
7333        concat!(
7334            "Offset of field: ",
7335            stringify!(_GError),
7336            "::",
7337            stringify!(code)
7338        )
7339    );
7340    assert_eq!(
7341        unsafe { &(*(::std::ptr::null::<_GError>())).message as *const _ as usize },
7342        8usize,
7343        concat!(
7344            "Offset of field: ",
7345            stringify!(_GError),
7346            "::",
7347            stringify!(message)
7348        )
7349    );
7350}
7351extern "C" {
7352    pub fn g_error_new(domain: GQuark, code: gint, format: *const gchar, ...) -> *mut GError;
7353}
7354extern "C" {
7355    pub fn g_error_new_literal(domain: GQuark, code: gint, message: *const gchar) -> *mut GError;
7356}
7357extern "C" {
7358    pub fn g_error_new_valist(
7359        domain: GQuark,
7360        code: gint,
7361        format: *const gchar,
7362        args: *mut __va_list_tag,
7363    ) -> *mut GError;
7364}
7365extern "C" {
7366    pub fn g_error_free(error: *mut GError);
7367}
7368extern "C" {
7369    pub fn g_error_copy(error: *const GError) -> *mut GError;
7370}
7371extern "C" {
7372    pub fn g_error_matches(error: *const GError, domain: GQuark, code: gint) -> gboolean;
7373}
7374extern "C" {
7375    pub fn g_set_error(
7376        err: *mut *mut GError,
7377        domain: GQuark,
7378        code: gint,
7379        format: *const gchar,
7380        ...
7381    );
7382}
7383extern "C" {
7384    pub fn g_set_error_literal(
7385        err: *mut *mut GError,
7386        domain: GQuark,
7387        code: gint,
7388        message: *const gchar,
7389    );
7390}
7391extern "C" {
7392    pub fn g_propagate_error(dest: *mut *mut GError, src: *mut GError);
7393}
7394extern "C" {
7395    pub fn g_clear_error(err: *mut *mut GError);
7396}
7397extern "C" {
7398    pub fn g_prefix_error(err: *mut *mut GError, format: *const gchar, ...);
7399}
7400extern "C" {
7401    pub fn g_propagate_prefixed_error(
7402        dest: *mut *mut GError,
7403        src: *mut GError,
7404        format: *const gchar,
7405        ...
7406    );
7407}
7408extern "C" {
7409    pub fn g_get_user_name() -> *const gchar;
7410}
7411extern "C" {
7412    pub fn g_get_real_name() -> *const gchar;
7413}
7414extern "C" {
7415    pub fn g_get_home_dir() -> *const gchar;
7416}
7417extern "C" {
7418    pub fn g_get_tmp_dir() -> *const gchar;
7419}
7420extern "C" {
7421    pub fn g_get_host_name() -> *const gchar;
7422}
7423extern "C" {
7424    pub fn g_get_prgname() -> *const gchar;
7425}
7426extern "C" {
7427    pub fn g_set_prgname(prgname: *const gchar);
7428}
7429extern "C" {
7430    pub fn g_get_application_name() -> *const gchar;
7431}
7432extern "C" {
7433    pub fn g_set_application_name(application_name: *const gchar);
7434}
7435extern "C" {
7436    pub fn g_reload_user_special_dirs_cache();
7437}
7438extern "C" {
7439    pub fn g_get_user_data_dir() -> *const gchar;
7440}
7441extern "C" {
7442    pub fn g_get_user_config_dir() -> *const gchar;
7443}
7444extern "C" {
7445    pub fn g_get_user_cache_dir() -> *const gchar;
7446}
7447extern "C" {
7448    pub fn g_get_system_data_dirs() -> *const *const gchar;
7449}
7450extern "C" {
7451    pub fn g_get_system_config_dirs() -> *const *const gchar;
7452}
7453extern "C" {
7454    pub fn g_get_user_runtime_dir() -> *const gchar;
7455}
7456pub const GUserDirectory_G_USER_DIRECTORY_DESKTOP: GUserDirectory = 0;
7457pub const GUserDirectory_G_USER_DIRECTORY_DOCUMENTS: GUserDirectory = 1;
7458pub const GUserDirectory_G_USER_DIRECTORY_DOWNLOAD: GUserDirectory = 2;
7459pub const GUserDirectory_G_USER_DIRECTORY_MUSIC: GUserDirectory = 3;
7460pub const GUserDirectory_G_USER_DIRECTORY_PICTURES: GUserDirectory = 4;
7461pub const GUserDirectory_G_USER_DIRECTORY_PUBLIC_SHARE: GUserDirectory = 5;
7462pub const GUserDirectory_G_USER_DIRECTORY_TEMPLATES: GUserDirectory = 6;
7463pub const GUserDirectory_G_USER_DIRECTORY_VIDEOS: GUserDirectory = 7;
7464pub const GUserDirectory_G_USER_N_DIRECTORIES: GUserDirectory = 8;
7465#[doc = " GUserDirectory:"]
7466#[doc = " @G_USER_DIRECTORY_DESKTOP: the user's Desktop directory"]
7467#[doc = " @G_USER_DIRECTORY_DOCUMENTS: the user's Documents directory"]
7468#[doc = " @G_USER_DIRECTORY_DOWNLOAD: the user's Downloads directory"]
7469#[doc = " @G_USER_DIRECTORY_MUSIC: the user's Music directory"]
7470#[doc = " @G_USER_DIRECTORY_PICTURES: the user's Pictures directory"]
7471#[doc = " @G_USER_DIRECTORY_PUBLIC_SHARE: the user's shared directory"]
7472#[doc = " @G_USER_DIRECTORY_TEMPLATES: the user's Templates directory"]
7473#[doc = " @G_USER_DIRECTORY_VIDEOS: the user's Movies directory"]
7474#[doc = " @G_USER_N_DIRECTORIES: the number of enum values"]
7475#[doc = ""]
7476#[doc = " These are logical ids for special directories which are defined"]
7477#[doc = " depending on the platform used. You should use g_get_user_special_dir()"]
7478#[doc = " to retrieve the full path associated to the logical id."]
7479#[doc = ""]
7480#[doc = " The #GUserDirectory enumeration can be extended at later date. Not"]
7481#[doc = " every platform has a directory for every logical id in this"]
7482#[doc = " enumeration."]
7483#[doc = ""]
7484#[doc = " Since: 2.14"]
7485pub type GUserDirectory = u32;
7486extern "C" {
7487    pub fn g_get_user_special_dir(directory: GUserDirectory) -> *const gchar;
7488}
7489#[doc = " GDebugKey:"]
7490#[doc = " @key: the string"]
7491#[doc = " @value: the flag"]
7492#[doc = ""]
7493#[doc = " Associates a string with a bit flag."]
7494#[doc = " Used in g_parse_debug_string()."]
7495pub type GDebugKey = _GDebugKey;
7496#[repr(C)]
7497#[derive(Debug, Copy, Clone)]
7498pub struct _GDebugKey {
7499    pub key: *const gchar,
7500    pub value: guint,
7501}
7502#[test]
7503fn bindgen_test_layout__GDebugKey() {
7504    assert_eq!(
7505        ::std::mem::size_of::<_GDebugKey>(),
7506        16usize,
7507        concat!("Size of: ", stringify!(_GDebugKey))
7508    );
7509    assert_eq!(
7510        ::std::mem::align_of::<_GDebugKey>(),
7511        8usize,
7512        concat!("Alignment of ", stringify!(_GDebugKey))
7513    );
7514    assert_eq!(
7515        unsafe { &(*(::std::ptr::null::<_GDebugKey>())).key as *const _ as usize },
7516        0usize,
7517        concat!(
7518            "Offset of field: ",
7519            stringify!(_GDebugKey),
7520            "::",
7521            stringify!(key)
7522        )
7523    );
7524    assert_eq!(
7525        unsafe { &(*(::std::ptr::null::<_GDebugKey>())).value as *const _ as usize },
7526        8usize,
7527        concat!(
7528            "Offset of field: ",
7529            stringify!(_GDebugKey),
7530            "::",
7531            stringify!(value)
7532        )
7533    );
7534}
7535extern "C" {
7536    pub fn g_parse_debug_string(
7537        string: *const gchar,
7538        keys: *const GDebugKey,
7539        nkeys: guint,
7540    ) -> guint;
7541}
7542extern "C" {
7543    pub fn g_snprintf(string: *mut gchar, n: gulong, format: *const gchar, ...) -> gint;
7544}
7545extern "C" {
7546    pub fn g_vsnprintf(
7547        string: *mut gchar,
7548        n: gulong,
7549        format: *const gchar,
7550        args: *mut __va_list_tag,
7551    ) -> gint;
7552}
7553extern "C" {
7554    pub fn g_nullify_pointer(nullify_location: *mut gpointer);
7555}
7556pub const GFormatSizeFlags_G_FORMAT_SIZE_DEFAULT: GFormatSizeFlags = 0;
7557pub const GFormatSizeFlags_G_FORMAT_SIZE_LONG_FORMAT: GFormatSizeFlags = 1;
7558pub const GFormatSizeFlags_G_FORMAT_SIZE_IEC_UNITS: GFormatSizeFlags = 2;
7559pub const GFormatSizeFlags_G_FORMAT_SIZE_BITS: GFormatSizeFlags = 4;
7560pub type GFormatSizeFlags = u32;
7561extern "C" {
7562    pub fn g_format_size_full(size: guint64, flags: GFormatSizeFlags) -> *mut gchar;
7563}
7564extern "C" {
7565    pub fn g_format_size(size: guint64) -> *mut gchar;
7566}
7567extern "C" {
7568    pub fn g_format_size_for_display(size: goffset) -> *mut gchar;
7569}
7570#[doc = " GVoidFunc:"]
7571#[doc = ""]
7572#[doc = " Declares a type of function which takes no arguments"]
7573#[doc = " and has no return value. It is used to specify the type"]
7574#[doc = " function passed to g_atexit()."]
7575pub type GVoidFunc = ::std::option::Option<unsafe extern "C" fn()>;
7576extern "C" {
7577    pub fn g_atexit(func: GVoidFunc);
7578}
7579extern "C" {
7580    pub fn g_find_program_in_path(program: *const gchar) -> *mut gchar;
7581}
7582extern "C" {
7583    pub fn g_bit_nth_lsf(mask: gulong, nth_bit: gint) -> gint;
7584}
7585extern "C" {
7586    pub fn g_bit_nth_msf(mask: gulong, nth_bit: gint) -> gint;
7587}
7588extern "C" {
7589    pub fn g_bit_storage(number: gulong) -> guint;
7590}
7591extern "C" {
7592    pub fn g_thread_error_quark() -> GQuark;
7593}
7594pub const GThreadError_G_THREAD_ERROR_AGAIN: GThreadError = 0;
7595pub type GThreadError = u32;
7596pub type GThreadFunc = ::std::option::Option<unsafe extern "C" fn(data: gpointer) -> gpointer>;
7597pub type GThread = _GThread;
7598pub type GMutex = _GMutex;
7599pub type GRecMutex = _GRecMutex;
7600pub type GRWLock = _GRWLock;
7601pub type GCond = _GCond;
7602pub type GPrivate = _GPrivate;
7603pub type GOnce = _GOnce;
7604#[repr(C)]
7605#[derive(Copy, Clone)]
7606pub union _GMutex {
7607    pub p: gpointer,
7608    pub i: [guint; 2usize],
7609    _bindgen_union_align: u64,
7610}
7611#[test]
7612fn bindgen_test_layout__GMutex() {
7613    assert_eq!(
7614        ::std::mem::size_of::<_GMutex>(),
7615        8usize,
7616        concat!("Size of: ", stringify!(_GMutex))
7617    );
7618    assert_eq!(
7619        ::std::mem::align_of::<_GMutex>(),
7620        8usize,
7621        concat!("Alignment of ", stringify!(_GMutex))
7622    );
7623    assert_eq!(
7624        unsafe { &(*(::std::ptr::null::<_GMutex>())).p as *const _ as usize },
7625        0usize,
7626        concat!(
7627            "Offset of field: ",
7628            stringify!(_GMutex),
7629            "::",
7630            stringify!(p)
7631        )
7632    );
7633    assert_eq!(
7634        unsafe { &(*(::std::ptr::null::<_GMutex>())).i as *const _ as usize },
7635        0usize,
7636        concat!(
7637            "Offset of field: ",
7638            stringify!(_GMutex),
7639            "::",
7640            stringify!(i)
7641        )
7642    );
7643}
7644#[repr(C)]
7645#[derive(Debug, Copy, Clone)]
7646pub struct _GRWLock {
7647    pub p: gpointer,
7648    pub i: [guint; 2usize],
7649}
7650#[test]
7651fn bindgen_test_layout__GRWLock() {
7652    assert_eq!(
7653        ::std::mem::size_of::<_GRWLock>(),
7654        16usize,
7655        concat!("Size of: ", stringify!(_GRWLock))
7656    );
7657    assert_eq!(
7658        ::std::mem::align_of::<_GRWLock>(),
7659        8usize,
7660        concat!("Alignment of ", stringify!(_GRWLock))
7661    );
7662    assert_eq!(
7663        unsafe { &(*(::std::ptr::null::<_GRWLock>())).p as *const _ as usize },
7664        0usize,
7665        concat!(
7666            "Offset of field: ",
7667            stringify!(_GRWLock),
7668            "::",
7669            stringify!(p)
7670        )
7671    );
7672    assert_eq!(
7673        unsafe { &(*(::std::ptr::null::<_GRWLock>())).i as *const _ as usize },
7674        8usize,
7675        concat!(
7676            "Offset of field: ",
7677            stringify!(_GRWLock),
7678            "::",
7679            stringify!(i)
7680        )
7681    );
7682}
7683#[repr(C)]
7684#[derive(Debug, Copy, Clone)]
7685pub struct _GCond {
7686    pub p: gpointer,
7687    pub i: [guint; 2usize],
7688}
7689#[test]
7690fn bindgen_test_layout__GCond() {
7691    assert_eq!(
7692        ::std::mem::size_of::<_GCond>(),
7693        16usize,
7694        concat!("Size of: ", stringify!(_GCond))
7695    );
7696    assert_eq!(
7697        ::std::mem::align_of::<_GCond>(),
7698        8usize,
7699        concat!("Alignment of ", stringify!(_GCond))
7700    );
7701    assert_eq!(
7702        unsafe { &(*(::std::ptr::null::<_GCond>())).p as *const _ as usize },
7703        0usize,
7704        concat!("Offset of field: ", stringify!(_GCond), "::", stringify!(p))
7705    );
7706    assert_eq!(
7707        unsafe { &(*(::std::ptr::null::<_GCond>())).i as *const _ as usize },
7708        8usize,
7709        concat!("Offset of field: ", stringify!(_GCond), "::", stringify!(i))
7710    );
7711}
7712#[repr(C)]
7713#[derive(Debug, Copy, Clone)]
7714pub struct _GRecMutex {
7715    pub p: gpointer,
7716    pub i: [guint; 2usize],
7717}
7718#[test]
7719fn bindgen_test_layout__GRecMutex() {
7720    assert_eq!(
7721        ::std::mem::size_of::<_GRecMutex>(),
7722        16usize,
7723        concat!("Size of: ", stringify!(_GRecMutex))
7724    );
7725    assert_eq!(
7726        ::std::mem::align_of::<_GRecMutex>(),
7727        8usize,
7728        concat!("Alignment of ", stringify!(_GRecMutex))
7729    );
7730    assert_eq!(
7731        unsafe { &(*(::std::ptr::null::<_GRecMutex>())).p as *const _ as usize },
7732        0usize,
7733        concat!(
7734            "Offset of field: ",
7735            stringify!(_GRecMutex),
7736            "::",
7737            stringify!(p)
7738        )
7739    );
7740    assert_eq!(
7741        unsafe { &(*(::std::ptr::null::<_GRecMutex>())).i as *const _ as usize },
7742        8usize,
7743        concat!(
7744            "Offset of field: ",
7745            stringify!(_GRecMutex),
7746            "::",
7747            stringify!(i)
7748        )
7749    );
7750}
7751#[repr(C)]
7752#[derive(Debug, Copy, Clone)]
7753pub struct _GPrivate {
7754    pub p: gpointer,
7755    pub notify: GDestroyNotify,
7756    pub future: [gpointer; 2usize],
7757}
7758#[test]
7759fn bindgen_test_layout__GPrivate() {
7760    assert_eq!(
7761        ::std::mem::size_of::<_GPrivate>(),
7762        32usize,
7763        concat!("Size of: ", stringify!(_GPrivate))
7764    );
7765    assert_eq!(
7766        ::std::mem::align_of::<_GPrivate>(),
7767        8usize,
7768        concat!("Alignment of ", stringify!(_GPrivate))
7769    );
7770    assert_eq!(
7771        unsafe { &(*(::std::ptr::null::<_GPrivate>())).p as *const _ as usize },
7772        0usize,
7773        concat!(
7774            "Offset of field: ",
7775            stringify!(_GPrivate),
7776            "::",
7777            stringify!(p)
7778        )
7779    );
7780    assert_eq!(
7781        unsafe { &(*(::std::ptr::null::<_GPrivate>())).notify as *const _ as usize },
7782        8usize,
7783        concat!(
7784            "Offset of field: ",
7785            stringify!(_GPrivate),
7786            "::",
7787            stringify!(notify)
7788        )
7789    );
7790    assert_eq!(
7791        unsafe { &(*(::std::ptr::null::<_GPrivate>())).future as *const _ as usize },
7792        16usize,
7793        concat!(
7794            "Offset of field: ",
7795            stringify!(_GPrivate),
7796            "::",
7797            stringify!(future)
7798        )
7799    );
7800}
7801pub const GOnceStatus_G_ONCE_STATUS_NOTCALLED: GOnceStatus = 0;
7802pub const GOnceStatus_G_ONCE_STATUS_PROGRESS: GOnceStatus = 1;
7803pub const GOnceStatus_G_ONCE_STATUS_READY: GOnceStatus = 2;
7804pub type GOnceStatus = u32;
7805#[repr(C)]
7806#[derive(Debug, Copy, Clone)]
7807pub struct _GOnce {
7808    pub status: GOnceStatus,
7809    pub retval: gpointer,
7810}
7811#[test]
7812fn bindgen_test_layout__GOnce() {
7813    assert_eq!(
7814        ::std::mem::size_of::<_GOnce>(),
7815        16usize,
7816        concat!("Size of: ", stringify!(_GOnce))
7817    );
7818    assert_eq!(
7819        ::std::mem::align_of::<_GOnce>(),
7820        8usize,
7821        concat!("Alignment of ", stringify!(_GOnce))
7822    );
7823    assert_eq!(
7824        unsafe { &(*(::std::ptr::null::<_GOnce>())).status as *const _ as usize },
7825        0usize,
7826        concat!(
7827            "Offset of field: ",
7828            stringify!(_GOnce),
7829            "::",
7830            stringify!(status)
7831        )
7832    );
7833    assert_eq!(
7834        unsafe { &(*(::std::ptr::null::<_GOnce>())).retval as *const _ as usize },
7835        8usize,
7836        concat!(
7837            "Offset of field: ",
7838            stringify!(_GOnce),
7839            "::",
7840            stringify!(retval)
7841        )
7842    );
7843}
7844extern "C" {
7845    pub fn g_thread_ref(thread: *mut GThread) -> *mut GThread;
7846}
7847extern "C" {
7848    pub fn g_thread_unref(thread: *mut GThread);
7849}
7850extern "C" {
7851    pub fn g_thread_new(name: *const gchar, func: GThreadFunc, data: gpointer) -> *mut GThread;
7852}
7853extern "C" {
7854    pub fn g_thread_try_new(
7855        name: *const gchar,
7856        func: GThreadFunc,
7857        data: gpointer,
7858        error: *mut *mut GError,
7859    ) -> *mut GThread;
7860}
7861extern "C" {
7862    pub fn g_thread_self() -> *mut GThread;
7863}
7864extern "C" {
7865    pub fn g_thread_exit(retval: gpointer);
7866}
7867extern "C" {
7868    pub fn g_thread_join(thread: *mut GThread) -> gpointer;
7869}
7870extern "C" {
7871    pub fn g_thread_yield();
7872}
7873extern "C" {
7874    pub fn g_mutex_init(mutex: *mut GMutex);
7875}
7876extern "C" {
7877    pub fn g_mutex_clear(mutex: *mut GMutex);
7878}
7879extern "C" {
7880    pub fn g_mutex_lock(mutex: *mut GMutex);
7881}
7882extern "C" {
7883    pub fn g_mutex_trylock(mutex: *mut GMutex) -> gboolean;
7884}
7885extern "C" {
7886    pub fn g_mutex_unlock(mutex: *mut GMutex);
7887}
7888extern "C" {
7889    pub fn g_rw_lock_init(rw_lock: *mut GRWLock);
7890}
7891extern "C" {
7892    pub fn g_rw_lock_clear(rw_lock: *mut GRWLock);
7893}
7894extern "C" {
7895    pub fn g_rw_lock_writer_lock(rw_lock: *mut GRWLock);
7896}
7897extern "C" {
7898    pub fn g_rw_lock_writer_trylock(rw_lock: *mut GRWLock) -> gboolean;
7899}
7900extern "C" {
7901    pub fn g_rw_lock_writer_unlock(rw_lock: *mut GRWLock);
7902}
7903extern "C" {
7904    pub fn g_rw_lock_reader_lock(rw_lock: *mut GRWLock);
7905}
7906extern "C" {
7907    pub fn g_rw_lock_reader_trylock(rw_lock: *mut GRWLock) -> gboolean;
7908}
7909extern "C" {
7910    pub fn g_rw_lock_reader_unlock(rw_lock: *mut GRWLock);
7911}
7912extern "C" {
7913    pub fn g_rec_mutex_init(rec_mutex: *mut GRecMutex);
7914}
7915extern "C" {
7916    pub fn g_rec_mutex_clear(rec_mutex: *mut GRecMutex);
7917}
7918extern "C" {
7919    pub fn g_rec_mutex_lock(rec_mutex: *mut GRecMutex);
7920}
7921extern "C" {
7922    pub fn g_rec_mutex_trylock(rec_mutex: *mut GRecMutex) -> gboolean;
7923}
7924extern "C" {
7925    pub fn g_rec_mutex_unlock(rec_mutex: *mut GRecMutex);
7926}
7927extern "C" {
7928    pub fn g_cond_init(cond: *mut GCond);
7929}
7930extern "C" {
7931    pub fn g_cond_clear(cond: *mut GCond);
7932}
7933extern "C" {
7934    pub fn g_cond_wait(cond: *mut GCond, mutex: *mut GMutex);
7935}
7936extern "C" {
7937    pub fn g_cond_signal(cond: *mut GCond);
7938}
7939extern "C" {
7940    pub fn g_cond_broadcast(cond: *mut GCond);
7941}
7942extern "C" {
7943    pub fn g_cond_wait_until(cond: *mut GCond, mutex: *mut GMutex, end_time: gint64) -> gboolean;
7944}
7945extern "C" {
7946    pub fn g_private_get(key: *mut GPrivate) -> gpointer;
7947}
7948extern "C" {
7949    pub fn g_private_set(key: *mut GPrivate, value: gpointer);
7950}
7951extern "C" {
7952    pub fn g_private_replace(key: *mut GPrivate, value: gpointer);
7953}
7954extern "C" {
7955    pub fn g_once_impl(once: *mut GOnce, func: GThreadFunc, arg: gpointer) -> gpointer;
7956}
7957extern "C" {
7958    pub fn g_once_init_enter(location: *mut ::std::os::raw::c_void) -> gboolean;
7959}
7960extern "C" {
7961    pub fn g_once_init_leave(location: *mut ::std::os::raw::c_void, result: gsize);
7962}
7963extern "C" {
7964    pub fn g_get_num_processors() -> guint;
7965}
7966#[doc = " GMutexLocker:"]
7967#[doc = ""]
7968#[doc = " Opaque type. See g_mutex_locker_new() for details."]
7969#[doc = " Since: 2.44"]
7970pub type GMutexLocker = ::std::os::raw::c_void;
7971#[repr(C)]
7972#[derive(Debug, Copy, Clone)]
7973pub struct _GAsyncQueue {
7974    _unused: [u8; 0],
7975}
7976pub type GAsyncQueue = _GAsyncQueue;
7977extern "C" {
7978    pub fn g_async_queue_new() -> *mut GAsyncQueue;
7979}
7980extern "C" {
7981    pub fn g_async_queue_new_full(item_free_func: GDestroyNotify) -> *mut GAsyncQueue;
7982}
7983extern "C" {
7984    pub fn g_async_queue_lock(queue: *mut GAsyncQueue);
7985}
7986extern "C" {
7987    pub fn g_async_queue_unlock(queue: *mut GAsyncQueue);
7988}
7989extern "C" {
7990    pub fn g_async_queue_ref(queue: *mut GAsyncQueue) -> *mut GAsyncQueue;
7991}
7992extern "C" {
7993    pub fn g_async_queue_unref(queue: *mut GAsyncQueue);
7994}
7995extern "C" {
7996    pub fn g_async_queue_ref_unlocked(queue: *mut GAsyncQueue);
7997}
7998extern "C" {
7999    pub fn g_async_queue_unref_and_unlock(queue: *mut GAsyncQueue);
8000}
8001extern "C" {
8002    pub fn g_async_queue_push(queue: *mut GAsyncQueue, data: gpointer);
8003}
8004extern "C" {
8005    pub fn g_async_queue_push_unlocked(queue: *mut GAsyncQueue, data: gpointer);
8006}
8007extern "C" {
8008    pub fn g_async_queue_push_sorted(
8009        queue: *mut GAsyncQueue,
8010        data: gpointer,
8011        func: GCompareDataFunc,
8012        user_data: gpointer,
8013    );
8014}
8015extern "C" {
8016    pub fn g_async_queue_push_sorted_unlocked(
8017        queue: *mut GAsyncQueue,
8018        data: gpointer,
8019        func: GCompareDataFunc,
8020        user_data: gpointer,
8021    );
8022}
8023extern "C" {
8024    pub fn g_async_queue_pop(queue: *mut GAsyncQueue) -> gpointer;
8025}
8026extern "C" {
8027    pub fn g_async_queue_pop_unlocked(queue: *mut GAsyncQueue) -> gpointer;
8028}
8029extern "C" {
8030    pub fn g_async_queue_try_pop(queue: *mut GAsyncQueue) -> gpointer;
8031}
8032extern "C" {
8033    pub fn g_async_queue_try_pop_unlocked(queue: *mut GAsyncQueue) -> gpointer;
8034}
8035extern "C" {
8036    pub fn g_async_queue_timeout_pop(queue: *mut GAsyncQueue, timeout: guint64) -> gpointer;
8037}
8038extern "C" {
8039    pub fn g_async_queue_timeout_pop_unlocked(
8040        queue: *mut GAsyncQueue,
8041        timeout: guint64,
8042    ) -> gpointer;
8043}
8044extern "C" {
8045    pub fn g_async_queue_length(queue: *mut GAsyncQueue) -> gint;
8046}
8047extern "C" {
8048    pub fn g_async_queue_length_unlocked(queue: *mut GAsyncQueue) -> gint;
8049}
8050extern "C" {
8051    pub fn g_async_queue_sort(queue: *mut GAsyncQueue, func: GCompareDataFunc, user_data: gpointer);
8052}
8053extern "C" {
8054    pub fn g_async_queue_sort_unlocked(
8055        queue: *mut GAsyncQueue,
8056        func: GCompareDataFunc,
8057        user_data: gpointer,
8058    );
8059}
8060extern "C" {
8061    pub fn g_async_queue_remove(queue: *mut GAsyncQueue, item: gpointer) -> gboolean;
8062}
8063extern "C" {
8064    pub fn g_async_queue_remove_unlocked(queue: *mut GAsyncQueue, item: gpointer) -> gboolean;
8065}
8066extern "C" {
8067    pub fn g_async_queue_push_front(queue: *mut GAsyncQueue, item: gpointer);
8068}
8069extern "C" {
8070    pub fn g_async_queue_push_front_unlocked(queue: *mut GAsyncQueue, item: gpointer);
8071}
8072extern "C" {
8073    pub fn g_async_queue_timed_pop(queue: *mut GAsyncQueue, end_time: *mut GTimeVal) -> gpointer;
8074}
8075extern "C" {
8076    pub fn g_async_queue_timed_pop_unlocked(
8077        queue: *mut GAsyncQueue,
8078        end_time: *mut GTimeVal,
8079    ) -> gpointer;
8080}
8081pub type sig_atomic_t = __sig_atomic_t;
8082#[repr(C)]
8083#[derive(Copy, Clone)]
8084pub union sigval {
8085    pub sival_int: ::std::os::raw::c_int,
8086    pub sival_ptr: *mut ::std::os::raw::c_void,
8087    _bindgen_union_align: u64,
8088}
8089#[test]
8090fn bindgen_test_layout_sigval() {
8091    assert_eq!(
8092        ::std::mem::size_of::<sigval>(),
8093        8usize,
8094        concat!("Size of: ", stringify!(sigval))
8095    );
8096    assert_eq!(
8097        ::std::mem::align_of::<sigval>(),
8098        8usize,
8099        concat!("Alignment of ", stringify!(sigval))
8100    );
8101    assert_eq!(
8102        unsafe { &(*(::std::ptr::null::<sigval>())).sival_int as *const _ as usize },
8103        0usize,
8104        concat!(
8105            "Offset of field: ",
8106            stringify!(sigval),
8107            "::",
8108            stringify!(sival_int)
8109        )
8110    );
8111    assert_eq!(
8112        unsafe { &(*(::std::ptr::null::<sigval>())).sival_ptr as *const _ as usize },
8113        0usize,
8114        concat!(
8115            "Offset of field: ",
8116            stringify!(sigval),
8117            "::",
8118            stringify!(sival_ptr)
8119        )
8120    );
8121}
8122pub type __sigval_t = sigval;
8123#[repr(C)]
8124#[derive(Copy, Clone)]
8125pub struct siginfo_t {
8126    pub si_signo: ::std::os::raw::c_int,
8127    pub si_errno: ::std::os::raw::c_int,
8128    pub si_code: ::std::os::raw::c_int,
8129    pub __pad0: ::std::os::raw::c_int,
8130    pub _sifields: siginfo_t__bindgen_ty_1,
8131}
8132#[repr(C)]
8133#[derive(Copy, Clone)]
8134pub union siginfo_t__bindgen_ty_1 {
8135    pub _pad: [::std::os::raw::c_int; 28usize],
8136    pub _kill: siginfo_t__bindgen_ty_1__bindgen_ty_1,
8137    pub _timer: siginfo_t__bindgen_ty_1__bindgen_ty_2,
8138    pub _rt: siginfo_t__bindgen_ty_1__bindgen_ty_3,
8139    pub _sigchld: siginfo_t__bindgen_ty_1__bindgen_ty_4,
8140    pub _sigfault: siginfo_t__bindgen_ty_1__bindgen_ty_5,
8141    pub _sigpoll: siginfo_t__bindgen_ty_1__bindgen_ty_6,
8142    pub _sigsys: siginfo_t__bindgen_ty_1__bindgen_ty_7,
8143    _bindgen_union_align: [u64; 14usize],
8144}
8145#[repr(C)]
8146#[derive(Debug, Copy, Clone)]
8147pub struct siginfo_t__bindgen_ty_1__bindgen_ty_1 {
8148    pub si_pid: __pid_t,
8149    pub si_uid: __uid_t,
8150}
8151#[test]
8152fn bindgen_test_layout_siginfo_t__bindgen_ty_1__bindgen_ty_1() {
8153    assert_eq!(
8154        ::std::mem::size_of::<siginfo_t__bindgen_ty_1__bindgen_ty_1>(),
8155        8usize,
8156        concat!(
8157            "Size of: ",
8158            stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_1)
8159        )
8160    );
8161    assert_eq!(
8162        ::std::mem::align_of::<siginfo_t__bindgen_ty_1__bindgen_ty_1>(),
8163        4usize,
8164        concat!(
8165            "Alignment of ",
8166            stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_1)
8167        )
8168    );
8169    assert_eq!(
8170        unsafe {
8171            &(*(::std::ptr::null::<siginfo_t__bindgen_ty_1__bindgen_ty_1>())).si_pid as *const _
8172                as usize
8173        },
8174        0usize,
8175        concat!(
8176            "Offset of field: ",
8177            stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_1),
8178            "::",
8179            stringify!(si_pid)
8180        )
8181    );
8182    assert_eq!(
8183        unsafe {
8184            &(*(::std::ptr::null::<siginfo_t__bindgen_ty_1__bindgen_ty_1>())).si_uid as *const _
8185                as usize
8186        },
8187        4usize,
8188        concat!(
8189            "Offset of field: ",
8190            stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_1),
8191            "::",
8192            stringify!(si_uid)
8193        )
8194    );
8195}
8196#[repr(C)]
8197#[derive(Copy, Clone)]
8198pub struct siginfo_t__bindgen_ty_1__bindgen_ty_2 {
8199    pub si_tid: ::std::os::raw::c_int,
8200    pub si_overrun: ::std::os::raw::c_int,
8201    pub si_sigval: __sigval_t,
8202}
8203#[test]
8204fn bindgen_test_layout_siginfo_t__bindgen_ty_1__bindgen_ty_2() {
8205    assert_eq!(
8206        ::std::mem::size_of::<siginfo_t__bindgen_ty_1__bindgen_ty_2>(),
8207        16usize,
8208        concat!(
8209            "Size of: ",
8210            stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_2)
8211        )
8212    );
8213    assert_eq!(
8214        ::std::mem::align_of::<siginfo_t__bindgen_ty_1__bindgen_ty_2>(),
8215        8usize,
8216        concat!(
8217            "Alignment of ",
8218            stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_2)
8219        )
8220    );
8221    assert_eq!(
8222        unsafe {
8223            &(*(::std::ptr::null::<siginfo_t__bindgen_ty_1__bindgen_ty_2>())).si_tid as *const _
8224                as usize
8225        },
8226        0usize,
8227        concat!(
8228            "Offset of field: ",
8229            stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_2),
8230            "::",
8231            stringify!(si_tid)
8232        )
8233    );
8234    assert_eq!(
8235        unsafe {
8236            &(*(::std::ptr::null::<siginfo_t__bindgen_ty_1__bindgen_ty_2>())).si_overrun as *const _
8237                as usize
8238        },
8239        4usize,
8240        concat!(
8241            "Offset of field: ",
8242            stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_2),
8243            "::",
8244            stringify!(si_overrun)
8245        )
8246    );
8247    assert_eq!(
8248        unsafe {
8249            &(*(::std::ptr::null::<siginfo_t__bindgen_ty_1__bindgen_ty_2>())).si_sigval as *const _
8250                as usize
8251        },
8252        8usize,
8253        concat!(
8254            "Offset of field: ",
8255            stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_2),
8256            "::",
8257            stringify!(si_sigval)
8258        )
8259    );
8260}
8261#[repr(C)]
8262#[derive(Copy, Clone)]
8263pub struct siginfo_t__bindgen_ty_1__bindgen_ty_3 {
8264    pub si_pid: __pid_t,
8265    pub si_uid: __uid_t,
8266    pub si_sigval: __sigval_t,
8267}
8268#[test]
8269fn bindgen_test_layout_siginfo_t__bindgen_ty_1__bindgen_ty_3() {
8270    assert_eq!(
8271        ::std::mem::size_of::<siginfo_t__bindgen_ty_1__bindgen_ty_3>(),
8272        16usize,
8273        concat!(
8274            "Size of: ",
8275            stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_3)
8276        )
8277    );
8278    assert_eq!(
8279        ::std::mem::align_of::<siginfo_t__bindgen_ty_1__bindgen_ty_3>(),
8280        8usize,
8281        concat!(
8282            "Alignment of ",
8283            stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_3)
8284        )
8285    );
8286    assert_eq!(
8287        unsafe {
8288            &(*(::std::ptr::null::<siginfo_t__bindgen_ty_1__bindgen_ty_3>())).si_pid as *const _
8289                as usize
8290        },
8291        0usize,
8292        concat!(
8293            "Offset of field: ",
8294            stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_3),
8295            "::",
8296            stringify!(si_pid)
8297        )
8298    );
8299    assert_eq!(
8300        unsafe {
8301            &(*(::std::ptr::null::<siginfo_t__bindgen_ty_1__bindgen_ty_3>())).si_uid as *const _
8302                as usize
8303        },
8304        4usize,
8305        concat!(
8306            "Offset of field: ",
8307            stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_3),
8308            "::",
8309            stringify!(si_uid)
8310        )
8311    );
8312    assert_eq!(
8313        unsafe {
8314            &(*(::std::ptr::null::<siginfo_t__bindgen_ty_1__bindgen_ty_3>())).si_sigval as *const _
8315                as usize
8316        },
8317        8usize,
8318        concat!(
8319            "Offset of field: ",
8320            stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_3),
8321            "::",
8322            stringify!(si_sigval)
8323        )
8324    );
8325}
8326#[repr(C)]
8327#[derive(Debug, Copy, Clone)]
8328pub struct siginfo_t__bindgen_ty_1__bindgen_ty_4 {
8329    pub si_pid: __pid_t,
8330    pub si_uid: __uid_t,
8331    pub si_status: ::std::os::raw::c_int,
8332    pub si_utime: __clock_t,
8333    pub si_stime: __clock_t,
8334}
8335#[test]
8336fn bindgen_test_layout_siginfo_t__bindgen_ty_1__bindgen_ty_4() {
8337    assert_eq!(
8338        ::std::mem::size_of::<siginfo_t__bindgen_ty_1__bindgen_ty_4>(),
8339        32usize,
8340        concat!(
8341            "Size of: ",
8342            stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_4)
8343        )
8344    );
8345    assert_eq!(
8346        ::std::mem::align_of::<siginfo_t__bindgen_ty_1__bindgen_ty_4>(),
8347        8usize,
8348        concat!(
8349            "Alignment of ",
8350            stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_4)
8351        )
8352    );
8353    assert_eq!(
8354        unsafe {
8355            &(*(::std::ptr::null::<siginfo_t__bindgen_ty_1__bindgen_ty_4>())).si_pid as *const _
8356                as usize
8357        },
8358        0usize,
8359        concat!(
8360            "Offset of field: ",
8361            stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_4),
8362            "::",
8363            stringify!(si_pid)
8364        )
8365    );
8366    assert_eq!(
8367        unsafe {
8368            &(*(::std::ptr::null::<siginfo_t__bindgen_ty_1__bindgen_ty_4>())).si_uid as *const _
8369                as usize
8370        },
8371        4usize,
8372        concat!(
8373            "Offset of field: ",
8374            stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_4),
8375            "::",
8376            stringify!(si_uid)
8377        )
8378    );
8379    assert_eq!(
8380        unsafe {
8381            &(*(::std::ptr::null::<siginfo_t__bindgen_ty_1__bindgen_ty_4>())).si_status as *const _
8382                as usize
8383        },
8384        8usize,
8385        concat!(
8386            "Offset of field: ",
8387            stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_4),
8388            "::",
8389            stringify!(si_status)
8390        )
8391    );
8392    assert_eq!(
8393        unsafe {
8394            &(*(::std::ptr::null::<siginfo_t__bindgen_ty_1__bindgen_ty_4>())).si_utime as *const _
8395                as usize
8396        },
8397        16usize,
8398        concat!(
8399            "Offset of field: ",
8400            stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_4),
8401            "::",
8402            stringify!(si_utime)
8403        )
8404    );
8405    assert_eq!(
8406        unsafe {
8407            &(*(::std::ptr::null::<siginfo_t__bindgen_ty_1__bindgen_ty_4>())).si_stime as *const _
8408                as usize
8409        },
8410        24usize,
8411        concat!(
8412            "Offset of field: ",
8413            stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_4),
8414            "::",
8415            stringify!(si_stime)
8416        )
8417    );
8418}
8419#[repr(C)]
8420#[derive(Copy, Clone)]
8421pub struct siginfo_t__bindgen_ty_1__bindgen_ty_5 {
8422    pub si_addr: *mut ::std::os::raw::c_void,
8423    pub si_addr_lsb: ::std::os::raw::c_short,
8424    pub _bounds: siginfo_t__bindgen_ty_1__bindgen_ty_5__bindgen_ty_1,
8425}
8426#[repr(C)]
8427#[derive(Copy, Clone)]
8428pub union siginfo_t__bindgen_ty_1__bindgen_ty_5__bindgen_ty_1 {
8429    pub _addr_bnd: siginfo_t__bindgen_ty_1__bindgen_ty_5__bindgen_ty_1__bindgen_ty_1,
8430    pub _pkey: __uint32_t,
8431    _bindgen_union_align: [u64; 2usize],
8432}
8433#[repr(C)]
8434#[derive(Debug, Copy, Clone)]
8435pub struct siginfo_t__bindgen_ty_1__bindgen_ty_5__bindgen_ty_1__bindgen_ty_1 {
8436    pub _lower: *mut ::std::os::raw::c_void,
8437    pub _upper: *mut ::std::os::raw::c_void,
8438}
8439#[test]
8440fn bindgen_test_layout_siginfo_t__bindgen_ty_1__bindgen_ty_5__bindgen_ty_1__bindgen_ty_1() {
8441    assert_eq!(
8442        ::std::mem::size_of::<siginfo_t__bindgen_ty_1__bindgen_ty_5__bindgen_ty_1__bindgen_ty_1>(),
8443        16usize,
8444        concat!(
8445            "Size of: ",
8446            stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_5__bindgen_ty_1__bindgen_ty_1)
8447        )
8448    );
8449    assert_eq!(
8450        ::std::mem::align_of::<siginfo_t__bindgen_ty_1__bindgen_ty_5__bindgen_ty_1__bindgen_ty_1>(),
8451        8usize,
8452        concat!(
8453            "Alignment of ",
8454            stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_5__bindgen_ty_1__bindgen_ty_1)
8455        )
8456    );
8457    assert_eq!(
8458        unsafe {
8459            &(*(::std::ptr::null::<
8460                siginfo_t__bindgen_ty_1__bindgen_ty_5__bindgen_ty_1__bindgen_ty_1,
8461            >()))
8462            ._lower as *const _ as usize
8463        },
8464        0usize,
8465        concat!(
8466            "Offset of field: ",
8467            stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_5__bindgen_ty_1__bindgen_ty_1),
8468            "::",
8469            stringify!(_lower)
8470        )
8471    );
8472    assert_eq!(
8473        unsafe {
8474            &(*(::std::ptr::null::<
8475                siginfo_t__bindgen_ty_1__bindgen_ty_5__bindgen_ty_1__bindgen_ty_1,
8476            >()))
8477            ._upper as *const _ as usize
8478        },
8479        8usize,
8480        concat!(
8481            "Offset of field: ",
8482            stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_5__bindgen_ty_1__bindgen_ty_1),
8483            "::",
8484            stringify!(_upper)
8485        )
8486    );
8487}
8488#[test]
8489fn bindgen_test_layout_siginfo_t__bindgen_ty_1__bindgen_ty_5__bindgen_ty_1() {
8490    assert_eq!(
8491        ::std::mem::size_of::<siginfo_t__bindgen_ty_1__bindgen_ty_5__bindgen_ty_1>(),
8492        16usize,
8493        concat!(
8494            "Size of: ",
8495            stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_5__bindgen_ty_1)
8496        )
8497    );
8498    assert_eq!(
8499        ::std::mem::align_of::<siginfo_t__bindgen_ty_1__bindgen_ty_5__bindgen_ty_1>(),
8500        8usize,
8501        concat!(
8502            "Alignment of ",
8503            stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_5__bindgen_ty_1)
8504        )
8505    );
8506    assert_eq!(
8507        unsafe {
8508            &(*(::std::ptr::null::<siginfo_t__bindgen_ty_1__bindgen_ty_5__bindgen_ty_1>()))
8509                ._addr_bnd as *const _ as usize
8510        },
8511        0usize,
8512        concat!(
8513            "Offset of field: ",
8514            stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_5__bindgen_ty_1),
8515            "::",
8516            stringify!(_addr_bnd)
8517        )
8518    );
8519    assert_eq!(
8520        unsafe {
8521            &(*(::std::ptr::null::<siginfo_t__bindgen_ty_1__bindgen_ty_5__bindgen_ty_1>()))._pkey
8522                as *const _ as usize
8523        },
8524        0usize,
8525        concat!(
8526            "Offset of field: ",
8527            stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_5__bindgen_ty_1),
8528            "::",
8529            stringify!(_pkey)
8530        )
8531    );
8532}
8533#[test]
8534fn bindgen_test_layout_siginfo_t__bindgen_ty_1__bindgen_ty_5() {
8535    assert_eq!(
8536        ::std::mem::size_of::<siginfo_t__bindgen_ty_1__bindgen_ty_5>(),
8537        32usize,
8538        concat!(
8539            "Size of: ",
8540            stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_5)
8541        )
8542    );
8543    assert_eq!(
8544        ::std::mem::align_of::<siginfo_t__bindgen_ty_1__bindgen_ty_5>(),
8545        8usize,
8546        concat!(
8547            "Alignment of ",
8548            stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_5)
8549        )
8550    );
8551    assert_eq!(
8552        unsafe {
8553            &(*(::std::ptr::null::<siginfo_t__bindgen_ty_1__bindgen_ty_5>())).si_addr as *const _
8554                as usize
8555        },
8556        0usize,
8557        concat!(
8558            "Offset of field: ",
8559            stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_5),
8560            "::",
8561            stringify!(si_addr)
8562        )
8563    );
8564    assert_eq!(
8565        unsafe {
8566            &(*(::std::ptr::null::<siginfo_t__bindgen_ty_1__bindgen_ty_5>())).si_addr_lsb
8567                as *const _ as usize
8568        },
8569        8usize,
8570        concat!(
8571            "Offset of field: ",
8572            stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_5),
8573            "::",
8574            stringify!(si_addr_lsb)
8575        )
8576    );
8577    assert_eq!(
8578        unsafe {
8579            &(*(::std::ptr::null::<siginfo_t__bindgen_ty_1__bindgen_ty_5>()))._bounds as *const _
8580                as usize
8581        },
8582        16usize,
8583        concat!(
8584            "Offset of field: ",
8585            stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_5),
8586            "::",
8587            stringify!(_bounds)
8588        )
8589    );
8590}
8591#[repr(C)]
8592#[derive(Debug, Copy, Clone)]
8593pub struct siginfo_t__bindgen_ty_1__bindgen_ty_6 {
8594    pub si_band: ::std::os::raw::c_long,
8595    pub si_fd: ::std::os::raw::c_int,
8596}
8597#[test]
8598fn bindgen_test_layout_siginfo_t__bindgen_ty_1__bindgen_ty_6() {
8599    assert_eq!(
8600        ::std::mem::size_of::<siginfo_t__bindgen_ty_1__bindgen_ty_6>(),
8601        16usize,
8602        concat!(
8603            "Size of: ",
8604            stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_6)
8605        )
8606    );
8607    assert_eq!(
8608        ::std::mem::align_of::<siginfo_t__bindgen_ty_1__bindgen_ty_6>(),
8609        8usize,
8610        concat!(
8611            "Alignment of ",
8612            stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_6)
8613        )
8614    );
8615    assert_eq!(
8616        unsafe {
8617            &(*(::std::ptr::null::<siginfo_t__bindgen_ty_1__bindgen_ty_6>())).si_band as *const _
8618                as usize
8619        },
8620        0usize,
8621        concat!(
8622            "Offset of field: ",
8623            stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_6),
8624            "::",
8625            stringify!(si_band)
8626        )
8627    );
8628    assert_eq!(
8629        unsafe {
8630            &(*(::std::ptr::null::<siginfo_t__bindgen_ty_1__bindgen_ty_6>())).si_fd as *const _
8631                as usize
8632        },
8633        8usize,
8634        concat!(
8635            "Offset of field: ",
8636            stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_6),
8637            "::",
8638            stringify!(si_fd)
8639        )
8640    );
8641}
8642#[repr(C)]
8643#[derive(Debug, Copy, Clone)]
8644pub struct siginfo_t__bindgen_ty_1__bindgen_ty_7 {
8645    pub _call_addr: *mut ::std::os::raw::c_void,
8646    pub _syscall: ::std::os::raw::c_int,
8647    pub _arch: ::std::os::raw::c_uint,
8648}
8649#[test]
8650fn bindgen_test_layout_siginfo_t__bindgen_ty_1__bindgen_ty_7() {
8651    assert_eq!(
8652        ::std::mem::size_of::<siginfo_t__bindgen_ty_1__bindgen_ty_7>(),
8653        16usize,
8654        concat!(
8655            "Size of: ",
8656            stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_7)
8657        )
8658    );
8659    assert_eq!(
8660        ::std::mem::align_of::<siginfo_t__bindgen_ty_1__bindgen_ty_7>(),
8661        8usize,
8662        concat!(
8663            "Alignment of ",
8664            stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_7)
8665        )
8666    );
8667    assert_eq!(
8668        unsafe {
8669            &(*(::std::ptr::null::<siginfo_t__bindgen_ty_1__bindgen_ty_7>()))._call_addr as *const _
8670                as usize
8671        },
8672        0usize,
8673        concat!(
8674            "Offset of field: ",
8675            stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_7),
8676            "::",
8677            stringify!(_call_addr)
8678        )
8679    );
8680    assert_eq!(
8681        unsafe {
8682            &(*(::std::ptr::null::<siginfo_t__bindgen_ty_1__bindgen_ty_7>()))._syscall as *const _
8683                as usize
8684        },
8685        8usize,
8686        concat!(
8687            "Offset of field: ",
8688            stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_7),
8689            "::",
8690            stringify!(_syscall)
8691        )
8692    );
8693    assert_eq!(
8694        unsafe {
8695            &(*(::std::ptr::null::<siginfo_t__bindgen_ty_1__bindgen_ty_7>()))._arch as *const _
8696                as usize
8697        },
8698        12usize,
8699        concat!(
8700            "Offset of field: ",
8701            stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_7),
8702            "::",
8703            stringify!(_arch)
8704        )
8705    );
8706}
8707#[test]
8708fn bindgen_test_layout_siginfo_t__bindgen_ty_1() {
8709    assert_eq!(
8710        ::std::mem::size_of::<siginfo_t__bindgen_ty_1>(),
8711        112usize,
8712        concat!("Size of: ", stringify!(siginfo_t__bindgen_ty_1))
8713    );
8714    assert_eq!(
8715        ::std::mem::align_of::<siginfo_t__bindgen_ty_1>(),
8716        8usize,
8717        concat!("Alignment of ", stringify!(siginfo_t__bindgen_ty_1))
8718    );
8719    assert_eq!(
8720        unsafe { &(*(::std::ptr::null::<siginfo_t__bindgen_ty_1>()))._pad as *const _ as usize },
8721        0usize,
8722        concat!(
8723            "Offset of field: ",
8724            stringify!(siginfo_t__bindgen_ty_1),
8725            "::",
8726            stringify!(_pad)
8727        )
8728    );
8729    assert_eq!(
8730        unsafe { &(*(::std::ptr::null::<siginfo_t__bindgen_ty_1>()))._kill as *const _ as usize },
8731        0usize,
8732        concat!(
8733            "Offset of field: ",
8734            stringify!(siginfo_t__bindgen_ty_1),
8735            "::",
8736            stringify!(_kill)
8737        )
8738    );
8739    assert_eq!(
8740        unsafe { &(*(::std::ptr::null::<siginfo_t__bindgen_ty_1>()))._timer as *const _ as usize },
8741        0usize,
8742        concat!(
8743            "Offset of field: ",
8744            stringify!(siginfo_t__bindgen_ty_1),
8745            "::",
8746            stringify!(_timer)
8747        )
8748    );
8749    assert_eq!(
8750        unsafe { &(*(::std::ptr::null::<siginfo_t__bindgen_ty_1>()))._rt as *const _ as usize },
8751        0usize,
8752        concat!(
8753            "Offset of field: ",
8754            stringify!(siginfo_t__bindgen_ty_1),
8755            "::",
8756            stringify!(_rt)
8757        )
8758    );
8759    assert_eq!(
8760        unsafe {
8761            &(*(::std::ptr::null::<siginfo_t__bindgen_ty_1>()))._sigchld as *const _ as usize
8762        },
8763        0usize,
8764        concat!(
8765            "Offset of field: ",
8766            stringify!(siginfo_t__bindgen_ty_1),
8767            "::",
8768            stringify!(_sigchld)
8769        )
8770    );
8771    assert_eq!(
8772        unsafe {
8773            &(*(::std::ptr::null::<siginfo_t__bindgen_ty_1>()))._sigfault as *const _ as usize
8774        },
8775        0usize,
8776        concat!(
8777            "Offset of field: ",
8778            stringify!(siginfo_t__bindgen_ty_1),
8779            "::",
8780            stringify!(_sigfault)
8781        )
8782    );
8783    assert_eq!(
8784        unsafe {
8785            &(*(::std::ptr::null::<siginfo_t__bindgen_ty_1>()))._sigpoll as *const _ as usize
8786        },
8787        0usize,
8788        concat!(
8789            "Offset of field: ",
8790            stringify!(siginfo_t__bindgen_ty_1),
8791            "::",
8792            stringify!(_sigpoll)
8793        )
8794    );
8795    assert_eq!(
8796        unsafe { &(*(::std::ptr::null::<siginfo_t__bindgen_ty_1>()))._sigsys as *const _ as usize },
8797        0usize,
8798        concat!(
8799            "Offset of field: ",
8800            stringify!(siginfo_t__bindgen_ty_1),
8801            "::",
8802            stringify!(_sigsys)
8803        )
8804    );
8805}
8806#[test]
8807fn bindgen_test_layout_siginfo_t() {
8808    assert_eq!(
8809        ::std::mem::size_of::<siginfo_t>(),
8810        128usize,
8811        concat!("Size of: ", stringify!(siginfo_t))
8812    );
8813    assert_eq!(
8814        ::std::mem::align_of::<siginfo_t>(),
8815        8usize,
8816        concat!("Alignment of ", stringify!(siginfo_t))
8817    );
8818    assert_eq!(
8819        unsafe { &(*(::std::ptr::null::<siginfo_t>())).si_signo as *const _ as usize },
8820        0usize,
8821        concat!(
8822            "Offset of field: ",
8823            stringify!(siginfo_t),
8824            "::",
8825            stringify!(si_signo)
8826        )
8827    );
8828    assert_eq!(
8829        unsafe { &(*(::std::ptr::null::<siginfo_t>())).si_errno as *const _ as usize },
8830        4usize,
8831        concat!(
8832            "Offset of field: ",
8833            stringify!(siginfo_t),
8834            "::",
8835            stringify!(si_errno)
8836        )
8837    );
8838    assert_eq!(
8839        unsafe { &(*(::std::ptr::null::<siginfo_t>())).si_code as *const _ as usize },
8840        8usize,
8841        concat!(
8842            "Offset of field: ",
8843            stringify!(siginfo_t),
8844            "::",
8845            stringify!(si_code)
8846        )
8847    );
8848    assert_eq!(
8849        unsafe { &(*(::std::ptr::null::<siginfo_t>())).__pad0 as *const _ as usize },
8850        12usize,
8851        concat!(
8852            "Offset of field: ",
8853            stringify!(siginfo_t),
8854            "::",
8855            stringify!(__pad0)
8856        )
8857    );
8858    assert_eq!(
8859        unsafe { &(*(::std::ptr::null::<siginfo_t>()))._sifields as *const _ as usize },
8860        16usize,
8861        concat!(
8862            "Offset of field: ",
8863            stringify!(siginfo_t),
8864            "::",
8865            stringify!(_sifields)
8866        )
8867    );
8868}
8869pub const SI_ASYNCNL: _bindgen_ty_6 = -60;
8870pub const SI_TKILL: _bindgen_ty_6 = -6;
8871pub const SI_SIGIO: _bindgen_ty_6 = -5;
8872pub const SI_ASYNCIO: _bindgen_ty_6 = -4;
8873pub const SI_MESGQ: _bindgen_ty_6 = -3;
8874pub const SI_TIMER: _bindgen_ty_6 = -2;
8875pub const SI_QUEUE: _bindgen_ty_6 = -1;
8876pub const SI_USER: _bindgen_ty_6 = 0;
8877pub const SI_KERNEL: _bindgen_ty_6 = 128;
8878pub type _bindgen_ty_6 = i32;
8879pub const ILL_ILLOPC: _bindgen_ty_7 = 1;
8880pub const ILL_ILLOPN: _bindgen_ty_7 = 2;
8881pub const ILL_ILLADR: _bindgen_ty_7 = 3;
8882pub const ILL_ILLTRP: _bindgen_ty_7 = 4;
8883pub const ILL_PRVOPC: _bindgen_ty_7 = 5;
8884pub const ILL_PRVREG: _bindgen_ty_7 = 6;
8885pub const ILL_COPROC: _bindgen_ty_7 = 7;
8886pub const ILL_BADSTK: _bindgen_ty_7 = 8;
8887pub type _bindgen_ty_7 = u32;
8888pub const FPE_INTDIV: _bindgen_ty_8 = 1;
8889pub const FPE_INTOVF: _bindgen_ty_8 = 2;
8890pub const FPE_FLTDIV: _bindgen_ty_8 = 3;
8891pub const FPE_FLTOVF: _bindgen_ty_8 = 4;
8892pub const FPE_FLTUND: _bindgen_ty_8 = 5;
8893pub const FPE_FLTRES: _bindgen_ty_8 = 6;
8894pub const FPE_FLTINV: _bindgen_ty_8 = 7;
8895pub const FPE_FLTSUB: _bindgen_ty_8 = 8;
8896pub type _bindgen_ty_8 = u32;
8897pub const SEGV_MAPERR: _bindgen_ty_9 = 1;
8898pub const SEGV_ACCERR: _bindgen_ty_9 = 2;
8899pub const SEGV_BNDERR: _bindgen_ty_9 = 3;
8900pub const SEGV_PKUERR: _bindgen_ty_9 = 4;
8901pub type _bindgen_ty_9 = u32;
8902pub const BUS_ADRALN: _bindgen_ty_10 = 1;
8903pub const BUS_ADRERR: _bindgen_ty_10 = 2;
8904pub const BUS_OBJERR: _bindgen_ty_10 = 3;
8905pub const BUS_MCEERR_AR: _bindgen_ty_10 = 4;
8906pub const BUS_MCEERR_AO: _bindgen_ty_10 = 5;
8907pub type _bindgen_ty_10 = u32;
8908pub const CLD_EXITED: _bindgen_ty_11 = 1;
8909pub const CLD_KILLED: _bindgen_ty_11 = 2;
8910pub const CLD_DUMPED: _bindgen_ty_11 = 3;
8911pub const CLD_TRAPPED: _bindgen_ty_11 = 4;
8912pub const CLD_STOPPED: _bindgen_ty_11 = 5;
8913pub const CLD_CONTINUED: _bindgen_ty_11 = 6;
8914pub type _bindgen_ty_11 = u32;
8915pub const POLL_IN: _bindgen_ty_12 = 1;
8916pub const POLL_OUT: _bindgen_ty_12 = 2;
8917pub const POLL_MSG: _bindgen_ty_12 = 3;
8918pub const POLL_ERR: _bindgen_ty_12 = 4;
8919pub const POLL_PRI: _bindgen_ty_12 = 5;
8920pub const POLL_HUP: _bindgen_ty_12 = 6;
8921pub type _bindgen_ty_12 = u32;
8922pub type sigval_t = __sigval_t;
8923#[repr(C)]
8924#[derive(Copy, Clone)]
8925pub struct sigevent {
8926    pub sigev_value: __sigval_t,
8927    pub sigev_signo: ::std::os::raw::c_int,
8928    pub sigev_notify: ::std::os::raw::c_int,
8929    pub _sigev_un: sigevent__bindgen_ty_1,
8930}
8931#[repr(C)]
8932#[derive(Copy, Clone)]
8933pub union sigevent__bindgen_ty_1 {
8934    pub _pad: [::std::os::raw::c_int; 12usize],
8935    pub _tid: __pid_t,
8936    pub _sigev_thread: sigevent__bindgen_ty_1__bindgen_ty_1,
8937    _bindgen_union_align: [u64; 6usize],
8938}
8939#[repr(C)]
8940#[derive(Debug, Copy, Clone)]
8941pub struct sigevent__bindgen_ty_1__bindgen_ty_1 {
8942    pub _function: ::std::option::Option<unsafe extern "C" fn(arg1: __sigval_t)>,
8943    pub _attribute: *mut pthread_attr_t,
8944}
8945#[test]
8946fn bindgen_test_layout_sigevent__bindgen_ty_1__bindgen_ty_1() {
8947    assert_eq!(
8948        ::std::mem::size_of::<sigevent__bindgen_ty_1__bindgen_ty_1>(),
8949        16usize,
8950        concat!(
8951            "Size of: ",
8952            stringify!(sigevent__bindgen_ty_1__bindgen_ty_1)
8953        )
8954    );
8955    assert_eq!(
8956        ::std::mem::align_of::<sigevent__bindgen_ty_1__bindgen_ty_1>(),
8957        8usize,
8958        concat!(
8959            "Alignment of ",
8960            stringify!(sigevent__bindgen_ty_1__bindgen_ty_1)
8961        )
8962    );
8963    assert_eq!(
8964        unsafe {
8965            &(*(::std::ptr::null::<sigevent__bindgen_ty_1__bindgen_ty_1>()))._function as *const _
8966                as usize
8967        },
8968        0usize,
8969        concat!(
8970            "Offset of field: ",
8971            stringify!(sigevent__bindgen_ty_1__bindgen_ty_1),
8972            "::",
8973            stringify!(_function)
8974        )
8975    );
8976    assert_eq!(
8977        unsafe {
8978            &(*(::std::ptr::null::<sigevent__bindgen_ty_1__bindgen_ty_1>()))._attribute as *const _
8979                as usize
8980        },
8981        8usize,
8982        concat!(
8983            "Offset of field: ",
8984            stringify!(sigevent__bindgen_ty_1__bindgen_ty_1),
8985            "::",
8986            stringify!(_attribute)
8987        )
8988    );
8989}
8990#[test]
8991fn bindgen_test_layout_sigevent__bindgen_ty_1() {
8992    assert_eq!(
8993        ::std::mem::size_of::<sigevent__bindgen_ty_1>(),
8994        48usize,
8995        concat!("Size of: ", stringify!(sigevent__bindgen_ty_1))
8996    );
8997    assert_eq!(
8998        ::std::mem::align_of::<sigevent__bindgen_ty_1>(),
8999        8usize,
9000        concat!("Alignment of ", stringify!(sigevent__bindgen_ty_1))
9001    );
9002    assert_eq!(
9003        unsafe { &(*(::std::ptr::null::<sigevent__bindgen_ty_1>()))._pad as *const _ as usize },
9004        0usize,
9005        concat!(
9006            "Offset of field: ",
9007            stringify!(sigevent__bindgen_ty_1),
9008            "::",
9009            stringify!(_pad)
9010        )
9011    );
9012    assert_eq!(
9013        unsafe { &(*(::std::ptr::null::<sigevent__bindgen_ty_1>()))._tid as *const _ as usize },
9014        0usize,
9015        concat!(
9016            "Offset of field: ",
9017            stringify!(sigevent__bindgen_ty_1),
9018            "::",
9019            stringify!(_tid)
9020        )
9021    );
9022    assert_eq!(
9023        unsafe {
9024            &(*(::std::ptr::null::<sigevent__bindgen_ty_1>()))._sigev_thread as *const _ as usize
9025        },
9026        0usize,
9027        concat!(
9028            "Offset of field: ",
9029            stringify!(sigevent__bindgen_ty_1),
9030            "::",
9031            stringify!(_sigev_thread)
9032        )
9033    );
9034}
9035#[test]
9036fn bindgen_test_layout_sigevent() {
9037    assert_eq!(
9038        ::std::mem::size_of::<sigevent>(),
9039        64usize,
9040        concat!("Size of: ", stringify!(sigevent))
9041    );
9042    assert_eq!(
9043        ::std::mem::align_of::<sigevent>(),
9044        8usize,
9045        concat!("Alignment of ", stringify!(sigevent))
9046    );
9047    assert_eq!(
9048        unsafe { &(*(::std::ptr::null::<sigevent>())).sigev_value as *const _ as usize },
9049        0usize,
9050        concat!(
9051            "Offset of field: ",
9052            stringify!(sigevent),
9053            "::",
9054            stringify!(sigev_value)
9055        )
9056    );
9057    assert_eq!(
9058        unsafe { &(*(::std::ptr::null::<sigevent>())).sigev_signo as *const _ as usize },
9059        8usize,
9060        concat!(
9061            "Offset of field: ",
9062            stringify!(sigevent),
9063            "::",
9064            stringify!(sigev_signo)
9065        )
9066    );
9067    assert_eq!(
9068        unsafe { &(*(::std::ptr::null::<sigevent>())).sigev_notify as *const _ as usize },
9069        12usize,
9070        concat!(
9071            "Offset of field: ",
9072            stringify!(sigevent),
9073            "::",
9074            stringify!(sigev_notify)
9075        )
9076    );
9077    assert_eq!(
9078        unsafe { &(*(::std::ptr::null::<sigevent>()))._sigev_un as *const _ as usize },
9079        16usize,
9080        concat!(
9081            "Offset of field: ",
9082            stringify!(sigevent),
9083            "::",
9084            stringify!(_sigev_un)
9085        )
9086    );
9087}
9088pub type sigevent_t = sigevent;
9089pub const SIGEV_SIGNAL: _bindgen_ty_13 = 0;
9090pub const SIGEV_NONE: _bindgen_ty_13 = 1;
9091pub const SIGEV_THREAD: _bindgen_ty_13 = 2;
9092pub const SIGEV_THREAD_ID: _bindgen_ty_13 = 4;
9093pub type _bindgen_ty_13 = u32;
9094pub type __sighandler_t = ::std::option::Option<unsafe extern "C" fn(arg1: ::std::os::raw::c_int)>;
9095extern "C" {
9096    pub fn __sysv_signal(__sig: ::std::os::raw::c_int, __handler: __sighandler_t)
9097        -> __sighandler_t;
9098}
9099extern "C" {
9100    pub fn signal(__sig: ::std::os::raw::c_int, __handler: __sighandler_t) -> __sighandler_t;
9101}
9102extern "C" {
9103    pub fn kill(__pid: __pid_t, __sig: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
9104}
9105extern "C" {
9106    pub fn killpg(__pgrp: __pid_t, __sig: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
9107}
9108extern "C" {
9109    pub fn raise(__sig: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
9110}
9111extern "C" {
9112    pub fn ssignal(__sig: ::std::os::raw::c_int, __handler: __sighandler_t) -> __sighandler_t;
9113}
9114extern "C" {
9115    pub fn gsignal(__sig: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
9116}
9117extern "C" {
9118    pub fn psignal(__sig: ::std::os::raw::c_int, __s: *const ::std::os::raw::c_char);
9119}
9120extern "C" {
9121    pub fn psiginfo(__pinfo: *const siginfo_t, __s: *const ::std::os::raw::c_char);
9122}
9123extern "C" {
9124    pub fn sigblock(__mask: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
9125}
9126extern "C" {
9127    pub fn sigsetmask(__mask: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
9128}
9129extern "C" {
9130    pub fn siggetmask() -> ::std::os::raw::c_int;
9131}
9132pub type sig_t = __sighandler_t;
9133extern "C" {
9134    pub fn sigemptyset(__set: *mut sigset_t) -> ::std::os::raw::c_int;
9135}
9136extern "C" {
9137    pub fn sigfillset(__set: *mut sigset_t) -> ::std::os::raw::c_int;
9138}
9139extern "C" {
9140    pub fn sigaddset(__set: *mut sigset_t, __signo: ::std::os::raw::c_int)
9141        -> ::std::os::raw::c_int;
9142}
9143extern "C" {
9144    pub fn sigdelset(__set: *mut sigset_t, __signo: ::std::os::raw::c_int)
9145        -> ::std::os::raw::c_int;
9146}
9147extern "C" {
9148    pub fn sigismember(
9149        __set: *const sigset_t,
9150        __signo: ::std::os::raw::c_int,
9151    ) -> ::std::os::raw::c_int;
9152}
9153#[repr(C)]
9154#[derive(Copy, Clone)]
9155pub struct sigaction {
9156    pub __sigaction_handler: sigaction__bindgen_ty_1,
9157    pub sa_mask: __sigset_t,
9158    pub sa_flags: ::std::os::raw::c_int,
9159    pub sa_restorer: ::std::option::Option<unsafe extern "C" fn()>,
9160}
9161#[repr(C)]
9162#[derive(Copy, Clone)]
9163pub union sigaction__bindgen_ty_1 {
9164    pub sa_handler: __sighandler_t,
9165    pub sa_sigaction: ::std::option::Option<
9166        unsafe extern "C" fn(
9167            arg1: ::std::os::raw::c_int,
9168            arg2: *mut siginfo_t,
9169            arg3: *mut ::std::os::raw::c_void,
9170        ),
9171    >,
9172    _bindgen_union_align: u64,
9173}
9174#[test]
9175fn bindgen_test_layout_sigaction__bindgen_ty_1() {
9176    assert_eq!(
9177        ::std::mem::size_of::<sigaction__bindgen_ty_1>(),
9178        8usize,
9179        concat!("Size of: ", stringify!(sigaction__bindgen_ty_1))
9180    );
9181    assert_eq!(
9182        ::std::mem::align_of::<sigaction__bindgen_ty_1>(),
9183        8usize,
9184        concat!("Alignment of ", stringify!(sigaction__bindgen_ty_1))
9185    );
9186    assert_eq!(
9187        unsafe {
9188            &(*(::std::ptr::null::<sigaction__bindgen_ty_1>())).sa_handler as *const _ as usize
9189        },
9190        0usize,
9191        concat!(
9192            "Offset of field: ",
9193            stringify!(sigaction__bindgen_ty_1),
9194            "::",
9195            stringify!(sa_handler)
9196        )
9197    );
9198    assert_eq!(
9199        unsafe {
9200            &(*(::std::ptr::null::<sigaction__bindgen_ty_1>())).sa_sigaction as *const _ as usize
9201        },
9202        0usize,
9203        concat!(
9204            "Offset of field: ",
9205            stringify!(sigaction__bindgen_ty_1),
9206            "::",
9207            stringify!(sa_sigaction)
9208        )
9209    );
9210}
9211#[test]
9212fn bindgen_test_layout_sigaction() {
9213    assert_eq!(
9214        ::std::mem::size_of::<sigaction>(),
9215        152usize,
9216        concat!("Size of: ", stringify!(sigaction))
9217    );
9218    assert_eq!(
9219        ::std::mem::align_of::<sigaction>(),
9220        8usize,
9221        concat!("Alignment of ", stringify!(sigaction))
9222    );
9223    assert_eq!(
9224        unsafe { &(*(::std::ptr::null::<sigaction>())).__sigaction_handler as *const _ as usize },
9225        0usize,
9226        concat!(
9227            "Offset of field: ",
9228            stringify!(sigaction),
9229            "::",
9230            stringify!(__sigaction_handler)
9231        )
9232    );
9233    assert_eq!(
9234        unsafe { &(*(::std::ptr::null::<sigaction>())).sa_mask as *const _ as usize },
9235        8usize,
9236        concat!(
9237            "Offset of field: ",
9238            stringify!(sigaction),
9239            "::",
9240            stringify!(sa_mask)
9241        )
9242    );
9243    assert_eq!(
9244        unsafe { &(*(::std::ptr::null::<sigaction>())).sa_flags as *const _ as usize },
9245        136usize,
9246        concat!(
9247            "Offset of field: ",
9248            stringify!(sigaction),
9249            "::",
9250            stringify!(sa_flags)
9251        )
9252    );
9253    assert_eq!(
9254        unsafe { &(*(::std::ptr::null::<sigaction>())).sa_restorer as *const _ as usize },
9255        144usize,
9256        concat!(
9257            "Offset of field: ",
9258            stringify!(sigaction),
9259            "::",
9260            stringify!(sa_restorer)
9261        )
9262    );
9263}
9264extern "C" {
9265    pub fn sigprocmask(
9266        __how: ::std::os::raw::c_int,
9267        __set: *const sigset_t,
9268        __oset: *mut sigset_t,
9269    ) -> ::std::os::raw::c_int;
9270}
9271extern "C" {
9272    pub fn sigsuspend(__set: *const sigset_t) -> ::std::os::raw::c_int;
9273}
9274extern "C" {
9275    pub fn sigaction(
9276        __sig: ::std::os::raw::c_int,
9277        __act: *const sigaction,
9278        __oact: *mut sigaction,
9279    ) -> ::std::os::raw::c_int;
9280}
9281extern "C" {
9282    pub fn sigpending(__set: *mut sigset_t) -> ::std::os::raw::c_int;
9283}
9284extern "C" {
9285    pub fn sigwait(
9286        __set: *const sigset_t,
9287        __sig: *mut ::std::os::raw::c_int,
9288    ) -> ::std::os::raw::c_int;
9289}
9290extern "C" {
9291    pub fn sigwaitinfo(__set: *const sigset_t, __info: *mut siginfo_t) -> ::std::os::raw::c_int;
9292}
9293extern "C" {
9294    pub fn sigtimedwait(
9295        __set: *const sigset_t,
9296        __info: *mut siginfo_t,
9297        __timeout: *const timespec,
9298    ) -> ::std::os::raw::c_int;
9299}
9300extern "C" {
9301    pub fn sigqueue(
9302        __pid: __pid_t,
9303        __sig: ::std::os::raw::c_int,
9304        __val: sigval,
9305    ) -> ::std::os::raw::c_int;
9306}
9307extern "C" {
9308    pub static mut _sys_siglist: [*const ::std::os::raw::c_char; 65usize];
9309}
9310extern "C" {
9311    pub static mut sys_siglist: [*const ::std::os::raw::c_char; 65usize];
9312}
9313#[repr(C)]
9314#[derive(Debug, Copy, Clone)]
9315pub struct _fpx_sw_bytes {
9316    pub magic1: __uint32_t,
9317    pub extended_size: __uint32_t,
9318    pub xstate_bv: __uint64_t,
9319    pub xstate_size: __uint32_t,
9320    pub __glibc_reserved1: [__uint32_t; 7usize],
9321}
9322#[test]
9323fn bindgen_test_layout__fpx_sw_bytes() {
9324    assert_eq!(
9325        ::std::mem::size_of::<_fpx_sw_bytes>(),
9326        48usize,
9327        concat!("Size of: ", stringify!(_fpx_sw_bytes))
9328    );
9329    assert_eq!(
9330        ::std::mem::align_of::<_fpx_sw_bytes>(),
9331        8usize,
9332        concat!("Alignment of ", stringify!(_fpx_sw_bytes))
9333    );
9334    assert_eq!(
9335        unsafe { &(*(::std::ptr::null::<_fpx_sw_bytes>())).magic1 as *const _ as usize },
9336        0usize,
9337        concat!(
9338            "Offset of field: ",
9339            stringify!(_fpx_sw_bytes),
9340            "::",
9341            stringify!(magic1)
9342        )
9343    );
9344    assert_eq!(
9345        unsafe { &(*(::std::ptr::null::<_fpx_sw_bytes>())).extended_size as *const _ as usize },
9346        4usize,
9347        concat!(
9348            "Offset of field: ",
9349            stringify!(_fpx_sw_bytes),
9350            "::",
9351            stringify!(extended_size)
9352        )
9353    );
9354    assert_eq!(
9355        unsafe { &(*(::std::ptr::null::<_fpx_sw_bytes>())).xstate_bv as *const _ as usize },
9356        8usize,
9357        concat!(
9358            "Offset of field: ",
9359            stringify!(_fpx_sw_bytes),
9360            "::",
9361            stringify!(xstate_bv)
9362        )
9363    );
9364    assert_eq!(
9365        unsafe { &(*(::std::ptr::null::<_fpx_sw_bytes>())).xstate_size as *const _ as usize },
9366        16usize,
9367        concat!(
9368            "Offset of field: ",
9369            stringify!(_fpx_sw_bytes),
9370            "::",
9371            stringify!(xstate_size)
9372        )
9373    );
9374    assert_eq!(
9375        unsafe { &(*(::std::ptr::null::<_fpx_sw_bytes>())).__glibc_reserved1 as *const _ as usize },
9376        20usize,
9377        concat!(
9378            "Offset of field: ",
9379            stringify!(_fpx_sw_bytes),
9380            "::",
9381            stringify!(__glibc_reserved1)
9382        )
9383    );
9384}
9385#[repr(C)]
9386#[derive(Debug, Copy, Clone)]
9387pub struct _fpreg {
9388    pub significand: [::std::os::raw::c_ushort; 4usize],
9389    pub exponent: ::std::os::raw::c_ushort,
9390}
9391#[test]
9392fn bindgen_test_layout__fpreg() {
9393    assert_eq!(
9394        ::std::mem::size_of::<_fpreg>(),
9395        10usize,
9396        concat!("Size of: ", stringify!(_fpreg))
9397    );
9398    assert_eq!(
9399        ::std::mem::align_of::<_fpreg>(),
9400        2usize,
9401        concat!("Alignment of ", stringify!(_fpreg))
9402    );
9403    assert_eq!(
9404        unsafe { &(*(::std::ptr::null::<_fpreg>())).significand as *const _ as usize },
9405        0usize,
9406        concat!(
9407            "Offset of field: ",
9408            stringify!(_fpreg),
9409            "::",
9410            stringify!(significand)
9411        )
9412    );
9413    assert_eq!(
9414        unsafe { &(*(::std::ptr::null::<_fpreg>())).exponent as *const _ as usize },
9415        8usize,
9416        concat!(
9417            "Offset of field: ",
9418            stringify!(_fpreg),
9419            "::",
9420            stringify!(exponent)
9421        )
9422    );
9423}
9424#[repr(C)]
9425#[derive(Debug, Copy, Clone)]
9426pub struct _fpxreg {
9427    pub significand: [::std::os::raw::c_ushort; 4usize],
9428    pub exponent: ::std::os::raw::c_ushort,
9429    pub __glibc_reserved1: [::std::os::raw::c_ushort; 3usize],
9430}
9431#[test]
9432fn bindgen_test_layout__fpxreg() {
9433    assert_eq!(
9434        ::std::mem::size_of::<_fpxreg>(),
9435        16usize,
9436        concat!("Size of: ", stringify!(_fpxreg))
9437    );
9438    assert_eq!(
9439        ::std::mem::align_of::<_fpxreg>(),
9440        2usize,
9441        concat!("Alignment of ", stringify!(_fpxreg))
9442    );
9443    assert_eq!(
9444        unsafe { &(*(::std::ptr::null::<_fpxreg>())).significand as *const _ as usize },
9445        0usize,
9446        concat!(
9447            "Offset of field: ",
9448            stringify!(_fpxreg),
9449            "::",
9450            stringify!(significand)
9451        )
9452    );
9453    assert_eq!(
9454        unsafe { &(*(::std::ptr::null::<_fpxreg>())).exponent as *const _ as usize },
9455        8usize,
9456        concat!(
9457            "Offset of field: ",
9458            stringify!(_fpxreg),
9459            "::",
9460            stringify!(exponent)
9461        )
9462    );
9463    assert_eq!(
9464        unsafe { &(*(::std::ptr::null::<_fpxreg>())).__glibc_reserved1 as *const _ as usize },
9465        10usize,
9466        concat!(
9467            "Offset of field: ",
9468            stringify!(_fpxreg),
9469            "::",
9470            stringify!(__glibc_reserved1)
9471        )
9472    );
9473}
9474#[repr(C)]
9475#[derive(Debug, Copy, Clone)]
9476pub struct _xmmreg {
9477    pub element: [__uint32_t; 4usize],
9478}
9479#[test]
9480fn bindgen_test_layout__xmmreg() {
9481    assert_eq!(
9482        ::std::mem::size_of::<_xmmreg>(),
9483        16usize,
9484        concat!("Size of: ", stringify!(_xmmreg))
9485    );
9486    assert_eq!(
9487        ::std::mem::align_of::<_xmmreg>(),
9488        4usize,
9489        concat!("Alignment of ", stringify!(_xmmreg))
9490    );
9491    assert_eq!(
9492        unsafe { &(*(::std::ptr::null::<_xmmreg>())).element as *const _ as usize },
9493        0usize,
9494        concat!(
9495            "Offset of field: ",
9496            stringify!(_xmmreg),
9497            "::",
9498            stringify!(element)
9499        )
9500    );
9501}
9502#[repr(C)]
9503#[derive(Debug, Copy, Clone)]
9504pub struct _fpstate {
9505    pub cwd: __uint16_t,
9506    pub swd: __uint16_t,
9507    pub ftw: __uint16_t,
9508    pub fop: __uint16_t,
9509    pub rip: __uint64_t,
9510    pub rdp: __uint64_t,
9511    pub mxcsr: __uint32_t,
9512    pub mxcr_mask: __uint32_t,
9513    pub _st: [_fpxreg; 8usize],
9514    pub _xmm: [_xmmreg; 16usize],
9515    pub __glibc_reserved1: [__uint32_t; 24usize],
9516}
9517#[test]
9518fn bindgen_test_layout__fpstate() {
9519    assert_eq!(
9520        ::std::mem::size_of::<_fpstate>(),
9521        512usize,
9522        concat!("Size of: ", stringify!(_fpstate))
9523    );
9524    assert_eq!(
9525        ::std::mem::align_of::<_fpstate>(),
9526        8usize,
9527        concat!("Alignment of ", stringify!(_fpstate))
9528    );
9529    assert_eq!(
9530        unsafe { &(*(::std::ptr::null::<_fpstate>())).cwd as *const _ as usize },
9531        0usize,
9532        concat!(
9533            "Offset of field: ",
9534            stringify!(_fpstate),
9535            "::",
9536            stringify!(cwd)
9537        )
9538    );
9539    assert_eq!(
9540        unsafe { &(*(::std::ptr::null::<_fpstate>())).swd as *const _ as usize },
9541        2usize,
9542        concat!(
9543            "Offset of field: ",
9544            stringify!(_fpstate),
9545            "::",
9546            stringify!(swd)
9547        )
9548    );
9549    assert_eq!(
9550        unsafe { &(*(::std::ptr::null::<_fpstate>())).ftw as *const _ as usize },
9551        4usize,
9552        concat!(
9553            "Offset of field: ",
9554            stringify!(_fpstate),
9555            "::",
9556            stringify!(ftw)
9557        )
9558    );
9559    assert_eq!(
9560        unsafe { &(*(::std::ptr::null::<_fpstate>())).fop as *const _ as usize },
9561        6usize,
9562        concat!(
9563            "Offset of field: ",
9564            stringify!(_fpstate),
9565            "::",
9566            stringify!(fop)
9567        )
9568    );
9569    assert_eq!(
9570        unsafe { &(*(::std::ptr::null::<_fpstate>())).rip as *const _ as usize },
9571        8usize,
9572        concat!(
9573            "Offset of field: ",
9574            stringify!(_fpstate),
9575            "::",
9576            stringify!(rip)
9577        )
9578    );
9579    assert_eq!(
9580        unsafe { &(*(::std::ptr::null::<_fpstate>())).rdp as *const _ as usize },
9581        16usize,
9582        concat!(
9583            "Offset of field: ",
9584            stringify!(_fpstate),
9585            "::",
9586            stringify!(rdp)
9587        )
9588    );
9589    assert_eq!(
9590        unsafe { &(*(::std::ptr::null::<_fpstate>())).mxcsr as *const _ as usize },
9591        24usize,
9592        concat!(
9593            "Offset of field: ",
9594            stringify!(_fpstate),
9595            "::",
9596            stringify!(mxcsr)
9597        )
9598    );
9599    assert_eq!(
9600        unsafe { &(*(::std::ptr::null::<_fpstate>())).mxcr_mask as *const _ as usize },
9601        28usize,
9602        concat!(
9603            "Offset of field: ",
9604            stringify!(_fpstate),
9605            "::",
9606            stringify!(mxcr_mask)
9607        )
9608    );
9609    assert_eq!(
9610        unsafe { &(*(::std::ptr::null::<_fpstate>()))._st as *const _ as usize },
9611        32usize,
9612        concat!(
9613            "Offset of field: ",
9614            stringify!(_fpstate),
9615            "::",
9616            stringify!(_st)
9617        )
9618    );
9619    assert_eq!(
9620        unsafe { &(*(::std::ptr::null::<_fpstate>()))._xmm as *const _ as usize },
9621        160usize,
9622        concat!(
9623            "Offset of field: ",
9624            stringify!(_fpstate),
9625            "::",
9626            stringify!(_xmm)
9627        )
9628    );
9629    assert_eq!(
9630        unsafe { &(*(::std::ptr::null::<_fpstate>())).__glibc_reserved1 as *const _ as usize },
9631        416usize,
9632        concat!(
9633            "Offset of field: ",
9634            stringify!(_fpstate),
9635            "::",
9636            stringify!(__glibc_reserved1)
9637        )
9638    );
9639}
9640#[repr(C)]
9641#[derive(Copy, Clone)]
9642pub struct sigcontext {
9643    pub r8: __uint64_t,
9644    pub r9: __uint64_t,
9645    pub r10: __uint64_t,
9646    pub r11: __uint64_t,
9647    pub r12: __uint64_t,
9648    pub r13: __uint64_t,
9649    pub r14: __uint64_t,
9650    pub r15: __uint64_t,
9651    pub rdi: __uint64_t,
9652    pub rsi: __uint64_t,
9653    pub rbp: __uint64_t,
9654    pub rbx: __uint64_t,
9655    pub rdx: __uint64_t,
9656    pub rax: __uint64_t,
9657    pub rcx: __uint64_t,
9658    pub rsp: __uint64_t,
9659    pub rip: __uint64_t,
9660    pub eflags: __uint64_t,
9661    pub cs: ::std::os::raw::c_ushort,
9662    pub gs: ::std::os::raw::c_ushort,
9663    pub fs: ::std::os::raw::c_ushort,
9664    pub __pad0: ::std::os::raw::c_ushort,
9665    pub err: __uint64_t,
9666    pub trapno: __uint64_t,
9667    pub oldmask: __uint64_t,
9668    pub cr2: __uint64_t,
9669    pub __bindgen_anon_1: sigcontext__bindgen_ty_1,
9670    pub __reserved1: [__uint64_t; 8usize],
9671}
9672#[repr(C)]
9673#[derive(Copy, Clone)]
9674pub union sigcontext__bindgen_ty_1 {
9675    pub fpstate: *mut _fpstate,
9676    pub __fpstate_word: __uint64_t,
9677    _bindgen_union_align: u64,
9678}
9679#[test]
9680fn bindgen_test_layout_sigcontext__bindgen_ty_1() {
9681    assert_eq!(
9682        ::std::mem::size_of::<sigcontext__bindgen_ty_1>(),
9683        8usize,
9684        concat!("Size of: ", stringify!(sigcontext__bindgen_ty_1))
9685    );
9686    assert_eq!(
9687        ::std::mem::align_of::<sigcontext__bindgen_ty_1>(),
9688        8usize,
9689        concat!("Alignment of ", stringify!(sigcontext__bindgen_ty_1))
9690    );
9691    assert_eq!(
9692        unsafe {
9693            &(*(::std::ptr::null::<sigcontext__bindgen_ty_1>())).fpstate as *const _ as usize
9694        },
9695        0usize,
9696        concat!(
9697            "Offset of field: ",
9698            stringify!(sigcontext__bindgen_ty_1),
9699            "::",
9700            stringify!(fpstate)
9701        )
9702    );
9703    assert_eq!(
9704        unsafe {
9705            &(*(::std::ptr::null::<sigcontext__bindgen_ty_1>())).__fpstate_word as *const _ as usize
9706        },
9707        0usize,
9708        concat!(
9709            "Offset of field: ",
9710            stringify!(sigcontext__bindgen_ty_1),
9711            "::",
9712            stringify!(__fpstate_word)
9713        )
9714    );
9715}
9716#[test]
9717fn bindgen_test_layout_sigcontext() {
9718    assert_eq!(
9719        ::std::mem::size_of::<sigcontext>(),
9720        256usize,
9721        concat!("Size of: ", stringify!(sigcontext))
9722    );
9723    assert_eq!(
9724        ::std::mem::align_of::<sigcontext>(),
9725        8usize,
9726        concat!("Alignment of ", stringify!(sigcontext))
9727    );
9728    assert_eq!(
9729        unsafe { &(*(::std::ptr::null::<sigcontext>())).r8 as *const _ as usize },
9730        0usize,
9731        concat!(
9732            "Offset of field: ",
9733            stringify!(sigcontext),
9734            "::",
9735            stringify!(r8)
9736        )
9737    );
9738    assert_eq!(
9739        unsafe { &(*(::std::ptr::null::<sigcontext>())).r9 as *const _ as usize },
9740        8usize,
9741        concat!(
9742            "Offset of field: ",
9743            stringify!(sigcontext),
9744            "::",
9745            stringify!(r9)
9746        )
9747    );
9748    assert_eq!(
9749        unsafe { &(*(::std::ptr::null::<sigcontext>())).r10 as *const _ as usize },
9750        16usize,
9751        concat!(
9752            "Offset of field: ",
9753            stringify!(sigcontext),
9754            "::",
9755            stringify!(r10)
9756        )
9757    );
9758    assert_eq!(
9759        unsafe { &(*(::std::ptr::null::<sigcontext>())).r11 as *const _ as usize },
9760        24usize,
9761        concat!(
9762            "Offset of field: ",
9763            stringify!(sigcontext),
9764            "::",
9765            stringify!(r11)
9766        )
9767    );
9768    assert_eq!(
9769        unsafe { &(*(::std::ptr::null::<sigcontext>())).r12 as *const _ as usize },
9770        32usize,
9771        concat!(
9772            "Offset of field: ",
9773            stringify!(sigcontext),
9774            "::",
9775            stringify!(r12)
9776        )
9777    );
9778    assert_eq!(
9779        unsafe { &(*(::std::ptr::null::<sigcontext>())).r13 as *const _ as usize },
9780        40usize,
9781        concat!(
9782            "Offset of field: ",
9783            stringify!(sigcontext),
9784            "::",
9785            stringify!(r13)
9786        )
9787    );
9788    assert_eq!(
9789        unsafe { &(*(::std::ptr::null::<sigcontext>())).r14 as *const _ as usize },
9790        48usize,
9791        concat!(
9792            "Offset of field: ",
9793            stringify!(sigcontext),
9794            "::",
9795            stringify!(r14)
9796        )
9797    );
9798    assert_eq!(
9799        unsafe { &(*(::std::ptr::null::<sigcontext>())).r15 as *const _ as usize },
9800        56usize,
9801        concat!(
9802            "Offset of field: ",
9803            stringify!(sigcontext),
9804            "::",
9805            stringify!(r15)
9806        )
9807    );
9808    assert_eq!(
9809        unsafe { &(*(::std::ptr::null::<sigcontext>())).rdi as *const _ as usize },
9810        64usize,
9811        concat!(
9812            "Offset of field: ",
9813            stringify!(sigcontext),
9814            "::",
9815            stringify!(rdi)
9816        )
9817    );
9818    assert_eq!(
9819        unsafe { &(*(::std::ptr::null::<sigcontext>())).rsi as *const _ as usize },
9820        72usize,
9821        concat!(
9822            "Offset of field: ",
9823            stringify!(sigcontext),
9824            "::",
9825            stringify!(rsi)
9826        )
9827    );
9828    assert_eq!(
9829        unsafe { &(*(::std::ptr::null::<sigcontext>())).rbp as *const _ as usize },
9830        80usize,
9831        concat!(
9832            "Offset of field: ",
9833            stringify!(sigcontext),
9834            "::",
9835            stringify!(rbp)
9836        )
9837    );
9838    assert_eq!(
9839        unsafe { &(*(::std::ptr::null::<sigcontext>())).rbx as *const _ as usize },
9840        88usize,
9841        concat!(
9842            "Offset of field: ",
9843            stringify!(sigcontext),
9844            "::",
9845            stringify!(rbx)
9846        )
9847    );
9848    assert_eq!(
9849        unsafe { &(*(::std::ptr::null::<sigcontext>())).rdx as *const _ as usize },
9850        96usize,
9851        concat!(
9852            "Offset of field: ",
9853            stringify!(sigcontext),
9854            "::",
9855            stringify!(rdx)
9856        )
9857    );
9858    assert_eq!(
9859        unsafe { &(*(::std::ptr::null::<sigcontext>())).rax as *const _ as usize },
9860        104usize,
9861        concat!(
9862            "Offset of field: ",
9863            stringify!(sigcontext),
9864            "::",
9865            stringify!(rax)
9866        )
9867    );
9868    assert_eq!(
9869        unsafe { &(*(::std::ptr::null::<sigcontext>())).rcx as *const _ as usize },
9870        112usize,
9871        concat!(
9872            "Offset of field: ",
9873            stringify!(sigcontext),
9874            "::",
9875            stringify!(rcx)
9876        )
9877    );
9878    assert_eq!(
9879        unsafe { &(*(::std::ptr::null::<sigcontext>())).rsp as *const _ as usize },
9880        120usize,
9881        concat!(
9882            "Offset of field: ",
9883            stringify!(sigcontext),
9884            "::",
9885            stringify!(rsp)
9886        )
9887    );
9888    assert_eq!(
9889        unsafe { &(*(::std::ptr::null::<sigcontext>())).rip as *const _ as usize },
9890        128usize,
9891        concat!(
9892            "Offset of field: ",
9893            stringify!(sigcontext),
9894            "::",
9895            stringify!(rip)
9896        )
9897    );
9898    assert_eq!(
9899        unsafe { &(*(::std::ptr::null::<sigcontext>())).eflags as *const _ as usize },
9900        136usize,
9901        concat!(
9902            "Offset of field: ",
9903            stringify!(sigcontext),
9904            "::",
9905            stringify!(eflags)
9906        )
9907    );
9908    assert_eq!(
9909        unsafe { &(*(::std::ptr::null::<sigcontext>())).cs as *const _ as usize },
9910        144usize,
9911        concat!(
9912            "Offset of field: ",
9913            stringify!(sigcontext),
9914            "::",
9915            stringify!(cs)
9916        )
9917    );
9918    assert_eq!(
9919        unsafe { &(*(::std::ptr::null::<sigcontext>())).gs as *const _ as usize },
9920        146usize,
9921        concat!(
9922            "Offset of field: ",
9923            stringify!(sigcontext),
9924            "::",
9925            stringify!(gs)
9926        )
9927    );
9928    assert_eq!(
9929        unsafe { &(*(::std::ptr::null::<sigcontext>())).fs as *const _ as usize },
9930        148usize,
9931        concat!(
9932            "Offset of field: ",
9933            stringify!(sigcontext),
9934            "::",
9935            stringify!(fs)
9936        )
9937    );
9938    assert_eq!(
9939        unsafe { &(*(::std::ptr::null::<sigcontext>())).__pad0 as *const _ as usize },
9940        150usize,
9941        concat!(
9942            "Offset of field: ",
9943            stringify!(sigcontext),
9944            "::",
9945            stringify!(__pad0)
9946        )
9947    );
9948    assert_eq!(
9949        unsafe { &(*(::std::ptr::null::<sigcontext>())).err as *const _ as usize },
9950        152usize,
9951        concat!(
9952            "Offset of field: ",
9953            stringify!(sigcontext),
9954            "::",
9955            stringify!(err)
9956        )
9957    );
9958    assert_eq!(
9959        unsafe { &(*(::std::ptr::null::<sigcontext>())).trapno as *const _ as usize },
9960        160usize,
9961        concat!(
9962            "Offset of field: ",
9963            stringify!(sigcontext),
9964            "::",
9965            stringify!(trapno)
9966        )
9967    );
9968    assert_eq!(
9969        unsafe { &(*(::std::ptr::null::<sigcontext>())).oldmask as *const _ as usize },
9970        168usize,
9971        concat!(
9972            "Offset of field: ",
9973            stringify!(sigcontext),
9974            "::",
9975            stringify!(oldmask)
9976        )
9977    );
9978    assert_eq!(
9979        unsafe { &(*(::std::ptr::null::<sigcontext>())).cr2 as *const _ as usize },
9980        176usize,
9981        concat!(
9982            "Offset of field: ",
9983            stringify!(sigcontext),
9984            "::",
9985            stringify!(cr2)
9986        )
9987    );
9988    assert_eq!(
9989        unsafe { &(*(::std::ptr::null::<sigcontext>())).__reserved1 as *const _ as usize },
9990        192usize,
9991        concat!(
9992            "Offset of field: ",
9993            stringify!(sigcontext),
9994            "::",
9995            stringify!(__reserved1)
9996        )
9997    );
9998}
9999#[repr(C)]
10000#[derive(Debug, Copy, Clone)]
10001pub struct _xsave_hdr {
10002    pub xstate_bv: __uint64_t,
10003    pub __glibc_reserved1: [__uint64_t; 2usize],
10004    pub __glibc_reserved2: [__uint64_t; 5usize],
10005}
10006#[test]
10007fn bindgen_test_layout__xsave_hdr() {
10008    assert_eq!(
10009        ::std::mem::size_of::<_xsave_hdr>(),
10010        64usize,
10011        concat!("Size of: ", stringify!(_xsave_hdr))
10012    );
10013    assert_eq!(
10014        ::std::mem::align_of::<_xsave_hdr>(),
10015        8usize,
10016        concat!("Alignment of ", stringify!(_xsave_hdr))
10017    );
10018    assert_eq!(
10019        unsafe { &(*(::std::ptr::null::<_xsave_hdr>())).xstate_bv as *const _ as usize },
10020        0usize,
10021        concat!(
10022            "Offset of field: ",
10023            stringify!(_xsave_hdr),
10024            "::",
10025            stringify!(xstate_bv)
10026        )
10027    );
10028    assert_eq!(
10029        unsafe { &(*(::std::ptr::null::<_xsave_hdr>())).__glibc_reserved1 as *const _ as usize },
10030        8usize,
10031        concat!(
10032            "Offset of field: ",
10033            stringify!(_xsave_hdr),
10034            "::",
10035            stringify!(__glibc_reserved1)
10036        )
10037    );
10038    assert_eq!(
10039        unsafe { &(*(::std::ptr::null::<_xsave_hdr>())).__glibc_reserved2 as *const _ as usize },
10040        24usize,
10041        concat!(
10042            "Offset of field: ",
10043            stringify!(_xsave_hdr),
10044            "::",
10045            stringify!(__glibc_reserved2)
10046        )
10047    );
10048}
10049#[repr(C)]
10050#[derive(Copy, Clone)]
10051pub struct _ymmh_state {
10052    pub ymmh_space: [__uint32_t; 64usize],
10053}
10054#[test]
10055fn bindgen_test_layout__ymmh_state() {
10056    assert_eq!(
10057        ::std::mem::size_of::<_ymmh_state>(),
10058        256usize,
10059        concat!("Size of: ", stringify!(_ymmh_state))
10060    );
10061    assert_eq!(
10062        ::std::mem::align_of::<_ymmh_state>(),
10063        4usize,
10064        concat!("Alignment of ", stringify!(_ymmh_state))
10065    );
10066    assert_eq!(
10067        unsafe { &(*(::std::ptr::null::<_ymmh_state>())).ymmh_space as *const _ as usize },
10068        0usize,
10069        concat!(
10070            "Offset of field: ",
10071            stringify!(_ymmh_state),
10072            "::",
10073            stringify!(ymmh_space)
10074        )
10075    );
10076}
10077#[repr(C)]
10078#[derive(Copy, Clone)]
10079pub struct _xstate {
10080    pub fpstate: _fpstate,
10081    pub xstate_hdr: _xsave_hdr,
10082    pub ymmh: _ymmh_state,
10083}
10084#[test]
10085fn bindgen_test_layout__xstate() {
10086    assert_eq!(
10087        ::std::mem::size_of::<_xstate>(),
10088        832usize,
10089        concat!("Size of: ", stringify!(_xstate))
10090    );
10091    assert_eq!(
10092        ::std::mem::align_of::<_xstate>(),
10093        8usize,
10094        concat!("Alignment of ", stringify!(_xstate))
10095    );
10096    assert_eq!(
10097        unsafe { &(*(::std::ptr::null::<_xstate>())).fpstate as *const _ as usize },
10098        0usize,
10099        concat!(
10100            "Offset of field: ",
10101            stringify!(_xstate),
10102            "::",
10103            stringify!(fpstate)
10104        )
10105    );
10106    assert_eq!(
10107        unsafe { &(*(::std::ptr::null::<_xstate>())).xstate_hdr as *const _ as usize },
10108        512usize,
10109        concat!(
10110            "Offset of field: ",
10111            stringify!(_xstate),
10112            "::",
10113            stringify!(xstate_hdr)
10114        )
10115    );
10116    assert_eq!(
10117        unsafe { &(*(::std::ptr::null::<_xstate>())).ymmh as *const _ as usize },
10118        576usize,
10119        concat!(
10120            "Offset of field: ",
10121            stringify!(_xstate),
10122            "::",
10123            stringify!(ymmh)
10124        )
10125    );
10126}
10127extern "C" {
10128    pub fn sigreturn(__scp: *mut sigcontext) -> ::std::os::raw::c_int;
10129}
10130#[repr(C)]
10131#[derive(Debug, Copy, Clone)]
10132pub struct stack_t {
10133    pub ss_sp: *mut ::std::os::raw::c_void,
10134    pub ss_flags: ::std::os::raw::c_int,
10135    pub ss_size: usize,
10136}
10137#[test]
10138fn bindgen_test_layout_stack_t() {
10139    assert_eq!(
10140        ::std::mem::size_of::<stack_t>(),
10141        24usize,
10142        concat!("Size of: ", stringify!(stack_t))
10143    );
10144    assert_eq!(
10145        ::std::mem::align_of::<stack_t>(),
10146        8usize,
10147        concat!("Alignment of ", stringify!(stack_t))
10148    );
10149    assert_eq!(
10150        unsafe { &(*(::std::ptr::null::<stack_t>())).ss_sp as *const _ as usize },
10151        0usize,
10152        concat!(
10153            "Offset of field: ",
10154            stringify!(stack_t),
10155            "::",
10156            stringify!(ss_sp)
10157        )
10158    );
10159    assert_eq!(
10160        unsafe { &(*(::std::ptr::null::<stack_t>())).ss_flags as *const _ as usize },
10161        8usize,
10162        concat!(
10163            "Offset of field: ",
10164            stringify!(stack_t),
10165            "::",
10166            stringify!(ss_flags)
10167        )
10168    );
10169    assert_eq!(
10170        unsafe { &(*(::std::ptr::null::<stack_t>())).ss_size as *const _ as usize },
10171        16usize,
10172        concat!(
10173            "Offset of field: ",
10174            stringify!(stack_t),
10175            "::",
10176            stringify!(ss_size)
10177        )
10178    );
10179}
10180pub type greg_t = ::std::os::raw::c_longlong;
10181pub type gregset_t = [greg_t; 23usize];
10182#[repr(C)]
10183#[derive(Debug, Copy, Clone)]
10184pub struct _libc_fpxreg {
10185    pub significand: [::std::os::raw::c_ushort; 4usize],
10186    pub exponent: ::std::os::raw::c_ushort,
10187    pub __glibc_reserved1: [::std::os::raw::c_ushort; 3usize],
10188}
10189#[test]
10190fn bindgen_test_layout__libc_fpxreg() {
10191    assert_eq!(
10192        ::std::mem::size_of::<_libc_fpxreg>(),
10193        16usize,
10194        concat!("Size of: ", stringify!(_libc_fpxreg))
10195    );
10196    assert_eq!(
10197        ::std::mem::align_of::<_libc_fpxreg>(),
10198        2usize,
10199        concat!("Alignment of ", stringify!(_libc_fpxreg))
10200    );
10201    assert_eq!(
10202        unsafe { &(*(::std::ptr::null::<_libc_fpxreg>())).significand as *const _ as usize },
10203        0usize,
10204        concat!(
10205            "Offset of field: ",
10206            stringify!(_libc_fpxreg),
10207            "::",
10208            stringify!(significand)
10209        )
10210    );
10211    assert_eq!(
10212        unsafe { &(*(::std::ptr::null::<_libc_fpxreg>())).exponent as *const _ as usize },
10213        8usize,
10214        concat!(
10215            "Offset of field: ",
10216            stringify!(_libc_fpxreg),
10217            "::",
10218            stringify!(exponent)
10219        )
10220    );
10221    assert_eq!(
10222        unsafe { &(*(::std::ptr::null::<_libc_fpxreg>())).__glibc_reserved1 as *const _ as usize },
10223        10usize,
10224        concat!(
10225            "Offset of field: ",
10226            stringify!(_libc_fpxreg),
10227            "::",
10228            stringify!(__glibc_reserved1)
10229        )
10230    );
10231}
10232#[repr(C)]
10233#[derive(Debug, Copy, Clone)]
10234pub struct _libc_xmmreg {
10235    pub element: [__uint32_t; 4usize],
10236}
10237#[test]
10238fn bindgen_test_layout__libc_xmmreg() {
10239    assert_eq!(
10240        ::std::mem::size_of::<_libc_xmmreg>(),
10241        16usize,
10242        concat!("Size of: ", stringify!(_libc_xmmreg))
10243    );
10244    assert_eq!(
10245        ::std::mem::align_of::<_libc_xmmreg>(),
10246        4usize,
10247        concat!("Alignment of ", stringify!(_libc_xmmreg))
10248    );
10249    assert_eq!(
10250        unsafe { &(*(::std::ptr::null::<_libc_xmmreg>())).element as *const _ as usize },
10251        0usize,
10252        concat!(
10253            "Offset of field: ",
10254            stringify!(_libc_xmmreg),
10255            "::",
10256            stringify!(element)
10257        )
10258    );
10259}
10260#[repr(C)]
10261#[derive(Debug, Copy, Clone)]
10262pub struct _libc_fpstate {
10263    pub cwd: __uint16_t,
10264    pub swd: __uint16_t,
10265    pub ftw: __uint16_t,
10266    pub fop: __uint16_t,
10267    pub rip: __uint64_t,
10268    pub rdp: __uint64_t,
10269    pub mxcsr: __uint32_t,
10270    pub mxcr_mask: __uint32_t,
10271    pub _st: [_libc_fpxreg; 8usize],
10272    pub _xmm: [_libc_xmmreg; 16usize],
10273    pub __glibc_reserved1: [__uint32_t; 24usize],
10274}
10275#[test]
10276fn bindgen_test_layout__libc_fpstate() {
10277    assert_eq!(
10278        ::std::mem::size_of::<_libc_fpstate>(),
10279        512usize,
10280        concat!("Size of: ", stringify!(_libc_fpstate))
10281    );
10282    assert_eq!(
10283        ::std::mem::align_of::<_libc_fpstate>(),
10284        8usize,
10285        concat!("Alignment of ", stringify!(_libc_fpstate))
10286    );
10287    assert_eq!(
10288        unsafe { &(*(::std::ptr::null::<_libc_fpstate>())).cwd as *const _ as usize },
10289        0usize,
10290        concat!(
10291            "Offset of field: ",
10292            stringify!(_libc_fpstate),
10293            "::",
10294            stringify!(cwd)
10295        )
10296    );
10297    assert_eq!(
10298        unsafe { &(*(::std::ptr::null::<_libc_fpstate>())).swd as *const _ as usize },
10299        2usize,
10300        concat!(
10301            "Offset of field: ",
10302            stringify!(_libc_fpstate),
10303            "::",
10304            stringify!(swd)
10305        )
10306    );
10307    assert_eq!(
10308        unsafe { &(*(::std::ptr::null::<_libc_fpstate>())).ftw as *const _ as usize },
10309        4usize,
10310        concat!(
10311            "Offset of field: ",
10312            stringify!(_libc_fpstate),
10313            "::",
10314            stringify!(ftw)
10315        )
10316    );
10317    assert_eq!(
10318        unsafe { &(*(::std::ptr::null::<_libc_fpstate>())).fop as *const _ as usize },
10319        6usize,
10320        concat!(
10321            "Offset of field: ",
10322            stringify!(_libc_fpstate),
10323            "::",
10324            stringify!(fop)
10325        )
10326    );
10327    assert_eq!(
10328        unsafe { &(*(::std::ptr::null::<_libc_fpstate>())).rip as *const _ as usize },
10329        8usize,
10330        concat!(
10331            "Offset of field: ",
10332            stringify!(_libc_fpstate),
10333            "::",
10334            stringify!(rip)
10335        )
10336    );
10337    assert_eq!(
10338        unsafe { &(*(::std::ptr::null::<_libc_fpstate>())).rdp as *const _ as usize },
10339        16usize,
10340        concat!(
10341            "Offset of field: ",
10342            stringify!(_libc_fpstate),
10343            "::",
10344            stringify!(rdp)
10345        )
10346    );
10347    assert_eq!(
10348        unsafe { &(*(::std::ptr::null::<_libc_fpstate>())).mxcsr as *const _ as usize },
10349        24usize,
10350        concat!(
10351            "Offset of field: ",
10352            stringify!(_libc_fpstate),
10353            "::",
10354            stringify!(mxcsr)
10355        )
10356    );
10357    assert_eq!(
10358        unsafe { &(*(::std::ptr::null::<_libc_fpstate>())).mxcr_mask as *const _ as usize },
10359        28usize,
10360        concat!(
10361            "Offset of field: ",
10362            stringify!(_libc_fpstate),
10363            "::",
10364            stringify!(mxcr_mask)
10365        )
10366    );
10367    assert_eq!(
10368        unsafe { &(*(::std::ptr::null::<_libc_fpstate>()))._st as *const _ as usize },
10369        32usize,
10370        concat!(
10371            "Offset of field: ",
10372            stringify!(_libc_fpstate),
10373            "::",
10374            stringify!(_st)
10375        )
10376    );
10377    assert_eq!(
10378        unsafe { &(*(::std::ptr::null::<_libc_fpstate>()))._xmm as *const _ as usize },
10379        160usize,
10380        concat!(
10381            "Offset of field: ",
10382            stringify!(_libc_fpstate),
10383            "::",
10384            stringify!(_xmm)
10385        )
10386    );
10387    assert_eq!(
10388        unsafe { &(*(::std::ptr::null::<_libc_fpstate>())).__glibc_reserved1 as *const _ as usize },
10389        416usize,
10390        concat!(
10391            "Offset of field: ",
10392            stringify!(_libc_fpstate),
10393            "::",
10394            stringify!(__glibc_reserved1)
10395        )
10396    );
10397}
10398pub type fpregset_t = *mut _libc_fpstate;
10399#[repr(C)]
10400#[derive(Debug, Copy, Clone)]
10401pub struct mcontext_t {
10402    pub gregs: gregset_t,
10403    pub fpregs: fpregset_t,
10404    pub __reserved1: [::std::os::raw::c_ulonglong; 8usize],
10405}
10406#[test]
10407fn bindgen_test_layout_mcontext_t() {
10408    assert_eq!(
10409        ::std::mem::size_of::<mcontext_t>(),
10410        256usize,
10411        concat!("Size of: ", stringify!(mcontext_t))
10412    );
10413    assert_eq!(
10414        ::std::mem::align_of::<mcontext_t>(),
10415        8usize,
10416        concat!("Alignment of ", stringify!(mcontext_t))
10417    );
10418    assert_eq!(
10419        unsafe { &(*(::std::ptr::null::<mcontext_t>())).gregs as *const _ as usize },
10420        0usize,
10421        concat!(
10422            "Offset of field: ",
10423            stringify!(mcontext_t),
10424            "::",
10425            stringify!(gregs)
10426        )
10427    );
10428    assert_eq!(
10429        unsafe { &(*(::std::ptr::null::<mcontext_t>())).fpregs as *const _ as usize },
10430        184usize,
10431        concat!(
10432            "Offset of field: ",
10433            stringify!(mcontext_t),
10434            "::",
10435            stringify!(fpregs)
10436        )
10437    );
10438    assert_eq!(
10439        unsafe { &(*(::std::ptr::null::<mcontext_t>())).__reserved1 as *const _ as usize },
10440        192usize,
10441        concat!(
10442            "Offset of field: ",
10443            stringify!(mcontext_t),
10444            "::",
10445            stringify!(__reserved1)
10446        )
10447    );
10448}
10449#[repr(C)]
10450#[derive(Debug, Copy, Clone)]
10451pub struct ucontext_t {
10452    pub uc_flags: ::std::os::raw::c_ulong,
10453    pub uc_link: *mut ucontext_t,
10454    pub uc_stack: stack_t,
10455    pub uc_mcontext: mcontext_t,
10456    pub uc_sigmask: sigset_t,
10457    pub __fpregs_mem: _libc_fpstate,
10458}
10459#[test]
10460fn bindgen_test_layout_ucontext_t() {
10461    assert_eq!(
10462        ::std::mem::size_of::<ucontext_t>(),
10463        936usize,
10464        concat!("Size of: ", stringify!(ucontext_t))
10465    );
10466    assert_eq!(
10467        ::std::mem::align_of::<ucontext_t>(),
10468        8usize,
10469        concat!("Alignment of ", stringify!(ucontext_t))
10470    );
10471    assert_eq!(
10472        unsafe { &(*(::std::ptr::null::<ucontext_t>())).uc_flags as *const _ as usize },
10473        0usize,
10474        concat!(
10475            "Offset of field: ",
10476            stringify!(ucontext_t),
10477            "::",
10478            stringify!(uc_flags)
10479        )
10480    );
10481    assert_eq!(
10482        unsafe { &(*(::std::ptr::null::<ucontext_t>())).uc_link as *const _ as usize },
10483        8usize,
10484        concat!(
10485            "Offset of field: ",
10486            stringify!(ucontext_t),
10487            "::",
10488            stringify!(uc_link)
10489        )
10490    );
10491    assert_eq!(
10492        unsafe { &(*(::std::ptr::null::<ucontext_t>())).uc_stack as *const _ as usize },
10493        16usize,
10494        concat!(
10495            "Offset of field: ",
10496            stringify!(ucontext_t),
10497            "::",
10498            stringify!(uc_stack)
10499        )
10500    );
10501    assert_eq!(
10502        unsafe { &(*(::std::ptr::null::<ucontext_t>())).uc_mcontext as *const _ as usize },
10503        40usize,
10504        concat!(
10505            "Offset of field: ",
10506            stringify!(ucontext_t),
10507            "::",
10508            stringify!(uc_mcontext)
10509        )
10510    );
10511    assert_eq!(
10512        unsafe { &(*(::std::ptr::null::<ucontext_t>())).uc_sigmask as *const _ as usize },
10513        296usize,
10514        concat!(
10515            "Offset of field: ",
10516            stringify!(ucontext_t),
10517            "::",
10518            stringify!(uc_sigmask)
10519        )
10520    );
10521    assert_eq!(
10522        unsafe { &(*(::std::ptr::null::<ucontext_t>())).__fpregs_mem as *const _ as usize },
10523        424usize,
10524        concat!(
10525            "Offset of field: ",
10526            stringify!(ucontext_t),
10527            "::",
10528            stringify!(__fpregs_mem)
10529        )
10530    );
10531}
10532extern "C" {
10533    pub fn siginterrupt(
10534        __sig: ::std::os::raw::c_int,
10535        __interrupt: ::std::os::raw::c_int,
10536    ) -> ::std::os::raw::c_int;
10537}
10538pub const SS_ONSTACK: _bindgen_ty_14 = 1;
10539pub const SS_DISABLE: _bindgen_ty_14 = 2;
10540pub type _bindgen_ty_14 = u32;
10541extern "C" {
10542    pub fn sigaltstack(__ss: *const stack_t, __oss: *mut stack_t) -> ::std::os::raw::c_int;
10543}
10544#[repr(C)]
10545#[derive(Debug, Copy, Clone)]
10546pub struct sigstack {
10547    pub ss_sp: *mut ::std::os::raw::c_void,
10548    pub ss_onstack: ::std::os::raw::c_int,
10549}
10550#[test]
10551fn bindgen_test_layout_sigstack() {
10552    assert_eq!(
10553        ::std::mem::size_of::<sigstack>(),
10554        16usize,
10555        concat!("Size of: ", stringify!(sigstack))
10556    );
10557    assert_eq!(
10558        ::std::mem::align_of::<sigstack>(),
10559        8usize,
10560        concat!("Alignment of ", stringify!(sigstack))
10561    );
10562    assert_eq!(
10563        unsafe { &(*(::std::ptr::null::<sigstack>())).ss_sp as *const _ as usize },
10564        0usize,
10565        concat!(
10566            "Offset of field: ",
10567            stringify!(sigstack),
10568            "::",
10569            stringify!(ss_sp)
10570        )
10571    );
10572    assert_eq!(
10573        unsafe { &(*(::std::ptr::null::<sigstack>())).ss_onstack as *const _ as usize },
10574        8usize,
10575        concat!(
10576            "Offset of field: ",
10577            stringify!(sigstack),
10578            "::",
10579            stringify!(ss_onstack)
10580        )
10581    );
10582}
10583extern "C" {
10584    pub fn sigstack(__ss: *mut sigstack, __oss: *mut sigstack) -> ::std::os::raw::c_int;
10585}
10586extern "C" {
10587    pub fn pthread_sigmask(
10588        __how: ::std::os::raw::c_int,
10589        __newmask: *const __sigset_t,
10590        __oldmask: *mut __sigset_t,
10591    ) -> ::std::os::raw::c_int;
10592}
10593extern "C" {
10594    pub fn pthread_kill(
10595        __threadid: pthread_t,
10596        __signo: ::std::os::raw::c_int,
10597    ) -> ::std::os::raw::c_int;
10598}
10599extern "C" {
10600    pub fn __libc_current_sigrtmin() -> ::std::os::raw::c_int;
10601}
10602extern "C" {
10603    pub fn __libc_current_sigrtmax() -> ::std::os::raw::c_int;
10604}
10605extern "C" {
10606    pub fn g_on_error_query(prg_name: *const gchar);
10607}
10608extern "C" {
10609    pub fn g_on_error_stack_trace(prg_name: *const gchar);
10610}
10611extern "C" {
10612    pub fn g_base64_encode_step(
10613        in_: *const guchar,
10614        len: gsize,
10615        break_lines: gboolean,
10616        out: *mut gchar,
10617        state: *mut gint,
10618        save: *mut gint,
10619    ) -> gsize;
10620}
10621extern "C" {
10622    pub fn g_base64_encode_close(
10623        break_lines: gboolean,
10624        out: *mut gchar,
10625        state: *mut gint,
10626        save: *mut gint,
10627    ) -> gsize;
10628}
10629extern "C" {
10630    pub fn g_base64_encode(data: *const guchar, len: gsize) -> *mut gchar;
10631}
10632extern "C" {
10633    pub fn g_base64_decode_step(
10634        in_: *const gchar,
10635        len: gsize,
10636        out: *mut guchar,
10637        state: *mut gint,
10638        save: *mut guint,
10639    ) -> gsize;
10640}
10641extern "C" {
10642    pub fn g_base64_decode(text: *const gchar, out_len: *mut gsize) -> *mut guchar;
10643}
10644extern "C" {
10645    pub fn g_base64_decode_inplace(text: *mut gchar, out_len: *mut gsize) -> *mut guchar;
10646}
10647extern "C" {
10648    pub fn g_bit_lock(address: *mut gint, lock_bit: gint);
10649}
10650extern "C" {
10651    pub fn g_bit_trylock(address: *mut gint, lock_bit: gint) -> gboolean;
10652}
10653extern "C" {
10654    pub fn g_bit_unlock(address: *mut gint, lock_bit: gint);
10655}
10656extern "C" {
10657    pub fn g_pointer_bit_lock(address: *mut ::std::os::raw::c_void, lock_bit: gint);
10658}
10659extern "C" {
10660    pub fn g_pointer_bit_trylock(address: *mut ::std::os::raw::c_void, lock_bit: gint) -> gboolean;
10661}
10662extern "C" {
10663    pub fn g_pointer_bit_unlock(address: *mut ::std::os::raw::c_void, lock_bit: gint);
10664}
10665pub const GBookmarkFileError_G_BOOKMARK_FILE_ERROR_INVALID_URI: GBookmarkFileError = 0;
10666pub const GBookmarkFileError_G_BOOKMARK_FILE_ERROR_INVALID_VALUE: GBookmarkFileError = 1;
10667pub const GBookmarkFileError_G_BOOKMARK_FILE_ERROR_APP_NOT_REGISTERED: GBookmarkFileError = 2;
10668pub const GBookmarkFileError_G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND: GBookmarkFileError = 3;
10669pub const GBookmarkFileError_G_BOOKMARK_FILE_ERROR_READ: GBookmarkFileError = 4;
10670pub const GBookmarkFileError_G_BOOKMARK_FILE_ERROR_UNKNOWN_ENCODING: GBookmarkFileError = 5;
10671pub const GBookmarkFileError_G_BOOKMARK_FILE_ERROR_WRITE: GBookmarkFileError = 6;
10672pub const GBookmarkFileError_G_BOOKMARK_FILE_ERROR_FILE_NOT_FOUND: GBookmarkFileError = 7;
10673#[doc = " GBookmarkFileError:"]
10674#[doc = " @G_BOOKMARK_FILE_ERROR_INVALID_URI: URI was ill-formed"]
10675#[doc = " @G_BOOKMARK_FILE_ERROR_INVALID_VALUE: a requested field was not found"]
10676#[doc = " @G_BOOKMARK_FILE_ERROR_APP_NOT_REGISTERED: a requested application did"]
10677#[doc = "     not register a bookmark"]
10678#[doc = " @G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND: a requested URI was not found"]
10679#[doc = " @G_BOOKMARK_FILE_ERROR_READ: document was ill formed"]
10680#[doc = " @G_BOOKMARK_FILE_ERROR_UNKNOWN_ENCODING: the text being parsed was"]
10681#[doc = "     in an unknown encoding"]
10682#[doc = " @G_BOOKMARK_FILE_ERROR_WRITE: an error occurred while writing"]
10683#[doc = " @G_BOOKMARK_FILE_ERROR_FILE_NOT_FOUND: requested file was not found"]
10684#[doc = ""]
10685#[doc = " Error codes returned by bookmark file parsing."]
10686pub type GBookmarkFileError = u32;
10687extern "C" {
10688    pub fn g_bookmark_file_error_quark() -> GQuark;
10689}
10690#[repr(C)]
10691#[derive(Debug, Copy, Clone)]
10692pub struct _GBookmarkFile {
10693    _unused: [u8; 0],
10694}
10695#[doc = " GBookmarkFile:"]
10696#[doc = ""]
10697#[doc = " The `GBookmarkFile` structure contains only"]
10698#[doc = " private data and should not be directly accessed."]
10699pub type GBookmarkFile = _GBookmarkFile;
10700extern "C" {
10701    pub fn g_bookmark_file_new() -> *mut GBookmarkFile;
10702}
10703extern "C" {
10704    pub fn g_bookmark_file_free(bookmark: *mut GBookmarkFile);
10705}
10706extern "C" {
10707    pub fn g_bookmark_file_load_from_file(
10708        bookmark: *mut GBookmarkFile,
10709        filename: *const gchar,
10710        error: *mut *mut GError,
10711    ) -> gboolean;
10712}
10713extern "C" {
10714    pub fn g_bookmark_file_load_from_data(
10715        bookmark: *mut GBookmarkFile,
10716        data: *const gchar,
10717        length: gsize,
10718        error: *mut *mut GError,
10719    ) -> gboolean;
10720}
10721extern "C" {
10722    pub fn g_bookmark_file_load_from_data_dirs(
10723        bookmark: *mut GBookmarkFile,
10724        file: *const gchar,
10725        full_path: *mut *mut gchar,
10726        error: *mut *mut GError,
10727    ) -> gboolean;
10728}
10729extern "C" {
10730    pub fn g_bookmark_file_to_data(
10731        bookmark: *mut GBookmarkFile,
10732        length: *mut gsize,
10733        error: *mut *mut GError,
10734    ) -> *mut gchar;
10735}
10736extern "C" {
10737    pub fn g_bookmark_file_to_file(
10738        bookmark: *mut GBookmarkFile,
10739        filename: *const gchar,
10740        error: *mut *mut GError,
10741    ) -> gboolean;
10742}
10743extern "C" {
10744    pub fn g_bookmark_file_set_title(
10745        bookmark: *mut GBookmarkFile,
10746        uri: *const gchar,
10747        title: *const gchar,
10748    );
10749}
10750extern "C" {
10751    pub fn g_bookmark_file_get_title(
10752        bookmark: *mut GBookmarkFile,
10753        uri: *const gchar,
10754        error: *mut *mut GError,
10755    ) -> *mut gchar;
10756}
10757extern "C" {
10758    pub fn g_bookmark_file_set_description(
10759        bookmark: *mut GBookmarkFile,
10760        uri: *const gchar,
10761        description: *const gchar,
10762    );
10763}
10764extern "C" {
10765    pub fn g_bookmark_file_get_description(
10766        bookmark: *mut GBookmarkFile,
10767        uri: *const gchar,
10768        error: *mut *mut GError,
10769    ) -> *mut gchar;
10770}
10771extern "C" {
10772    pub fn g_bookmark_file_set_mime_type(
10773        bookmark: *mut GBookmarkFile,
10774        uri: *const gchar,
10775        mime_type: *const gchar,
10776    );
10777}
10778extern "C" {
10779    pub fn g_bookmark_file_get_mime_type(
10780        bookmark: *mut GBookmarkFile,
10781        uri: *const gchar,
10782        error: *mut *mut GError,
10783    ) -> *mut gchar;
10784}
10785extern "C" {
10786    pub fn g_bookmark_file_set_groups(
10787        bookmark: *mut GBookmarkFile,
10788        uri: *const gchar,
10789        groups: *mut *const gchar,
10790        length: gsize,
10791    );
10792}
10793extern "C" {
10794    pub fn g_bookmark_file_add_group(
10795        bookmark: *mut GBookmarkFile,
10796        uri: *const gchar,
10797        group: *const gchar,
10798    );
10799}
10800extern "C" {
10801    pub fn g_bookmark_file_has_group(
10802        bookmark: *mut GBookmarkFile,
10803        uri: *const gchar,
10804        group: *const gchar,
10805        error: *mut *mut GError,
10806    ) -> gboolean;
10807}
10808extern "C" {
10809    pub fn g_bookmark_file_get_groups(
10810        bookmark: *mut GBookmarkFile,
10811        uri: *const gchar,
10812        length: *mut gsize,
10813        error: *mut *mut GError,
10814    ) -> *mut *mut gchar;
10815}
10816extern "C" {
10817    pub fn g_bookmark_file_add_application(
10818        bookmark: *mut GBookmarkFile,
10819        uri: *const gchar,
10820        name: *const gchar,
10821        exec: *const gchar,
10822    );
10823}
10824extern "C" {
10825    pub fn g_bookmark_file_has_application(
10826        bookmark: *mut GBookmarkFile,
10827        uri: *const gchar,
10828        name: *const gchar,
10829        error: *mut *mut GError,
10830    ) -> gboolean;
10831}
10832extern "C" {
10833    pub fn g_bookmark_file_get_applications(
10834        bookmark: *mut GBookmarkFile,
10835        uri: *const gchar,
10836        length: *mut gsize,
10837        error: *mut *mut GError,
10838    ) -> *mut *mut gchar;
10839}
10840extern "C" {
10841    pub fn g_bookmark_file_set_app_info(
10842        bookmark: *mut GBookmarkFile,
10843        uri: *const gchar,
10844        name: *const gchar,
10845        exec: *const gchar,
10846        count: gint,
10847        stamp: time_t,
10848        error: *mut *mut GError,
10849    ) -> gboolean;
10850}
10851extern "C" {
10852    pub fn g_bookmark_file_get_app_info(
10853        bookmark: *mut GBookmarkFile,
10854        uri: *const gchar,
10855        name: *const gchar,
10856        exec: *mut *mut gchar,
10857        count: *mut guint,
10858        stamp: *mut time_t,
10859        error: *mut *mut GError,
10860    ) -> gboolean;
10861}
10862extern "C" {
10863    pub fn g_bookmark_file_set_is_private(
10864        bookmark: *mut GBookmarkFile,
10865        uri: *const gchar,
10866        is_private: gboolean,
10867    );
10868}
10869extern "C" {
10870    pub fn g_bookmark_file_get_is_private(
10871        bookmark: *mut GBookmarkFile,
10872        uri: *const gchar,
10873        error: *mut *mut GError,
10874    ) -> gboolean;
10875}
10876extern "C" {
10877    pub fn g_bookmark_file_set_icon(
10878        bookmark: *mut GBookmarkFile,
10879        uri: *const gchar,
10880        href: *const gchar,
10881        mime_type: *const gchar,
10882    );
10883}
10884extern "C" {
10885    pub fn g_bookmark_file_get_icon(
10886        bookmark: *mut GBookmarkFile,
10887        uri: *const gchar,
10888        href: *mut *mut gchar,
10889        mime_type: *mut *mut gchar,
10890        error: *mut *mut GError,
10891    ) -> gboolean;
10892}
10893extern "C" {
10894    pub fn g_bookmark_file_set_added(
10895        bookmark: *mut GBookmarkFile,
10896        uri: *const gchar,
10897        added: time_t,
10898    );
10899}
10900extern "C" {
10901    pub fn g_bookmark_file_get_added(
10902        bookmark: *mut GBookmarkFile,
10903        uri: *const gchar,
10904        error: *mut *mut GError,
10905    ) -> time_t;
10906}
10907extern "C" {
10908    pub fn g_bookmark_file_set_modified(
10909        bookmark: *mut GBookmarkFile,
10910        uri: *const gchar,
10911        modified: time_t,
10912    );
10913}
10914extern "C" {
10915    pub fn g_bookmark_file_get_modified(
10916        bookmark: *mut GBookmarkFile,
10917        uri: *const gchar,
10918        error: *mut *mut GError,
10919    ) -> time_t;
10920}
10921extern "C" {
10922    pub fn g_bookmark_file_set_visited(
10923        bookmark: *mut GBookmarkFile,
10924        uri: *const gchar,
10925        visited: time_t,
10926    );
10927}
10928extern "C" {
10929    pub fn g_bookmark_file_get_visited(
10930        bookmark: *mut GBookmarkFile,
10931        uri: *const gchar,
10932        error: *mut *mut GError,
10933    ) -> time_t;
10934}
10935extern "C" {
10936    pub fn g_bookmark_file_has_item(bookmark: *mut GBookmarkFile, uri: *const gchar) -> gboolean;
10937}
10938extern "C" {
10939    pub fn g_bookmark_file_get_size(bookmark: *mut GBookmarkFile) -> gint;
10940}
10941extern "C" {
10942    pub fn g_bookmark_file_get_uris(
10943        bookmark: *mut GBookmarkFile,
10944        length: *mut gsize,
10945    ) -> *mut *mut gchar;
10946}
10947extern "C" {
10948    pub fn g_bookmark_file_remove_group(
10949        bookmark: *mut GBookmarkFile,
10950        uri: *const gchar,
10951        group: *const gchar,
10952        error: *mut *mut GError,
10953    ) -> gboolean;
10954}
10955extern "C" {
10956    pub fn g_bookmark_file_remove_application(
10957        bookmark: *mut GBookmarkFile,
10958        uri: *const gchar,
10959        name: *const gchar,
10960        error: *mut *mut GError,
10961    ) -> gboolean;
10962}
10963extern "C" {
10964    pub fn g_bookmark_file_remove_item(
10965        bookmark: *mut GBookmarkFile,
10966        uri: *const gchar,
10967        error: *mut *mut GError,
10968    ) -> gboolean;
10969}
10970extern "C" {
10971    pub fn g_bookmark_file_move_item(
10972        bookmark: *mut GBookmarkFile,
10973        old_uri: *const gchar,
10974        new_uri: *const gchar,
10975        error: *mut *mut GError,
10976    ) -> gboolean;
10977}
10978extern "C" {
10979    pub fn g_bytes_new(data: gconstpointer, size: gsize) -> *mut GBytes;
10980}
10981extern "C" {
10982    pub fn g_bytes_new_take(data: gpointer, size: gsize) -> *mut GBytes;
10983}
10984extern "C" {
10985    pub fn g_bytes_new_static(data: gconstpointer, size: gsize) -> *mut GBytes;
10986}
10987extern "C" {
10988    pub fn g_bytes_new_with_free_func(
10989        data: gconstpointer,
10990        size: gsize,
10991        free_func: GDestroyNotify,
10992        user_data: gpointer,
10993    ) -> *mut GBytes;
10994}
10995extern "C" {
10996    pub fn g_bytes_new_from_bytes(bytes: *mut GBytes, offset: gsize, length: gsize) -> *mut GBytes;
10997}
10998extern "C" {
10999    pub fn g_bytes_get_data(bytes: *mut GBytes, size: *mut gsize) -> gconstpointer;
11000}
11001extern "C" {
11002    pub fn g_bytes_get_size(bytes: *mut GBytes) -> gsize;
11003}
11004extern "C" {
11005    pub fn g_bytes_ref(bytes: *mut GBytes) -> *mut GBytes;
11006}
11007extern "C" {
11008    pub fn g_bytes_unref(bytes: *mut GBytes);
11009}
11010extern "C" {
11011    pub fn g_bytes_unref_to_data(bytes: *mut GBytes, size: *mut gsize) -> gpointer;
11012}
11013extern "C" {
11014    pub fn g_bytes_unref_to_array(bytes: *mut GBytes) -> *mut GByteArray;
11015}
11016extern "C" {
11017    pub fn g_bytes_hash(bytes: gconstpointer) -> guint;
11018}
11019extern "C" {
11020    pub fn g_bytes_equal(bytes1: gconstpointer, bytes2: gconstpointer) -> gboolean;
11021}
11022extern "C" {
11023    pub fn g_bytes_compare(bytes1: gconstpointer, bytes2: gconstpointer) -> gint;
11024}
11025extern "C" {
11026    pub fn g_get_charset(charset: *mut *const ::std::os::raw::c_char) -> gboolean;
11027}
11028extern "C" {
11029    pub fn g_get_codeset() -> *mut gchar;
11030}
11031extern "C" {
11032    pub fn g_get_language_names() -> *const *const gchar;
11033}
11034extern "C" {
11035    pub fn g_get_locale_variants(locale: *const gchar) -> *mut *mut gchar;
11036}
11037pub const GChecksumType_G_CHECKSUM_MD5: GChecksumType = 0;
11038pub const GChecksumType_G_CHECKSUM_SHA1: GChecksumType = 1;
11039pub const GChecksumType_G_CHECKSUM_SHA256: GChecksumType = 2;
11040pub const GChecksumType_G_CHECKSUM_SHA512: GChecksumType = 3;
11041pub const GChecksumType_G_CHECKSUM_SHA384: GChecksumType = 4;
11042#[doc = " GChecksumType:"]
11043#[doc = " @G_CHECKSUM_MD5: Use the MD5 hashing algorithm"]
11044#[doc = " @G_CHECKSUM_SHA1: Use the SHA-1 hashing algorithm"]
11045#[doc = " @G_CHECKSUM_SHA256: Use the SHA-256 hashing algorithm"]
11046#[doc = " @G_CHECKSUM_SHA384: Use the SHA-384 hashing algorithm (Since: 2.51)"]
11047#[doc = " @G_CHECKSUM_SHA512: Use the SHA-512 hashing algorithm (Since: 2.36)"]
11048#[doc = ""]
11049#[doc = " The hashing algorithm to be used by #GChecksum when performing the"]
11050#[doc = " digest of some data."]
11051#[doc = ""]
11052#[doc = " Note that the #GChecksumType enumeration may be extended at a later"]
11053#[doc = " date to include new hashing algorithm types."]
11054#[doc = ""]
11055#[doc = " Since: 2.16"]
11056pub type GChecksumType = u32;
11057#[repr(C)]
11058#[derive(Debug, Copy, Clone)]
11059pub struct _GChecksum {
11060    _unused: [u8; 0],
11061}
11062#[doc = " GChecksum:"]
11063#[doc = ""]
11064#[doc = " An opaque structure representing a checksumming operation."]
11065#[doc = " To create a new GChecksum, use g_checksum_new(). To free"]
11066#[doc = " a GChecksum, use g_checksum_free()."]
11067#[doc = ""]
11068#[doc = " Since: 2.16"]
11069pub type GChecksum = _GChecksum;
11070extern "C" {
11071    pub fn g_checksum_type_get_length(checksum_type: GChecksumType) -> gssize;
11072}
11073extern "C" {
11074    pub fn g_checksum_new(checksum_type: GChecksumType) -> *mut GChecksum;
11075}
11076extern "C" {
11077    pub fn g_checksum_reset(checksum: *mut GChecksum);
11078}
11079extern "C" {
11080    pub fn g_checksum_copy(checksum: *const GChecksum) -> *mut GChecksum;
11081}
11082extern "C" {
11083    pub fn g_checksum_free(checksum: *mut GChecksum);
11084}
11085extern "C" {
11086    pub fn g_checksum_update(checksum: *mut GChecksum, data: *const guchar, length: gssize);
11087}
11088extern "C" {
11089    pub fn g_checksum_get_string(checksum: *mut GChecksum) -> *const gchar;
11090}
11091extern "C" {
11092    pub fn g_checksum_get_digest(
11093        checksum: *mut GChecksum,
11094        buffer: *mut guint8,
11095        digest_len: *mut gsize,
11096    );
11097}
11098extern "C" {
11099    pub fn g_compute_checksum_for_data(
11100        checksum_type: GChecksumType,
11101        data: *const guchar,
11102        length: gsize,
11103    ) -> *mut gchar;
11104}
11105extern "C" {
11106    pub fn g_compute_checksum_for_string(
11107        checksum_type: GChecksumType,
11108        str: *const gchar,
11109        length: gssize,
11110    ) -> *mut gchar;
11111}
11112extern "C" {
11113    pub fn g_compute_checksum_for_bytes(
11114        checksum_type: GChecksumType,
11115        data: *mut GBytes,
11116    ) -> *mut gchar;
11117}
11118pub const GConvertError_G_CONVERT_ERROR_NO_CONVERSION: GConvertError = 0;
11119pub const GConvertError_G_CONVERT_ERROR_ILLEGAL_SEQUENCE: GConvertError = 1;
11120pub const GConvertError_G_CONVERT_ERROR_FAILED: GConvertError = 2;
11121pub const GConvertError_G_CONVERT_ERROR_PARTIAL_INPUT: GConvertError = 3;
11122pub const GConvertError_G_CONVERT_ERROR_BAD_URI: GConvertError = 4;
11123pub const GConvertError_G_CONVERT_ERROR_NOT_ABSOLUTE_PATH: GConvertError = 5;
11124pub const GConvertError_G_CONVERT_ERROR_NO_MEMORY: GConvertError = 6;
11125pub const GConvertError_G_CONVERT_ERROR_EMBEDDED_NUL: GConvertError = 7;
11126#[doc = " GConvertError:"]
11127#[doc = " @G_CONVERT_ERROR_NO_CONVERSION: Conversion between the requested character"]
11128#[doc = "     sets is not supported."]
11129#[doc = " @G_CONVERT_ERROR_ILLEGAL_SEQUENCE: Invalid byte sequence in conversion input;"]
11130#[doc = "    or the character sequence could not be represented in the target"]
11131#[doc = "    character set."]
11132#[doc = " @G_CONVERT_ERROR_FAILED: Conversion failed for some reason."]
11133#[doc = " @G_CONVERT_ERROR_PARTIAL_INPUT: Partial character sequence at end of input."]
11134#[doc = " @G_CONVERT_ERROR_BAD_URI: URI is invalid."]
11135#[doc = " @G_CONVERT_ERROR_NOT_ABSOLUTE_PATH: Pathname is not an absolute path."]
11136#[doc = " @G_CONVERT_ERROR_NO_MEMORY: No memory available. Since: 2.40"]
11137#[doc = " @G_CONVERT_ERROR_EMBEDDED_NUL: An embedded NUL character is present in"]
11138#[doc = "     conversion output where a NUL-terminated string is expected."]
11139#[doc = "     Since: 2.56"]
11140#[doc = ""]
11141#[doc = " Error codes returned by character set conversion routines."]
11142pub type GConvertError = u32;
11143extern "C" {
11144    pub fn g_convert_error_quark() -> GQuark;
11145}
11146#[repr(C)]
11147#[derive(Debug, Copy, Clone)]
11148pub struct _GIConv {
11149    _unused: [u8; 0],
11150}
11151#[doc = " GIConv: (skip)"]
11152#[doc = ""]
11153#[doc = " The GIConv struct wraps an iconv() conversion descriptor. It contains"]
11154#[doc = " private data and should only be accessed using the following functions."]
11155pub type GIConv = *mut _GIConv;
11156extern "C" {
11157    pub fn g_iconv_open(to_codeset: *const gchar, from_codeset: *const gchar) -> GIConv;
11158}
11159extern "C" {
11160    pub fn g_iconv(
11161        converter: GIConv,
11162        inbuf: *mut *mut gchar,
11163        inbytes_left: *mut gsize,
11164        outbuf: *mut *mut gchar,
11165        outbytes_left: *mut gsize,
11166    ) -> gsize;
11167}
11168extern "C" {
11169    pub fn g_iconv_close(converter: GIConv) -> gint;
11170}
11171extern "C" {
11172    pub fn g_convert(
11173        str: *const gchar,
11174        len: gssize,
11175        to_codeset: *const gchar,
11176        from_codeset: *const gchar,
11177        bytes_read: *mut gsize,
11178        bytes_written: *mut gsize,
11179        error: *mut *mut GError,
11180    ) -> *mut gchar;
11181}
11182extern "C" {
11183    pub fn g_convert_with_iconv(
11184        str: *const gchar,
11185        len: gssize,
11186        converter: GIConv,
11187        bytes_read: *mut gsize,
11188        bytes_written: *mut gsize,
11189        error: *mut *mut GError,
11190    ) -> *mut gchar;
11191}
11192extern "C" {
11193    pub fn g_convert_with_fallback(
11194        str: *const gchar,
11195        len: gssize,
11196        to_codeset: *const gchar,
11197        from_codeset: *const gchar,
11198        fallback: *const gchar,
11199        bytes_read: *mut gsize,
11200        bytes_written: *mut gsize,
11201        error: *mut *mut GError,
11202    ) -> *mut gchar;
11203}
11204extern "C" {
11205    pub fn g_locale_to_utf8(
11206        opsysstring: *const gchar,
11207        len: gssize,
11208        bytes_read: *mut gsize,
11209        bytes_written: *mut gsize,
11210        error: *mut *mut GError,
11211    ) -> *mut gchar;
11212}
11213extern "C" {
11214    pub fn g_locale_from_utf8(
11215        utf8string: *const gchar,
11216        len: gssize,
11217        bytes_read: *mut gsize,
11218        bytes_written: *mut gsize,
11219        error: *mut *mut GError,
11220    ) -> *mut gchar;
11221}
11222extern "C" {
11223    pub fn g_filename_to_utf8(
11224        opsysstring: *const gchar,
11225        len: gssize,
11226        bytes_read: *mut gsize,
11227        bytes_written: *mut gsize,
11228        error: *mut *mut GError,
11229    ) -> *mut gchar;
11230}
11231extern "C" {
11232    pub fn g_filename_from_utf8(
11233        utf8string: *const gchar,
11234        len: gssize,
11235        bytes_read: *mut gsize,
11236        bytes_written: *mut gsize,
11237        error: *mut *mut GError,
11238    ) -> *mut gchar;
11239}
11240extern "C" {
11241    pub fn g_filename_from_uri(
11242        uri: *const gchar,
11243        hostname: *mut *mut gchar,
11244        error: *mut *mut GError,
11245    ) -> *mut gchar;
11246}
11247extern "C" {
11248    pub fn g_filename_to_uri(
11249        filename: *const gchar,
11250        hostname: *const gchar,
11251        error: *mut *mut GError,
11252    ) -> *mut gchar;
11253}
11254extern "C" {
11255    pub fn g_filename_display_name(filename: *const gchar) -> *mut gchar;
11256}
11257extern "C" {
11258    pub fn g_get_filename_charsets(charsets: *mut *mut *const gchar) -> gboolean;
11259}
11260extern "C" {
11261    pub fn g_filename_display_basename(filename: *const gchar) -> *mut gchar;
11262}
11263extern "C" {
11264    pub fn g_uri_list_extract_uris(uri_list: *const gchar) -> *mut *mut gchar;
11265}
11266#[repr(C)]
11267#[derive(Debug, Copy, Clone)]
11268pub struct _GData {
11269    _unused: [u8; 0],
11270}
11271pub type GData = _GData;
11272pub type GDataForeachFunc = ::std::option::Option<
11273    unsafe extern "C" fn(key_id: GQuark, data: gpointer, user_data: gpointer),
11274>;
11275extern "C" {
11276    pub fn g_datalist_init(datalist: *mut *mut GData);
11277}
11278extern "C" {
11279    pub fn g_datalist_clear(datalist: *mut *mut GData);
11280}
11281extern "C" {
11282    pub fn g_datalist_id_get_data(datalist: *mut *mut GData, key_id: GQuark) -> gpointer;
11283}
11284extern "C" {
11285    pub fn g_datalist_id_set_data_full(
11286        datalist: *mut *mut GData,
11287        key_id: GQuark,
11288        data: gpointer,
11289        destroy_func: GDestroyNotify,
11290    );
11291}
11292pub type GDuplicateFunc =
11293    ::std::option::Option<unsafe extern "C" fn(data: gpointer, user_data: gpointer) -> gpointer>;
11294extern "C" {
11295    pub fn g_datalist_id_dup_data(
11296        datalist: *mut *mut GData,
11297        key_id: GQuark,
11298        dup_func: GDuplicateFunc,
11299        user_data: gpointer,
11300    ) -> gpointer;
11301}
11302extern "C" {
11303    pub fn g_datalist_id_replace_data(
11304        datalist: *mut *mut GData,
11305        key_id: GQuark,
11306        oldval: gpointer,
11307        newval: gpointer,
11308        destroy: GDestroyNotify,
11309        old_destroy: *mut GDestroyNotify,
11310    ) -> gboolean;
11311}
11312extern "C" {
11313    pub fn g_datalist_id_remove_no_notify(datalist: *mut *mut GData, key_id: GQuark) -> gpointer;
11314}
11315extern "C" {
11316    pub fn g_datalist_foreach(
11317        datalist: *mut *mut GData,
11318        func: GDataForeachFunc,
11319        user_data: gpointer,
11320    );
11321}
11322extern "C" {
11323    pub fn g_datalist_set_flags(datalist: *mut *mut GData, flags: guint);
11324}
11325extern "C" {
11326    pub fn g_datalist_unset_flags(datalist: *mut *mut GData, flags: guint);
11327}
11328extern "C" {
11329    pub fn g_datalist_get_flags(datalist: *mut *mut GData) -> guint;
11330}
11331extern "C" {
11332    pub fn g_dataset_destroy(dataset_location: gconstpointer);
11333}
11334extern "C" {
11335    pub fn g_dataset_id_get_data(dataset_location: gconstpointer, key_id: GQuark) -> gpointer;
11336}
11337extern "C" {
11338    pub fn g_datalist_get_data(datalist: *mut *mut GData, key: *const gchar) -> gpointer;
11339}
11340extern "C" {
11341    pub fn g_dataset_id_set_data_full(
11342        dataset_location: gconstpointer,
11343        key_id: GQuark,
11344        data: gpointer,
11345        destroy_func: GDestroyNotify,
11346    );
11347}
11348extern "C" {
11349    pub fn g_dataset_id_remove_no_notify(
11350        dataset_location: gconstpointer,
11351        key_id: GQuark,
11352    ) -> gpointer;
11353}
11354extern "C" {
11355    pub fn g_dataset_foreach(
11356        dataset_location: gconstpointer,
11357        func: GDataForeachFunc,
11358        user_data: gpointer,
11359    );
11360}
11361pub type GTime = gint32;
11362pub type GDateYear = guint16;
11363pub type GDateDay = guint8;
11364pub type GDate = _GDate;
11365pub const GDateDMY_G_DATE_DAY: GDateDMY = 0;
11366pub const GDateDMY_G_DATE_MONTH: GDateDMY = 1;
11367pub const GDateDMY_G_DATE_YEAR: GDateDMY = 2;
11368pub type GDateDMY = u32;
11369pub const GDateWeekday_G_DATE_BAD_WEEKDAY: GDateWeekday = 0;
11370pub const GDateWeekday_G_DATE_MONDAY: GDateWeekday = 1;
11371pub const GDateWeekday_G_DATE_TUESDAY: GDateWeekday = 2;
11372pub const GDateWeekday_G_DATE_WEDNESDAY: GDateWeekday = 3;
11373pub const GDateWeekday_G_DATE_THURSDAY: GDateWeekday = 4;
11374pub const GDateWeekday_G_DATE_FRIDAY: GDateWeekday = 5;
11375pub const GDateWeekday_G_DATE_SATURDAY: GDateWeekday = 6;
11376pub const GDateWeekday_G_DATE_SUNDAY: GDateWeekday = 7;
11377pub type GDateWeekday = u32;
11378pub const GDateMonth_G_DATE_BAD_MONTH: GDateMonth = 0;
11379pub const GDateMonth_G_DATE_JANUARY: GDateMonth = 1;
11380pub const GDateMonth_G_DATE_FEBRUARY: GDateMonth = 2;
11381pub const GDateMonth_G_DATE_MARCH: GDateMonth = 3;
11382pub const GDateMonth_G_DATE_APRIL: GDateMonth = 4;
11383pub const GDateMonth_G_DATE_MAY: GDateMonth = 5;
11384pub const GDateMonth_G_DATE_JUNE: GDateMonth = 6;
11385pub const GDateMonth_G_DATE_JULY: GDateMonth = 7;
11386pub const GDateMonth_G_DATE_AUGUST: GDateMonth = 8;
11387pub const GDateMonth_G_DATE_SEPTEMBER: GDateMonth = 9;
11388pub const GDateMonth_G_DATE_OCTOBER: GDateMonth = 10;
11389pub const GDateMonth_G_DATE_NOVEMBER: GDateMonth = 11;
11390pub const GDateMonth_G_DATE_DECEMBER: GDateMonth = 12;
11391pub type GDateMonth = u32;
11392#[repr(C)]
11393#[repr(align(4))]
11394#[derive(Debug, Copy, Clone)]
11395pub struct _GDate {
11396    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize], u32>,
11397}
11398#[test]
11399fn bindgen_test_layout__GDate() {
11400    assert_eq!(
11401        ::std::mem::size_of::<_GDate>(),
11402        8usize,
11403        concat!("Size of: ", stringify!(_GDate))
11404    );
11405    assert_eq!(
11406        ::std::mem::align_of::<_GDate>(),
11407        4usize,
11408        concat!("Alignment of ", stringify!(_GDate))
11409    );
11410}
11411impl _GDate {
11412    #[inline]
11413    pub fn julian_days(&self) -> guint {
11414        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 32u8) as u32) }
11415    }
11416    #[inline]
11417    pub fn set_julian_days(&mut self, val: guint) {
11418        unsafe {
11419            let val: u32 = ::std::mem::transmute(val);
11420            self._bitfield_1.set(0usize, 32u8, val as u64)
11421        }
11422    }
11423    #[inline]
11424    pub fn julian(&self) -> guint {
11425        unsafe { ::std::mem::transmute(self._bitfield_1.get(32usize, 1u8) as u32) }
11426    }
11427    #[inline]
11428    pub fn set_julian(&mut self, val: guint) {
11429        unsafe {
11430            let val: u32 = ::std::mem::transmute(val);
11431            self._bitfield_1.set(32usize, 1u8, val as u64)
11432        }
11433    }
11434    #[inline]
11435    pub fn dmy(&self) -> guint {
11436        unsafe { ::std::mem::transmute(self._bitfield_1.get(33usize, 1u8) as u32) }
11437    }
11438    #[inline]
11439    pub fn set_dmy(&mut self, val: guint) {
11440        unsafe {
11441            let val: u32 = ::std::mem::transmute(val);
11442            self._bitfield_1.set(33usize, 1u8, val as u64)
11443        }
11444    }
11445    #[inline]
11446    pub fn day(&self) -> guint {
11447        unsafe { ::std::mem::transmute(self._bitfield_1.get(34usize, 6u8) as u32) }
11448    }
11449    #[inline]
11450    pub fn set_day(&mut self, val: guint) {
11451        unsafe {
11452            let val: u32 = ::std::mem::transmute(val);
11453            self._bitfield_1.set(34usize, 6u8, val as u64)
11454        }
11455    }
11456    #[inline]
11457    pub fn month(&self) -> guint {
11458        unsafe { ::std::mem::transmute(self._bitfield_1.get(40usize, 4u8) as u32) }
11459    }
11460    #[inline]
11461    pub fn set_month(&mut self, val: guint) {
11462        unsafe {
11463            let val: u32 = ::std::mem::transmute(val);
11464            self._bitfield_1.set(40usize, 4u8, val as u64)
11465        }
11466    }
11467    #[inline]
11468    pub fn year(&self) -> guint {
11469        unsafe { ::std::mem::transmute(self._bitfield_1.get(44usize, 16u8) as u32) }
11470    }
11471    #[inline]
11472    pub fn set_year(&mut self, val: guint) {
11473        unsafe {
11474            let val: u32 = ::std::mem::transmute(val);
11475            self._bitfield_1.set(44usize, 16u8, val as u64)
11476        }
11477    }
11478    #[inline]
11479    pub fn new_bitfield_1(
11480        julian_days: guint,
11481        julian: guint,
11482        dmy: guint,
11483        day: guint,
11484        month: guint,
11485        year: guint,
11486    ) -> __BindgenBitfieldUnit<[u8; 8usize], u32> {
11487        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize], u32> =
11488            Default::default();
11489        __bindgen_bitfield_unit.set(0usize, 32u8, {
11490            let julian_days: u32 = unsafe { ::std::mem::transmute(julian_days) };
11491            julian_days as u64
11492        });
11493        __bindgen_bitfield_unit.set(32usize, 1u8, {
11494            let julian: u32 = unsafe { ::std::mem::transmute(julian) };
11495            julian as u64
11496        });
11497        __bindgen_bitfield_unit.set(33usize, 1u8, {
11498            let dmy: u32 = unsafe { ::std::mem::transmute(dmy) };
11499            dmy as u64
11500        });
11501        __bindgen_bitfield_unit.set(34usize, 6u8, {
11502            let day: u32 = unsafe { ::std::mem::transmute(day) };
11503            day as u64
11504        });
11505        __bindgen_bitfield_unit.set(40usize, 4u8, {
11506            let month: u32 = unsafe { ::std::mem::transmute(month) };
11507            month as u64
11508        });
11509        __bindgen_bitfield_unit.set(44usize, 16u8, {
11510            let year: u32 = unsafe { ::std::mem::transmute(year) };
11511            year as u64
11512        });
11513        __bindgen_bitfield_unit
11514    }
11515}
11516extern "C" {
11517    pub fn g_date_new() -> *mut GDate;
11518}
11519extern "C" {
11520    pub fn g_date_new_dmy(day: GDateDay, month: GDateMonth, year: GDateYear) -> *mut GDate;
11521}
11522extern "C" {
11523    pub fn g_date_new_julian(julian_day: guint32) -> *mut GDate;
11524}
11525extern "C" {
11526    pub fn g_date_free(date: *mut GDate);
11527}
11528extern "C" {
11529    pub fn g_date_copy(date: *const GDate) -> *mut GDate;
11530}
11531extern "C" {
11532    pub fn g_date_valid(date: *const GDate) -> gboolean;
11533}
11534extern "C" {
11535    pub fn g_date_valid_day(day: GDateDay) -> gboolean;
11536}
11537extern "C" {
11538    pub fn g_date_valid_month(month: GDateMonth) -> gboolean;
11539}
11540extern "C" {
11541    pub fn g_date_valid_year(year: GDateYear) -> gboolean;
11542}
11543extern "C" {
11544    pub fn g_date_valid_weekday(weekday: GDateWeekday) -> gboolean;
11545}
11546extern "C" {
11547    pub fn g_date_valid_julian(julian_date: guint32) -> gboolean;
11548}
11549extern "C" {
11550    pub fn g_date_valid_dmy(day: GDateDay, month: GDateMonth, year: GDateYear) -> gboolean;
11551}
11552extern "C" {
11553    pub fn g_date_get_weekday(date: *const GDate) -> GDateWeekday;
11554}
11555extern "C" {
11556    pub fn g_date_get_month(date: *const GDate) -> GDateMonth;
11557}
11558extern "C" {
11559    pub fn g_date_get_year(date: *const GDate) -> GDateYear;
11560}
11561extern "C" {
11562    pub fn g_date_get_day(date: *const GDate) -> GDateDay;
11563}
11564extern "C" {
11565    pub fn g_date_get_julian(date: *const GDate) -> guint32;
11566}
11567extern "C" {
11568    pub fn g_date_get_day_of_year(date: *const GDate) -> guint;
11569}
11570extern "C" {
11571    pub fn g_date_get_monday_week_of_year(date: *const GDate) -> guint;
11572}
11573extern "C" {
11574    pub fn g_date_get_sunday_week_of_year(date: *const GDate) -> guint;
11575}
11576extern "C" {
11577    pub fn g_date_get_iso8601_week_of_year(date: *const GDate) -> guint;
11578}
11579extern "C" {
11580    pub fn g_date_clear(date: *mut GDate, n_dates: guint);
11581}
11582extern "C" {
11583    pub fn g_date_set_parse(date: *mut GDate, str: *const gchar);
11584}
11585extern "C" {
11586    pub fn g_date_set_time_t(date: *mut GDate, timet: time_t);
11587}
11588extern "C" {
11589    pub fn g_date_set_time_val(date: *mut GDate, timeval: *mut GTimeVal);
11590}
11591extern "C" {
11592    pub fn g_date_set_time(date: *mut GDate, time_: GTime);
11593}
11594extern "C" {
11595    pub fn g_date_set_month(date: *mut GDate, month: GDateMonth);
11596}
11597extern "C" {
11598    pub fn g_date_set_day(date: *mut GDate, day: GDateDay);
11599}
11600extern "C" {
11601    pub fn g_date_set_year(date: *mut GDate, year: GDateYear);
11602}
11603extern "C" {
11604    pub fn g_date_set_dmy(date: *mut GDate, day: GDateDay, month: GDateMonth, y: GDateYear);
11605}
11606extern "C" {
11607    pub fn g_date_set_julian(date: *mut GDate, julian_date: guint32);
11608}
11609extern "C" {
11610    pub fn g_date_is_first_of_month(date: *const GDate) -> gboolean;
11611}
11612extern "C" {
11613    pub fn g_date_is_last_of_month(date: *const GDate) -> gboolean;
11614}
11615extern "C" {
11616    pub fn g_date_add_days(date: *mut GDate, n_days: guint);
11617}
11618extern "C" {
11619    pub fn g_date_subtract_days(date: *mut GDate, n_days: guint);
11620}
11621extern "C" {
11622    pub fn g_date_add_months(date: *mut GDate, n_months: guint);
11623}
11624extern "C" {
11625    pub fn g_date_subtract_months(date: *mut GDate, n_months: guint);
11626}
11627extern "C" {
11628    pub fn g_date_add_years(date: *mut GDate, n_years: guint);
11629}
11630extern "C" {
11631    pub fn g_date_subtract_years(date: *mut GDate, n_years: guint);
11632}
11633extern "C" {
11634    pub fn g_date_is_leap_year(year: GDateYear) -> gboolean;
11635}
11636extern "C" {
11637    pub fn g_date_get_days_in_month(month: GDateMonth, year: GDateYear) -> guint8;
11638}
11639extern "C" {
11640    pub fn g_date_get_monday_weeks_in_year(year: GDateYear) -> guint8;
11641}
11642extern "C" {
11643    pub fn g_date_get_sunday_weeks_in_year(year: GDateYear) -> guint8;
11644}
11645extern "C" {
11646    pub fn g_date_days_between(date1: *const GDate, date2: *const GDate) -> gint;
11647}
11648extern "C" {
11649    pub fn g_date_compare(lhs: *const GDate, rhs: *const GDate) -> gint;
11650}
11651extern "C" {
11652    pub fn g_date_to_struct_tm(date: *const GDate, tm: *mut tm);
11653}
11654extern "C" {
11655    pub fn g_date_clamp(date: *mut GDate, min_date: *const GDate, max_date: *const GDate);
11656}
11657extern "C" {
11658    pub fn g_date_order(date1: *mut GDate, date2: *mut GDate);
11659}
11660extern "C" {
11661    pub fn g_date_strftime(
11662        s: *mut gchar,
11663        slen: gsize,
11664        format: *const gchar,
11665        date: *const GDate,
11666    ) -> gsize;
11667}
11668#[repr(C)]
11669#[derive(Debug, Copy, Clone)]
11670pub struct _GTimeZone {
11671    _unused: [u8; 0],
11672}
11673pub type GTimeZone = _GTimeZone;
11674pub const GTimeType_G_TIME_TYPE_STANDARD: GTimeType = 0;
11675pub const GTimeType_G_TIME_TYPE_DAYLIGHT: GTimeType = 1;
11676pub const GTimeType_G_TIME_TYPE_UNIVERSAL: GTimeType = 2;
11677#[doc = " GTimeType:"]
11678#[doc = " @G_TIME_TYPE_STANDARD: the time is in local standard time"]
11679#[doc = " @G_TIME_TYPE_DAYLIGHT: the time is in local daylight time"]
11680#[doc = " @G_TIME_TYPE_UNIVERSAL: the time is in UTC"]
11681#[doc = ""]
11682#[doc = " Disambiguates a given time in two ways."]
11683#[doc = ""]
11684#[doc = " First, specifies if the given time is in universal or local time."]
11685#[doc = ""]
11686#[doc = " Second, if the time is in local time, specifies if it is local"]
11687#[doc = " standard time or local daylight time.  This is important for the case"]
11688#[doc = " where the same local time occurs twice (during daylight savings time"]
11689#[doc = " transitions, for example)."]
11690pub type GTimeType = u32;
11691extern "C" {
11692    pub fn g_time_zone_new(identifier: *const gchar) -> *mut GTimeZone;
11693}
11694extern "C" {
11695    pub fn g_time_zone_new_utc() -> *mut GTimeZone;
11696}
11697extern "C" {
11698    pub fn g_time_zone_new_local() -> *mut GTimeZone;
11699}
11700extern "C" {
11701    pub fn g_time_zone_ref(tz: *mut GTimeZone) -> *mut GTimeZone;
11702}
11703extern "C" {
11704    pub fn g_time_zone_unref(tz: *mut GTimeZone);
11705}
11706extern "C" {
11707    pub fn g_time_zone_find_interval(tz: *mut GTimeZone, type_: GTimeType, time_: gint64) -> gint;
11708}
11709extern "C" {
11710    pub fn g_time_zone_adjust_time(
11711        tz: *mut GTimeZone,
11712        type_: GTimeType,
11713        time_: *mut gint64,
11714    ) -> gint;
11715}
11716extern "C" {
11717    pub fn g_time_zone_get_abbreviation(tz: *mut GTimeZone, interval: gint) -> *const gchar;
11718}
11719extern "C" {
11720    pub fn g_time_zone_get_offset(tz: *mut GTimeZone, interval: gint) -> gint32;
11721}
11722extern "C" {
11723    pub fn g_time_zone_is_dst(tz: *mut GTimeZone, interval: gint) -> gboolean;
11724}
11725#[doc = " GTimeSpan:"]
11726#[doc = ""]
11727#[doc = " A value representing an interval of time, in microseconds."]
11728#[doc = ""]
11729#[doc = " Since: 2.26"]
11730pub type GTimeSpan = gint64;
11731#[repr(C)]
11732#[derive(Debug, Copy, Clone)]
11733pub struct _GDateTime {
11734    _unused: [u8; 0],
11735}
11736#[doc = " GDateTime:"]
11737#[doc = ""]
11738#[doc = " `GDateTime` is an opaque structure whose members"]
11739#[doc = " cannot be accessed directly."]
11740#[doc = ""]
11741#[doc = " Since: 2.26"]
11742pub type GDateTime = _GDateTime;
11743extern "C" {
11744    pub fn g_date_time_unref(datetime: *mut GDateTime);
11745}
11746extern "C" {
11747    pub fn g_date_time_ref(datetime: *mut GDateTime) -> *mut GDateTime;
11748}
11749extern "C" {
11750    pub fn g_date_time_new_now(tz: *mut GTimeZone) -> *mut GDateTime;
11751}
11752extern "C" {
11753    pub fn g_date_time_new_now_local() -> *mut GDateTime;
11754}
11755extern "C" {
11756    pub fn g_date_time_new_now_utc() -> *mut GDateTime;
11757}
11758extern "C" {
11759    pub fn g_date_time_new_from_unix_local(t: gint64) -> *mut GDateTime;
11760}
11761extern "C" {
11762    pub fn g_date_time_new_from_unix_utc(t: gint64) -> *mut GDateTime;
11763}
11764extern "C" {
11765    pub fn g_date_time_new_from_timeval_local(tv: *const GTimeVal) -> *mut GDateTime;
11766}
11767extern "C" {
11768    pub fn g_date_time_new_from_timeval_utc(tv: *const GTimeVal) -> *mut GDateTime;
11769}
11770extern "C" {
11771    pub fn g_date_time_new_from_iso8601(
11772        text: *const gchar,
11773        default_tz: *mut GTimeZone,
11774    ) -> *mut GDateTime;
11775}
11776extern "C" {
11777    pub fn g_date_time_new(
11778        tz: *mut GTimeZone,
11779        year: gint,
11780        month: gint,
11781        day: gint,
11782        hour: gint,
11783        minute: gint,
11784        seconds: gdouble,
11785    ) -> *mut GDateTime;
11786}
11787extern "C" {
11788    pub fn g_date_time_new_local(
11789        year: gint,
11790        month: gint,
11791        day: gint,
11792        hour: gint,
11793        minute: gint,
11794        seconds: gdouble,
11795    ) -> *mut GDateTime;
11796}
11797extern "C" {
11798    pub fn g_date_time_new_utc(
11799        year: gint,
11800        month: gint,
11801        day: gint,
11802        hour: gint,
11803        minute: gint,
11804        seconds: gdouble,
11805    ) -> *mut GDateTime;
11806}
11807extern "C" {
11808    pub fn g_date_time_add(datetime: *mut GDateTime, timespan: GTimeSpan) -> *mut GDateTime;
11809}
11810extern "C" {
11811    pub fn g_date_time_add_years(datetime: *mut GDateTime, years: gint) -> *mut GDateTime;
11812}
11813extern "C" {
11814    pub fn g_date_time_add_months(datetime: *mut GDateTime, months: gint) -> *mut GDateTime;
11815}
11816extern "C" {
11817    pub fn g_date_time_add_weeks(datetime: *mut GDateTime, weeks: gint) -> *mut GDateTime;
11818}
11819extern "C" {
11820    pub fn g_date_time_add_days(datetime: *mut GDateTime, days: gint) -> *mut GDateTime;
11821}
11822extern "C" {
11823    pub fn g_date_time_add_hours(datetime: *mut GDateTime, hours: gint) -> *mut GDateTime;
11824}
11825extern "C" {
11826    pub fn g_date_time_add_minutes(datetime: *mut GDateTime, minutes: gint) -> *mut GDateTime;
11827}
11828extern "C" {
11829    pub fn g_date_time_add_seconds(datetime: *mut GDateTime, seconds: gdouble) -> *mut GDateTime;
11830}
11831extern "C" {
11832    pub fn g_date_time_add_full(
11833        datetime: *mut GDateTime,
11834        years: gint,
11835        months: gint,
11836        days: gint,
11837        hours: gint,
11838        minutes: gint,
11839        seconds: gdouble,
11840    ) -> *mut GDateTime;
11841}
11842extern "C" {
11843    pub fn g_date_time_compare(dt1: gconstpointer, dt2: gconstpointer) -> gint;
11844}
11845extern "C" {
11846    pub fn g_date_time_difference(end: *mut GDateTime, begin: *mut GDateTime) -> GTimeSpan;
11847}
11848extern "C" {
11849    pub fn g_date_time_hash(datetime: gconstpointer) -> guint;
11850}
11851extern "C" {
11852    pub fn g_date_time_equal(dt1: gconstpointer, dt2: gconstpointer) -> gboolean;
11853}
11854extern "C" {
11855    pub fn g_date_time_get_ymd(
11856        datetime: *mut GDateTime,
11857        year: *mut gint,
11858        month: *mut gint,
11859        day: *mut gint,
11860    );
11861}
11862extern "C" {
11863    pub fn g_date_time_get_year(datetime: *mut GDateTime) -> gint;
11864}
11865extern "C" {
11866    pub fn g_date_time_get_month(datetime: *mut GDateTime) -> gint;
11867}
11868extern "C" {
11869    pub fn g_date_time_get_day_of_month(datetime: *mut GDateTime) -> gint;
11870}
11871extern "C" {
11872    pub fn g_date_time_get_week_numbering_year(datetime: *mut GDateTime) -> gint;
11873}
11874extern "C" {
11875    pub fn g_date_time_get_week_of_year(datetime: *mut GDateTime) -> gint;
11876}
11877extern "C" {
11878    pub fn g_date_time_get_day_of_week(datetime: *mut GDateTime) -> gint;
11879}
11880extern "C" {
11881    pub fn g_date_time_get_day_of_year(datetime: *mut GDateTime) -> gint;
11882}
11883extern "C" {
11884    pub fn g_date_time_get_hour(datetime: *mut GDateTime) -> gint;
11885}
11886extern "C" {
11887    pub fn g_date_time_get_minute(datetime: *mut GDateTime) -> gint;
11888}
11889extern "C" {
11890    pub fn g_date_time_get_second(datetime: *mut GDateTime) -> gint;
11891}
11892extern "C" {
11893    pub fn g_date_time_get_microsecond(datetime: *mut GDateTime) -> gint;
11894}
11895extern "C" {
11896    pub fn g_date_time_get_seconds(datetime: *mut GDateTime) -> gdouble;
11897}
11898extern "C" {
11899    pub fn g_date_time_to_unix(datetime: *mut GDateTime) -> gint64;
11900}
11901extern "C" {
11902    pub fn g_date_time_to_timeval(datetime: *mut GDateTime, tv: *mut GTimeVal) -> gboolean;
11903}
11904extern "C" {
11905    pub fn g_date_time_get_utc_offset(datetime: *mut GDateTime) -> GTimeSpan;
11906}
11907extern "C" {
11908    pub fn g_date_time_get_timezone_abbreviation(datetime: *mut GDateTime) -> *const gchar;
11909}
11910extern "C" {
11911    pub fn g_date_time_is_daylight_savings(datetime: *mut GDateTime) -> gboolean;
11912}
11913extern "C" {
11914    pub fn g_date_time_to_timezone(datetime: *mut GDateTime, tz: *mut GTimeZone) -> *mut GDateTime;
11915}
11916extern "C" {
11917    pub fn g_date_time_to_local(datetime: *mut GDateTime) -> *mut GDateTime;
11918}
11919extern "C" {
11920    pub fn g_date_time_to_utc(datetime: *mut GDateTime) -> *mut GDateTime;
11921}
11922extern "C" {
11923    pub fn g_date_time_format(datetime: *mut GDateTime, format: *const gchar) -> *mut gchar;
11924}
11925#[repr(C)]
11926#[derive(Debug, Copy, Clone)]
11927pub struct _GDir {
11928    _unused: [u8; 0],
11929}
11930pub type GDir = _GDir;
11931extern "C" {
11932    pub fn g_dir_open(path: *const gchar, flags: guint, error: *mut *mut GError) -> *mut GDir;
11933}
11934extern "C" {
11935    pub fn g_dir_read_name(dir: *mut GDir) -> *const gchar;
11936}
11937extern "C" {
11938    pub fn g_dir_rewind(dir: *mut GDir);
11939}
11940extern "C" {
11941    pub fn g_dir_close(dir: *mut GDir);
11942}
11943extern "C" {
11944    pub fn g_getenv(variable: *const gchar) -> *const gchar;
11945}
11946extern "C" {
11947    pub fn g_setenv(variable: *const gchar, value: *const gchar, overwrite: gboolean) -> gboolean;
11948}
11949extern "C" {
11950    pub fn g_unsetenv(variable: *const gchar);
11951}
11952extern "C" {
11953    pub fn g_listenv() -> *mut *mut gchar;
11954}
11955extern "C" {
11956    pub fn g_get_environ() -> *mut *mut gchar;
11957}
11958extern "C" {
11959    pub fn g_environ_getenv(envp: *mut *mut gchar, variable: *const gchar) -> *const gchar;
11960}
11961extern "C" {
11962    pub fn g_environ_setenv(
11963        envp: *mut *mut gchar,
11964        variable: *const gchar,
11965        value: *const gchar,
11966        overwrite: gboolean,
11967    ) -> *mut *mut gchar;
11968}
11969extern "C" {
11970    pub fn g_environ_unsetenv(envp: *mut *mut gchar, variable: *const gchar) -> *mut *mut gchar;
11971}
11972pub const GFileError_G_FILE_ERROR_EXIST: GFileError = 0;
11973pub const GFileError_G_FILE_ERROR_ISDIR: GFileError = 1;
11974pub const GFileError_G_FILE_ERROR_ACCES: GFileError = 2;
11975pub const GFileError_G_FILE_ERROR_NAMETOOLONG: GFileError = 3;
11976pub const GFileError_G_FILE_ERROR_NOENT: GFileError = 4;
11977pub const GFileError_G_FILE_ERROR_NOTDIR: GFileError = 5;
11978pub const GFileError_G_FILE_ERROR_NXIO: GFileError = 6;
11979pub const GFileError_G_FILE_ERROR_NODEV: GFileError = 7;
11980pub const GFileError_G_FILE_ERROR_ROFS: GFileError = 8;
11981pub const GFileError_G_FILE_ERROR_TXTBSY: GFileError = 9;
11982pub const GFileError_G_FILE_ERROR_FAULT: GFileError = 10;
11983pub const GFileError_G_FILE_ERROR_LOOP: GFileError = 11;
11984pub const GFileError_G_FILE_ERROR_NOSPC: GFileError = 12;
11985pub const GFileError_G_FILE_ERROR_NOMEM: GFileError = 13;
11986pub const GFileError_G_FILE_ERROR_MFILE: GFileError = 14;
11987pub const GFileError_G_FILE_ERROR_NFILE: GFileError = 15;
11988pub const GFileError_G_FILE_ERROR_BADF: GFileError = 16;
11989pub const GFileError_G_FILE_ERROR_INVAL: GFileError = 17;
11990pub const GFileError_G_FILE_ERROR_PIPE: GFileError = 18;
11991pub const GFileError_G_FILE_ERROR_AGAIN: GFileError = 19;
11992pub const GFileError_G_FILE_ERROR_INTR: GFileError = 20;
11993pub const GFileError_G_FILE_ERROR_IO: GFileError = 21;
11994pub const GFileError_G_FILE_ERROR_PERM: GFileError = 22;
11995pub const GFileError_G_FILE_ERROR_NOSYS: GFileError = 23;
11996pub const GFileError_G_FILE_ERROR_FAILED: GFileError = 24;
11997pub type GFileError = u32;
11998pub const GFileTest_G_FILE_TEST_IS_REGULAR: GFileTest = 1;
11999pub const GFileTest_G_FILE_TEST_IS_SYMLINK: GFileTest = 2;
12000pub const GFileTest_G_FILE_TEST_IS_DIR: GFileTest = 4;
12001pub const GFileTest_G_FILE_TEST_IS_EXECUTABLE: GFileTest = 8;
12002pub const GFileTest_G_FILE_TEST_EXISTS: GFileTest = 16;
12003pub type GFileTest = u32;
12004extern "C" {
12005    pub fn g_file_error_quark() -> GQuark;
12006}
12007extern "C" {
12008    pub fn g_file_error_from_errno(err_no: gint) -> GFileError;
12009}
12010extern "C" {
12011    pub fn g_file_test(filename: *const gchar, test: GFileTest) -> gboolean;
12012}
12013extern "C" {
12014    pub fn g_file_get_contents(
12015        filename: *const gchar,
12016        contents: *mut *mut gchar,
12017        length: *mut gsize,
12018        error: *mut *mut GError,
12019    ) -> gboolean;
12020}
12021extern "C" {
12022    pub fn g_file_set_contents(
12023        filename: *const gchar,
12024        contents: *const gchar,
12025        length: gssize,
12026        error: *mut *mut GError,
12027    ) -> gboolean;
12028}
12029extern "C" {
12030    pub fn g_file_read_link(filename: *const gchar, error: *mut *mut GError) -> *mut gchar;
12031}
12032extern "C" {
12033    pub fn g_mkdtemp(tmpl: *mut gchar) -> *mut gchar;
12034}
12035extern "C" {
12036    pub fn g_mkdtemp_full(tmpl: *mut gchar, mode: gint) -> *mut gchar;
12037}
12038extern "C" {
12039    pub fn g_mkstemp(tmpl: *mut gchar) -> gint;
12040}
12041extern "C" {
12042    pub fn g_mkstemp_full(tmpl: *mut gchar, flags: gint, mode: gint) -> gint;
12043}
12044extern "C" {
12045    pub fn g_file_open_tmp(
12046        tmpl: *const gchar,
12047        name_used: *mut *mut gchar,
12048        error: *mut *mut GError,
12049    ) -> gint;
12050}
12051extern "C" {
12052    pub fn g_dir_make_tmp(tmpl: *const gchar, error: *mut *mut GError) -> *mut gchar;
12053}
12054extern "C" {
12055    pub fn g_build_path(separator: *const gchar, first_element: *const gchar, ...) -> *mut gchar;
12056}
12057extern "C" {
12058    pub fn g_build_pathv(separator: *const gchar, args: *mut *mut gchar) -> *mut gchar;
12059}
12060extern "C" {
12061    pub fn g_build_filename(first_element: *const gchar, ...) -> *mut gchar;
12062}
12063extern "C" {
12064    pub fn g_build_filenamev(args: *mut *mut gchar) -> *mut gchar;
12065}
12066extern "C" {
12067    pub fn g_build_filename_valist(first_element: *const gchar, args: *mut va_list) -> *mut gchar;
12068}
12069extern "C" {
12070    pub fn g_mkdir_with_parents(pathname: *const gchar, mode: gint) -> gint;
12071}
12072extern "C" {
12073    pub fn g_path_is_absolute(file_name: *const gchar) -> gboolean;
12074}
12075extern "C" {
12076    pub fn g_path_skip_root(file_name: *const gchar) -> *const gchar;
12077}
12078extern "C" {
12079    pub fn g_basename(file_name: *const gchar) -> *const gchar;
12080}
12081extern "C" {
12082    pub fn g_get_current_dir() -> *mut gchar;
12083}
12084extern "C" {
12085    pub fn g_path_get_basename(file_name: *const gchar) -> *mut gchar;
12086}
12087extern "C" {
12088    pub fn g_path_get_dirname(file_name: *const gchar) -> *mut gchar;
12089}
12090extern "C" {
12091    pub fn g_strip_context(msgid: *const gchar, msgval: *const gchar) -> *const gchar;
12092}
12093extern "C" {
12094    pub fn g_dgettext(domain: *const gchar, msgid: *const gchar) -> *const gchar;
12095}
12096extern "C" {
12097    pub fn g_dcgettext(domain: *const gchar, msgid: *const gchar, category: gint) -> *const gchar;
12098}
12099extern "C" {
12100    pub fn g_dngettext(
12101        domain: *const gchar,
12102        msgid: *const gchar,
12103        msgid_plural: *const gchar,
12104        n: gulong,
12105    ) -> *const gchar;
12106}
12107extern "C" {
12108    pub fn g_dpgettext(
12109        domain: *const gchar,
12110        msgctxtid: *const gchar,
12111        msgidoffset: gsize,
12112    ) -> *const gchar;
12113}
12114extern "C" {
12115    pub fn g_dpgettext2(
12116        domain: *const gchar,
12117        context: *const gchar,
12118        msgid: *const gchar,
12119    ) -> *const gchar;
12120}
12121#[doc = " GMemVTable:"]
12122#[doc = " @malloc: function to use for allocating memory."]
12123#[doc = " @realloc: function to use for reallocating memory."]
12124#[doc = " @free: function to use to free memory."]
12125#[doc = " @calloc: function to use for allocating zero-filled memory."]
12126#[doc = " @try_malloc: function to use for allocating memory without a default error handler."]
12127#[doc = " @try_realloc: function to use for reallocating memory without a default error handler."]
12128#[doc = ""]
12129#[doc = " A set of functions used to perform memory allocation. The same #GMemVTable must"]
12130#[doc = " be used for all allocations in the same program; a call to g_mem_set_vtable(),"]
12131#[doc = " if it exists, should be prior to any use of GLib."]
12132#[doc = ""]
12133#[doc = " This functions related to this has been deprecated in 2.46, and no longer work."]
12134pub type GMemVTable = _GMemVTable;
12135extern "C" {
12136    pub fn g_free(mem: gpointer);
12137}
12138extern "C" {
12139    pub fn g_clear_pointer(pp: *mut gpointer, destroy: GDestroyNotify);
12140}
12141extern "C" {
12142    pub fn g_malloc(n_bytes: gsize) -> gpointer;
12143}
12144extern "C" {
12145    pub fn g_malloc0(n_bytes: gsize) -> gpointer;
12146}
12147extern "C" {
12148    pub fn g_realloc(mem: gpointer, n_bytes: gsize) -> gpointer;
12149}
12150extern "C" {
12151    pub fn g_try_malloc(n_bytes: gsize) -> gpointer;
12152}
12153extern "C" {
12154    pub fn g_try_malloc0(n_bytes: gsize) -> gpointer;
12155}
12156extern "C" {
12157    pub fn g_try_realloc(mem: gpointer, n_bytes: gsize) -> gpointer;
12158}
12159extern "C" {
12160    pub fn g_malloc_n(n_blocks: gsize, n_block_bytes: gsize) -> gpointer;
12161}
12162extern "C" {
12163    pub fn g_malloc0_n(n_blocks: gsize, n_block_bytes: gsize) -> gpointer;
12164}
12165extern "C" {
12166    pub fn g_realloc_n(mem: gpointer, n_blocks: gsize, n_block_bytes: gsize) -> gpointer;
12167}
12168extern "C" {
12169    pub fn g_try_malloc_n(n_blocks: gsize, n_block_bytes: gsize) -> gpointer;
12170}
12171extern "C" {
12172    pub fn g_try_malloc0_n(n_blocks: gsize, n_block_bytes: gsize) -> gpointer;
12173}
12174extern "C" {
12175    pub fn g_try_realloc_n(mem: gpointer, n_blocks: gsize, n_block_bytes: gsize) -> gpointer;
12176}
12177#[repr(C)]
12178#[derive(Debug, Copy, Clone)]
12179pub struct _GMemVTable {
12180    pub malloc: ::std::option::Option<unsafe extern "C" fn(n_bytes: gsize) -> gpointer>,
12181    pub realloc:
12182        ::std::option::Option<unsafe extern "C" fn(mem: gpointer, n_bytes: gsize) -> gpointer>,
12183    pub free: ::std::option::Option<unsafe extern "C" fn(mem: gpointer)>,
12184    pub calloc: ::std::option::Option<
12185        unsafe extern "C" fn(n_blocks: gsize, n_block_bytes: gsize) -> gpointer,
12186    >,
12187    pub try_malloc: ::std::option::Option<unsafe extern "C" fn(n_bytes: gsize) -> gpointer>,
12188    pub try_realloc:
12189        ::std::option::Option<unsafe extern "C" fn(mem: gpointer, n_bytes: gsize) -> gpointer>,
12190}
12191#[test]
12192fn bindgen_test_layout__GMemVTable() {
12193    assert_eq!(
12194        ::std::mem::size_of::<_GMemVTable>(),
12195        48usize,
12196        concat!("Size of: ", stringify!(_GMemVTable))
12197    );
12198    assert_eq!(
12199        ::std::mem::align_of::<_GMemVTable>(),
12200        8usize,
12201        concat!("Alignment of ", stringify!(_GMemVTable))
12202    );
12203    assert_eq!(
12204        unsafe { &(*(::std::ptr::null::<_GMemVTable>())).malloc as *const _ as usize },
12205        0usize,
12206        concat!(
12207            "Offset of field: ",
12208            stringify!(_GMemVTable),
12209            "::",
12210            stringify!(malloc)
12211        )
12212    );
12213    assert_eq!(
12214        unsafe { &(*(::std::ptr::null::<_GMemVTable>())).realloc as *const _ as usize },
12215        8usize,
12216        concat!(
12217            "Offset of field: ",
12218            stringify!(_GMemVTable),
12219            "::",
12220            stringify!(realloc)
12221        )
12222    );
12223    assert_eq!(
12224        unsafe { &(*(::std::ptr::null::<_GMemVTable>())).free as *const _ as usize },
12225        16usize,
12226        concat!(
12227            "Offset of field: ",
12228            stringify!(_GMemVTable),
12229            "::",
12230            stringify!(free)
12231        )
12232    );
12233    assert_eq!(
12234        unsafe { &(*(::std::ptr::null::<_GMemVTable>())).calloc as *const _ as usize },
12235        24usize,
12236        concat!(
12237            "Offset of field: ",
12238            stringify!(_GMemVTable),
12239            "::",
12240            stringify!(calloc)
12241        )
12242    );
12243    assert_eq!(
12244        unsafe { &(*(::std::ptr::null::<_GMemVTable>())).try_malloc as *const _ as usize },
12245        32usize,
12246        concat!(
12247            "Offset of field: ",
12248            stringify!(_GMemVTable),
12249            "::",
12250            stringify!(try_malloc)
12251        )
12252    );
12253    assert_eq!(
12254        unsafe { &(*(::std::ptr::null::<_GMemVTable>())).try_realloc as *const _ as usize },
12255        40usize,
12256        concat!(
12257            "Offset of field: ",
12258            stringify!(_GMemVTable),
12259            "::",
12260            stringify!(try_realloc)
12261        )
12262    );
12263}
12264extern "C" {
12265    pub fn g_mem_set_vtable(vtable: *mut GMemVTable);
12266}
12267extern "C" {
12268    pub fn g_mem_is_system_malloc() -> gboolean;
12269}
12270extern "C" {
12271    pub static mut g_mem_gc_friendly: gboolean;
12272}
12273extern "C" {
12274    pub static mut glib_mem_profiler_table: *mut GMemVTable;
12275}
12276extern "C" {
12277    pub fn g_mem_profile();
12278}
12279pub type GNode = _GNode;
12280pub const GTraverseFlags_G_TRAVERSE_LEAVES: GTraverseFlags = 1;
12281pub const GTraverseFlags_G_TRAVERSE_NON_LEAVES: GTraverseFlags = 2;
12282pub const GTraverseFlags_G_TRAVERSE_ALL: GTraverseFlags = 3;
12283pub const GTraverseFlags_G_TRAVERSE_MASK: GTraverseFlags = 3;
12284pub const GTraverseFlags_G_TRAVERSE_LEAFS: GTraverseFlags = 1;
12285pub const GTraverseFlags_G_TRAVERSE_NON_LEAFS: GTraverseFlags = 2;
12286pub type GTraverseFlags = u32;
12287pub const GTraverseType_G_IN_ORDER: GTraverseType = 0;
12288pub const GTraverseType_G_PRE_ORDER: GTraverseType = 1;
12289pub const GTraverseType_G_POST_ORDER: GTraverseType = 2;
12290pub const GTraverseType_G_LEVEL_ORDER: GTraverseType = 3;
12291pub type GTraverseType = u32;
12292pub type GNodeTraverseFunc =
12293    ::std::option::Option<unsafe extern "C" fn(node: *mut GNode, data: gpointer) -> gboolean>;
12294pub type GNodeForeachFunc =
12295    ::std::option::Option<unsafe extern "C" fn(node: *mut GNode, data: gpointer)>;
12296#[doc = " GCopyFunc:"]
12297#[doc = " @src: (not nullable): A pointer to the data which should be copied"]
12298#[doc = " @data: Additional data"]
12299#[doc = ""]
12300#[doc = " A function of this signature is used to copy the node data"]
12301#[doc = " when doing a deep-copy of a tree."]
12302#[doc = ""]
12303#[doc = " Returns: (not nullable): A pointer to the copy"]
12304#[doc = ""]
12305#[doc = " Since: 2.4"]
12306pub type GCopyFunc =
12307    ::std::option::Option<unsafe extern "C" fn(src: gconstpointer, data: gpointer) -> gpointer>;
12308#[repr(C)]
12309#[derive(Debug, Copy, Clone)]
12310pub struct _GNode {
12311    pub data: gpointer,
12312    pub next: *mut GNode,
12313    pub prev: *mut GNode,
12314    pub parent: *mut GNode,
12315    pub children: *mut GNode,
12316}
12317#[test]
12318fn bindgen_test_layout__GNode() {
12319    assert_eq!(
12320        ::std::mem::size_of::<_GNode>(),
12321        40usize,
12322        concat!("Size of: ", stringify!(_GNode))
12323    );
12324    assert_eq!(
12325        ::std::mem::align_of::<_GNode>(),
12326        8usize,
12327        concat!("Alignment of ", stringify!(_GNode))
12328    );
12329    assert_eq!(
12330        unsafe { &(*(::std::ptr::null::<_GNode>())).data as *const _ as usize },
12331        0usize,
12332        concat!(
12333            "Offset of field: ",
12334            stringify!(_GNode),
12335            "::",
12336            stringify!(data)
12337        )
12338    );
12339    assert_eq!(
12340        unsafe { &(*(::std::ptr::null::<_GNode>())).next as *const _ as usize },
12341        8usize,
12342        concat!(
12343            "Offset of field: ",
12344            stringify!(_GNode),
12345            "::",
12346            stringify!(next)
12347        )
12348    );
12349    assert_eq!(
12350        unsafe { &(*(::std::ptr::null::<_GNode>())).prev as *const _ as usize },
12351        16usize,
12352        concat!(
12353            "Offset of field: ",
12354            stringify!(_GNode),
12355            "::",
12356            stringify!(prev)
12357        )
12358    );
12359    assert_eq!(
12360        unsafe { &(*(::std::ptr::null::<_GNode>())).parent as *const _ as usize },
12361        24usize,
12362        concat!(
12363            "Offset of field: ",
12364            stringify!(_GNode),
12365            "::",
12366            stringify!(parent)
12367        )
12368    );
12369    assert_eq!(
12370        unsafe { &(*(::std::ptr::null::<_GNode>())).children as *const _ as usize },
12371        32usize,
12372        concat!(
12373            "Offset of field: ",
12374            stringify!(_GNode),
12375            "::",
12376            stringify!(children)
12377        )
12378    );
12379}
12380extern "C" {
12381    pub fn g_node_new(data: gpointer) -> *mut GNode;
12382}
12383extern "C" {
12384    pub fn g_node_destroy(root: *mut GNode);
12385}
12386extern "C" {
12387    pub fn g_node_unlink(node: *mut GNode);
12388}
12389extern "C" {
12390    pub fn g_node_copy_deep(node: *mut GNode, copy_func: GCopyFunc, data: gpointer) -> *mut GNode;
12391}
12392extern "C" {
12393    pub fn g_node_copy(node: *mut GNode) -> *mut GNode;
12394}
12395extern "C" {
12396    pub fn g_node_insert(parent: *mut GNode, position: gint, node: *mut GNode) -> *mut GNode;
12397}
12398extern "C" {
12399    pub fn g_node_insert_before(
12400        parent: *mut GNode,
12401        sibling: *mut GNode,
12402        node: *mut GNode,
12403    ) -> *mut GNode;
12404}
12405extern "C" {
12406    pub fn g_node_insert_after(
12407        parent: *mut GNode,
12408        sibling: *mut GNode,
12409        node: *mut GNode,
12410    ) -> *mut GNode;
12411}
12412extern "C" {
12413    pub fn g_node_prepend(parent: *mut GNode, node: *mut GNode) -> *mut GNode;
12414}
12415extern "C" {
12416    pub fn g_node_n_nodes(root: *mut GNode, flags: GTraverseFlags) -> guint;
12417}
12418extern "C" {
12419    pub fn g_node_get_root(node: *mut GNode) -> *mut GNode;
12420}
12421extern "C" {
12422    pub fn g_node_is_ancestor(node: *mut GNode, descendant: *mut GNode) -> gboolean;
12423}
12424extern "C" {
12425    pub fn g_node_depth(node: *mut GNode) -> guint;
12426}
12427extern "C" {
12428    pub fn g_node_find(
12429        root: *mut GNode,
12430        order: GTraverseType,
12431        flags: GTraverseFlags,
12432        data: gpointer,
12433    ) -> *mut GNode;
12434}
12435extern "C" {
12436    pub fn g_node_traverse(
12437        root: *mut GNode,
12438        order: GTraverseType,
12439        flags: GTraverseFlags,
12440        max_depth: gint,
12441        func: GNodeTraverseFunc,
12442        data: gpointer,
12443    );
12444}
12445extern "C" {
12446    pub fn g_node_max_height(root: *mut GNode) -> guint;
12447}
12448extern "C" {
12449    pub fn g_node_children_foreach(
12450        node: *mut GNode,
12451        flags: GTraverseFlags,
12452        func: GNodeForeachFunc,
12453        data: gpointer,
12454    );
12455}
12456extern "C" {
12457    pub fn g_node_reverse_children(node: *mut GNode);
12458}
12459extern "C" {
12460    pub fn g_node_n_children(node: *mut GNode) -> guint;
12461}
12462extern "C" {
12463    pub fn g_node_nth_child(node: *mut GNode, n: guint) -> *mut GNode;
12464}
12465extern "C" {
12466    pub fn g_node_last_child(node: *mut GNode) -> *mut GNode;
12467}
12468extern "C" {
12469    pub fn g_node_find_child(node: *mut GNode, flags: GTraverseFlags, data: gpointer)
12470        -> *mut GNode;
12471}
12472extern "C" {
12473    pub fn g_node_child_position(node: *mut GNode, child: *mut GNode) -> gint;
12474}
12475extern "C" {
12476    pub fn g_node_child_index(node: *mut GNode, data: gpointer) -> gint;
12477}
12478extern "C" {
12479    pub fn g_node_first_sibling(node: *mut GNode) -> *mut GNode;
12480}
12481extern "C" {
12482    pub fn g_node_last_sibling(node: *mut GNode) -> *mut GNode;
12483}
12484pub type GList = _GList;
12485#[repr(C)]
12486#[derive(Debug, Copy, Clone)]
12487pub struct _GList {
12488    pub data: gpointer,
12489    pub next: *mut GList,
12490    pub prev: *mut GList,
12491}
12492#[test]
12493fn bindgen_test_layout__GList() {
12494    assert_eq!(
12495        ::std::mem::size_of::<_GList>(),
12496        24usize,
12497        concat!("Size of: ", stringify!(_GList))
12498    );
12499    assert_eq!(
12500        ::std::mem::align_of::<_GList>(),
12501        8usize,
12502        concat!("Alignment of ", stringify!(_GList))
12503    );
12504    assert_eq!(
12505        unsafe { &(*(::std::ptr::null::<_GList>())).data as *const _ as usize },
12506        0usize,
12507        concat!(
12508            "Offset of field: ",
12509            stringify!(_GList),
12510            "::",
12511            stringify!(data)
12512        )
12513    );
12514    assert_eq!(
12515        unsafe { &(*(::std::ptr::null::<_GList>())).next as *const _ as usize },
12516        8usize,
12517        concat!(
12518            "Offset of field: ",
12519            stringify!(_GList),
12520            "::",
12521            stringify!(next)
12522        )
12523    );
12524    assert_eq!(
12525        unsafe { &(*(::std::ptr::null::<_GList>())).prev as *const _ as usize },
12526        16usize,
12527        concat!(
12528            "Offset of field: ",
12529            stringify!(_GList),
12530            "::",
12531            stringify!(prev)
12532        )
12533    );
12534}
12535extern "C" {
12536    pub fn g_list_alloc() -> *mut GList;
12537}
12538extern "C" {
12539    pub fn g_list_free(list: *mut GList);
12540}
12541extern "C" {
12542    pub fn g_list_free_1(list: *mut GList);
12543}
12544extern "C" {
12545    pub fn g_list_free_full(list: *mut GList, free_func: GDestroyNotify);
12546}
12547extern "C" {
12548    pub fn g_list_append(list: *mut GList, data: gpointer) -> *mut GList;
12549}
12550extern "C" {
12551    pub fn g_list_prepend(list: *mut GList, data: gpointer) -> *mut GList;
12552}
12553extern "C" {
12554    pub fn g_list_insert(list: *mut GList, data: gpointer, position: gint) -> *mut GList;
12555}
12556extern "C" {
12557    pub fn g_list_insert_sorted(list: *mut GList, data: gpointer, func: GCompareFunc)
12558        -> *mut GList;
12559}
12560extern "C" {
12561    pub fn g_list_insert_sorted_with_data(
12562        list: *mut GList,
12563        data: gpointer,
12564        func: GCompareDataFunc,
12565        user_data: gpointer,
12566    ) -> *mut GList;
12567}
12568extern "C" {
12569    pub fn g_list_insert_before(
12570        list: *mut GList,
12571        sibling: *mut GList,
12572        data: gpointer,
12573    ) -> *mut GList;
12574}
12575extern "C" {
12576    pub fn g_list_concat(list1: *mut GList, list2: *mut GList) -> *mut GList;
12577}
12578extern "C" {
12579    pub fn g_list_remove(list: *mut GList, data: gconstpointer) -> *mut GList;
12580}
12581extern "C" {
12582    pub fn g_list_remove_all(list: *mut GList, data: gconstpointer) -> *mut GList;
12583}
12584extern "C" {
12585    pub fn g_list_remove_link(list: *mut GList, llink: *mut GList) -> *mut GList;
12586}
12587extern "C" {
12588    pub fn g_list_delete_link(list: *mut GList, link_: *mut GList) -> *mut GList;
12589}
12590extern "C" {
12591    pub fn g_list_reverse(list: *mut GList) -> *mut GList;
12592}
12593extern "C" {
12594    pub fn g_list_copy(list: *mut GList) -> *mut GList;
12595}
12596extern "C" {
12597    pub fn g_list_copy_deep(list: *mut GList, func: GCopyFunc, user_data: gpointer) -> *mut GList;
12598}
12599extern "C" {
12600    pub fn g_list_nth(list: *mut GList, n: guint) -> *mut GList;
12601}
12602extern "C" {
12603    pub fn g_list_nth_prev(list: *mut GList, n: guint) -> *mut GList;
12604}
12605extern "C" {
12606    pub fn g_list_find(list: *mut GList, data: gconstpointer) -> *mut GList;
12607}
12608extern "C" {
12609    pub fn g_list_find_custom(
12610        list: *mut GList,
12611        data: gconstpointer,
12612        func: GCompareFunc,
12613    ) -> *mut GList;
12614}
12615extern "C" {
12616    pub fn g_list_position(list: *mut GList, llink: *mut GList) -> gint;
12617}
12618extern "C" {
12619    pub fn g_list_index(list: *mut GList, data: gconstpointer) -> gint;
12620}
12621extern "C" {
12622    pub fn g_list_last(list: *mut GList) -> *mut GList;
12623}
12624extern "C" {
12625    pub fn g_list_first(list: *mut GList) -> *mut GList;
12626}
12627extern "C" {
12628    pub fn g_list_length(list: *mut GList) -> guint;
12629}
12630extern "C" {
12631    pub fn g_list_foreach(list: *mut GList, func: GFunc, user_data: gpointer);
12632}
12633extern "C" {
12634    pub fn g_list_sort(list: *mut GList, compare_func: GCompareFunc) -> *mut GList;
12635}
12636extern "C" {
12637    pub fn g_list_sort_with_data(
12638        list: *mut GList,
12639        compare_func: GCompareDataFunc,
12640        user_data: gpointer,
12641    ) -> *mut GList;
12642}
12643extern "C" {
12644    pub fn g_list_nth_data(list: *mut GList, n: guint) -> gpointer;
12645}
12646#[repr(C)]
12647#[derive(Debug, Copy, Clone)]
12648pub struct _GHashTable {
12649    _unused: [u8; 0],
12650}
12651pub type GHashTable = _GHashTable;
12652pub type GHRFunc = ::std::option::Option<
12653    unsafe extern "C" fn(key: gpointer, value: gpointer, user_data: gpointer) -> gboolean,
12654>;
12655pub type GHashTableIter = _GHashTableIter;
12656#[repr(C)]
12657#[derive(Debug, Copy, Clone)]
12658pub struct _GHashTableIter {
12659    pub dummy1: gpointer,
12660    pub dummy2: gpointer,
12661    pub dummy3: gpointer,
12662    pub dummy4: ::std::os::raw::c_int,
12663    pub dummy5: gboolean,
12664    pub dummy6: gpointer,
12665}
12666#[test]
12667fn bindgen_test_layout__GHashTableIter() {
12668    assert_eq!(
12669        ::std::mem::size_of::<_GHashTableIter>(),
12670        40usize,
12671        concat!("Size of: ", stringify!(_GHashTableIter))
12672    );
12673    assert_eq!(
12674        ::std::mem::align_of::<_GHashTableIter>(),
12675        8usize,
12676        concat!("Alignment of ", stringify!(_GHashTableIter))
12677    );
12678    assert_eq!(
12679        unsafe { &(*(::std::ptr::null::<_GHashTableIter>())).dummy1 as *const _ as usize },
12680        0usize,
12681        concat!(
12682            "Offset of field: ",
12683            stringify!(_GHashTableIter),
12684            "::",
12685            stringify!(dummy1)
12686        )
12687    );
12688    assert_eq!(
12689        unsafe { &(*(::std::ptr::null::<_GHashTableIter>())).dummy2 as *const _ as usize },
12690        8usize,
12691        concat!(
12692            "Offset of field: ",
12693            stringify!(_GHashTableIter),
12694            "::",
12695            stringify!(dummy2)
12696        )
12697    );
12698    assert_eq!(
12699        unsafe { &(*(::std::ptr::null::<_GHashTableIter>())).dummy3 as *const _ as usize },
12700        16usize,
12701        concat!(
12702            "Offset of field: ",
12703            stringify!(_GHashTableIter),
12704            "::",
12705            stringify!(dummy3)
12706        )
12707    );
12708    assert_eq!(
12709        unsafe { &(*(::std::ptr::null::<_GHashTableIter>())).dummy4 as *const _ as usize },
12710        24usize,
12711        concat!(
12712            "Offset of field: ",
12713            stringify!(_GHashTableIter),
12714            "::",
12715            stringify!(dummy4)
12716        )
12717    );
12718    assert_eq!(
12719        unsafe { &(*(::std::ptr::null::<_GHashTableIter>())).dummy5 as *const _ as usize },
12720        28usize,
12721        concat!(
12722            "Offset of field: ",
12723            stringify!(_GHashTableIter),
12724            "::",
12725            stringify!(dummy5)
12726        )
12727    );
12728    assert_eq!(
12729        unsafe { &(*(::std::ptr::null::<_GHashTableIter>())).dummy6 as *const _ as usize },
12730        32usize,
12731        concat!(
12732            "Offset of field: ",
12733            stringify!(_GHashTableIter),
12734            "::",
12735            stringify!(dummy6)
12736        )
12737    );
12738}
12739extern "C" {
12740    pub fn g_hash_table_new(hash_func: GHashFunc, key_equal_func: GEqualFunc) -> *mut GHashTable;
12741}
12742extern "C" {
12743    pub fn g_hash_table_new_full(
12744        hash_func: GHashFunc,
12745        key_equal_func: GEqualFunc,
12746        key_destroy_func: GDestroyNotify,
12747        value_destroy_func: GDestroyNotify,
12748    ) -> *mut GHashTable;
12749}
12750extern "C" {
12751    pub fn g_hash_table_destroy(hash_table: *mut GHashTable);
12752}
12753extern "C" {
12754    pub fn g_hash_table_insert(
12755        hash_table: *mut GHashTable,
12756        key: gpointer,
12757        value: gpointer,
12758    ) -> gboolean;
12759}
12760extern "C" {
12761    pub fn g_hash_table_replace(
12762        hash_table: *mut GHashTable,
12763        key: gpointer,
12764        value: gpointer,
12765    ) -> gboolean;
12766}
12767extern "C" {
12768    pub fn g_hash_table_add(hash_table: *mut GHashTable, key: gpointer) -> gboolean;
12769}
12770extern "C" {
12771    pub fn g_hash_table_remove(hash_table: *mut GHashTable, key: gconstpointer) -> gboolean;
12772}
12773extern "C" {
12774    pub fn g_hash_table_remove_all(hash_table: *mut GHashTable);
12775}
12776extern "C" {
12777    pub fn g_hash_table_steal(hash_table: *mut GHashTable, key: gconstpointer) -> gboolean;
12778}
12779extern "C" {
12780    pub fn g_hash_table_steal_all(hash_table: *mut GHashTable);
12781}
12782extern "C" {
12783    pub fn g_hash_table_lookup(hash_table: *mut GHashTable, key: gconstpointer) -> gpointer;
12784}
12785extern "C" {
12786    pub fn g_hash_table_contains(hash_table: *mut GHashTable, key: gconstpointer) -> gboolean;
12787}
12788extern "C" {
12789    pub fn g_hash_table_lookup_extended(
12790        hash_table: *mut GHashTable,
12791        lookup_key: gconstpointer,
12792        orig_key: *mut gpointer,
12793        value: *mut gpointer,
12794    ) -> gboolean;
12795}
12796extern "C" {
12797    pub fn g_hash_table_foreach(hash_table: *mut GHashTable, func: GHFunc, user_data: gpointer);
12798}
12799extern "C" {
12800    pub fn g_hash_table_find(
12801        hash_table: *mut GHashTable,
12802        predicate: GHRFunc,
12803        user_data: gpointer,
12804    ) -> gpointer;
12805}
12806extern "C" {
12807    pub fn g_hash_table_foreach_remove(
12808        hash_table: *mut GHashTable,
12809        func: GHRFunc,
12810        user_data: gpointer,
12811    ) -> guint;
12812}
12813extern "C" {
12814    pub fn g_hash_table_foreach_steal(
12815        hash_table: *mut GHashTable,
12816        func: GHRFunc,
12817        user_data: gpointer,
12818    ) -> guint;
12819}
12820extern "C" {
12821    pub fn g_hash_table_size(hash_table: *mut GHashTable) -> guint;
12822}
12823extern "C" {
12824    pub fn g_hash_table_get_keys(hash_table: *mut GHashTable) -> *mut GList;
12825}
12826extern "C" {
12827    pub fn g_hash_table_get_values(hash_table: *mut GHashTable) -> *mut GList;
12828}
12829extern "C" {
12830    pub fn g_hash_table_get_keys_as_array(
12831        hash_table: *mut GHashTable,
12832        length: *mut guint,
12833    ) -> *mut gpointer;
12834}
12835extern "C" {
12836    pub fn g_hash_table_iter_init(iter: *mut GHashTableIter, hash_table: *mut GHashTable);
12837}
12838extern "C" {
12839    pub fn g_hash_table_iter_next(
12840        iter: *mut GHashTableIter,
12841        key: *mut gpointer,
12842        value: *mut gpointer,
12843    ) -> gboolean;
12844}
12845extern "C" {
12846    pub fn g_hash_table_iter_get_hash_table(iter: *mut GHashTableIter) -> *mut GHashTable;
12847}
12848extern "C" {
12849    pub fn g_hash_table_iter_remove(iter: *mut GHashTableIter);
12850}
12851extern "C" {
12852    pub fn g_hash_table_iter_replace(iter: *mut GHashTableIter, value: gpointer);
12853}
12854extern "C" {
12855    pub fn g_hash_table_iter_steal(iter: *mut GHashTableIter);
12856}
12857extern "C" {
12858    pub fn g_hash_table_ref(hash_table: *mut GHashTable) -> *mut GHashTable;
12859}
12860extern "C" {
12861    pub fn g_hash_table_unref(hash_table: *mut GHashTable);
12862}
12863extern "C" {
12864    pub fn g_str_equal(v1: gconstpointer, v2: gconstpointer) -> gboolean;
12865}
12866extern "C" {
12867    pub fn g_str_hash(v: gconstpointer) -> guint;
12868}
12869extern "C" {
12870    pub fn g_int_equal(v1: gconstpointer, v2: gconstpointer) -> gboolean;
12871}
12872extern "C" {
12873    pub fn g_int_hash(v: gconstpointer) -> guint;
12874}
12875extern "C" {
12876    pub fn g_int64_equal(v1: gconstpointer, v2: gconstpointer) -> gboolean;
12877}
12878extern "C" {
12879    pub fn g_int64_hash(v: gconstpointer) -> guint;
12880}
12881extern "C" {
12882    pub fn g_double_equal(v1: gconstpointer, v2: gconstpointer) -> gboolean;
12883}
12884extern "C" {
12885    pub fn g_double_hash(v: gconstpointer) -> guint;
12886}
12887extern "C" {
12888    pub fn g_direct_hash(v: gconstpointer) -> guint;
12889}
12890extern "C" {
12891    pub fn g_direct_equal(v1: gconstpointer, v2: gconstpointer) -> gboolean;
12892}
12893#[repr(C)]
12894#[derive(Debug, Copy, Clone)]
12895pub struct _GHmac {
12896    _unused: [u8; 0],
12897}
12898#[doc = " GHmac:"]
12899#[doc = ""]
12900#[doc = " An opaque structure representing a HMAC operation."]
12901#[doc = " To create a new GHmac, use g_hmac_new(). To free"]
12902#[doc = " a GHmac, use g_hmac_unref()."]
12903#[doc = ""]
12904#[doc = " Since: 2.30"]
12905pub type GHmac = _GHmac;
12906extern "C" {
12907    pub fn g_hmac_new(digest_type: GChecksumType, key: *const guchar, key_len: gsize)
12908        -> *mut GHmac;
12909}
12910extern "C" {
12911    pub fn g_hmac_copy(hmac: *const GHmac) -> *mut GHmac;
12912}
12913extern "C" {
12914    pub fn g_hmac_ref(hmac: *mut GHmac) -> *mut GHmac;
12915}
12916extern "C" {
12917    pub fn g_hmac_unref(hmac: *mut GHmac);
12918}
12919extern "C" {
12920    pub fn g_hmac_update(hmac: *mut GHmac, data: *const guchar, length: gssize);
12921}
12922extern "C" {
12923    pub fn g_hmac_get_string(hmac: *mut GHmac) -> *const gchar;
12924}
12925extern "C" {
12926    pub fn g_hmac_get_digest(hmac: *mut GHmac, buffer: *mut guint8, digest_len: *mut gsize);
12927}
12928extern "C" {
12929    pub fn g_compute_hmac_for_data(
12930        digest_type: GChecksumType,
12931        key: *const guchar,
12932        key_len: gsize,
12933        data: *const guchar,
12934        length: gsize,
12935    ) -> *mut gchar;
12936}
12937extern "C" {
12938    pub fn g_compute_hmac_for_string(
12939        digest_type: GChecksumType,
12940        key: *const guchar,
12941        key_len: gsize,
12942        str: *const gchar,
12943        length: gssize,
12944    ) -> *mut gchar;
12945}
12946extern "C" {
12947    pub fn g_compute_hmac_for_bytes(
12948        digest_type: GChecksumType,
12949        key: *mut GBytes,
12950        data: *mut GBytes,
12951    ) -> *mut gchar;
12952}
12953pub type GHook = _GHook;
12954pub type GHookList = _GHookList;
12955pub type GHookCompareFunc =
12956    ::std::option::Option<unsafe extern "C" fn(new_hook: *mut GHook, sibling: *mut GHook) -> gint>;
12957pub type GHookFindFunc =
12958    ::std::option::Option<unsafe extern "C" fn(hook: *mut GHook, data: gpointer) -> gboolean>;
12959pub type GHookMarshaller =
12960    ::std::option::Option<unsafe extern "C" fn(hook: *mut GHook, marshal_data: gpointer)>;
12961pub type GHookCheckMarshaller = ::std::option::Option<
12962    unsafe extern "C" fn(hook: *mut GHook, marshal_data: gpointer) -> gboolean,
12963>;
12964pub type GHookFunc = ::std::option::Option<unsafe extern "C" fn(data: gpointer)>;
12965pub type GHookCheckFunc = ::std::option::Option<unsafe extern "C" fn(data: gpointer) -> gboolean>;
12966pub type GHookFinalizeFunc =
12967    ::std::option::Option<unsafe extern "C" fn(hook_list: *mut GHookList, hook: *mut GHook)>;
12968pub const GHookFlagMask_G_HOOK_FLAG_ACTIVE: GHookFlagMask = 1;
12969pub const GHookFlagMask_G_HOOK_FLAG_IN_CALL: GHookFlagMask = 2;
12970pub const GHookFlagMask_G_HOOK_FLAG_MASK: GHookFlagMask = 15;
12971pub type GHookFlagMask = u32;
12972#[repr(C)]
12973#[derive(Debug, Copy, Clone)]
12974pub struct _GHookList {
12975    pub seq_id: gulong,
12976    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize], u16>,
12977    pub hooks: *mut GHook,
12978    pub dummy3: gpointer,
12979    pub finalize_hook: GHookFinalizeFunc,
12980    pub dummy: [gpointer; 2usize],
12981}
12982#[test]
12983fn bindgen_test_layout__GHookList() {
12984    assert_eq!(
12985        ::std::mem::size_of::<_GHookList>(),
12986        56usize,
12987        concat!("Size of: ", stringify!(_GHookList))
12988    );
12989    assert_eq!(
12990        ::std::mem::align_of::<_GHookList>(),
12991        8usize,
12992        concat!("Alignment of ", stringify!(_GHookList))
12993    );
12994    assert_eq!(
12995        unsafe { &(*(::std::ptr::null::<_GHookList>())).seq_id as *const _ as usize },
12996        0usize,
12997        concat!(
12998            "Offset of field: ",
12999            stringify!(_GHookList),
13000            "::",
13001            stringify!(seq_id)
13002        )
13003    );
13004    assert_eq!(
13005        unsafe { &(*(::std::ptr::null::<_GHookList>())).hooks as *const _ as usize },
13006        16usize,
13007        concat!(
13008            "Offset of field: ",
13009            stringify!(_GHookList),
13010            "::",
13011            stringify!(hooks)
13012        )
13013    );
13014    assert_eq!(
13015        unsafe { &(*(::std::ptr::null::<_GHookList>())).dummy3 as *const _ as usize },
13016        24usize,
13017        concat!(
13018            "Offset of field: ",
13019            stringify!(_GHookList),
13020            "::",
13021            stringify!(dummy3)
13022        )
13023    );
13024    assert_eq!(
13025        unsafe { &(*(::std::ptr::null::<_GHookList>())).finalize_hook as *const _ as usize },
13026        32usize,
13027        concat!(
13028            "Offset of field: ",
13029            stringify!(_GHookList),
13030            "::",
13031            stringify!(finalize_hook)
13032        )
13033    );
13034    assert_eq!(
13035        unsafe { &(*(::std::ptr::null::<_GHookList>())).dummy as *const _ as usize },
13036        40usize,
13037        concat!(
13038            "Offset of field: ",
13039            stringify!(_GHookList),
13040            "::",
13041            stringify!(dummy)
13042        )
13043    );
13044}
13045impl _GHookList {
13046    #[inline]
13047    pub fn hook_size(&self) -> guint {
13048        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 16u8) as u32) }
13049    }
13050    #[inline]
13051    pub fn set_hook_size(&mut self, val: guint) {
13052        unsafe {
13053            let val: u32 = ::std::mem::transmute(val);
13054            self._bitfield_1.set(0usize, 16u8, val as u64)
13055        }
13056    }
13057    #[inline]
13058    pub fn is_setup(&self) -> guint {
13059        unsafe { ::std::mem::transmute(self._bitfield_1.get(16usize, 1u8) as u32) }
13060    }
13061    #[inline]
13062    pub fn set_is_setup(&mut self, val: guint) {
13063        unsafe {
13064            let val: u32 = ::std::mem::transmute(val);
13065            self._bitfield_1.set(16usize, 1u8, val as u64)
13066        }
13067    }
13068    #[inline]
13069    pub fn new_bitfield_1(
13070        hook_size: guint,
13071        is_setup: guint,
13072    ) -> __BindgenBitfieldUnit<[u8; 4usize], u16> {
13073        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize], u16> =
13074            Default::default();
13075        __bindgen_bitfield_unit.set(0usize, 16u8, {
13076            let hook_size: u32 = unsafe { ::std::mem::transmute(hook_size) };
13077            hook_size as u64
13078        });
13079        __bindgen_bitfield_unit.set(16usize, 1u8, {
13080            let is_setup: u32 = unsafe { ::std::mem::transmute(is_setup) };
13081            is_setup as u64
13082        });
13083        __bindgen_bitfield_unit
13084    }
13085}
13086#[repr(C)]
13087#[derive(Debug, Copy, Clone)]
13088pub struct _GHook {
13089    pub data: gpointer,
13090    pub next: *mut GHook,
13091    pub prev: *mut GHook,
13092    pub ref_count: guint,
13093    pub hook_id: gulong,
13094    pub flags: guint,
13095    pub func: gpointer,
13096    pub destroy: GDestroyNotify,
13097}
13098#[test]
13099fn bindgen_test_layout__GHook() {
13100    assert_eq!(
13101        ::std::mem::size_of::<_GHook>(),
13102        64usize,
13103        concat!("Size of: ", stringify!(_GHook))
13104    );
13105    assert_eq!(
13106        ::std::mem::align_of::<_GHook>(),
13107        8usize,
13108        concat!("Alignment of ", stringify!(_GHook))
13109    );
13110    assert_eq!(
13111        unsafe { &(*(::std::ptr::null::<_GHook>())).data as *const _ as usize },
13112        0usize,
13113        concat!(
13114            "Offset of field: ",
13115            stringify!(_GHook),
13116            "::",
13117            stringify!(data)
13118        )
13119    );
13120    assert_eq!(
13121        unsafe { &(*(::std::ptr::null::<_GHook>())).next as *const _ as usize },
13122        8usize,
13123        concat!(
13124            "Offset of field: ",
13125            stringify!(_GHook),
13126            "::",
13127            stringify!(next)
13128        )
13129    );
13130    assert_eq!(
13131        unsafe { &(*(::std::ptr::null::<_GHook>())).prev as *const _ as usize },
13132        16usize,
13133        concat!(
13134            "Offset of field: ",
13135            stringify!(_GHook),
13136            "::",
13137            stringify!(prev)
13138        )
13139    );
13140    assert_eq!(
13141        unsafe { &(*(::std::ptr::null::<_GHook>())).ref_count as *const _ as usize },
13142        24usize,
13143        concat!(
13144            "Offset of field: ",
13145            stringify!(_GHook),
13146            "::",
13147            stringify!(ref_count)
13148        )
13149    );
13150    assert_eq!(
13151        unsafe { &(*(::std::ptr::null::<_GHook>())).hook_id as *const _ as usize },
13152        32usize,
13153        concat!(
13154            "Offset of field: ",
13155            stringify!(_GHook),
13156            "::",
13157            stringify!(hook_id)
13158        )
13159    );
13160    assert_eq!(
13161        unsafe { &(*(::std::ptr::null::<_GHook>())).flags as *const _ as usize },
13162        40usize,
13163        concat!(
13164            "Offset of field: ",
13165            stringify!(_GHook),
13166            "::",
13167            stringify!(flags)
13168        )
13169    );
13170    assert_eq!(
13171        unsafe { &(*(::std::ptr::null::<_GHook>())).func as *const _ as usize },
13172        48usize,
13173        concat!(
13174            "Offset of field: ",
13175            stringify!(_GHook),
13176            "::",
13177            stringify!(func)
13178        )
13179    );
13180    assert_eq!(
13181        unsafe { &(*(::std::ptr::null::<_GHook>())).destroy as *const _ as usize },
13182        56usize,
13183        concat!(
13184            "Offset of field: ",
13185            stringify!(_GHook),
13186            "::",
13187            stringify!(destroy)
13188        )
13189    );
13190}
13191extern "C" {
13192    pub fn g_hook_list_init(hook_list: *mut GHookList, hook_size: guint);
13193}
13194extern "C" {
13195    pub fn g_hook_list_clear(hook_list: *mut GHookList);
13196}
13197extern "C" {
13198    pub fn g_hook_alloc(hook_list: *mut GHookList) -> *mut GHook;
13199}
13200extern "C" {
13201    pub fn g_hook_free(hook_list: *mut GHookList, hook: *mut GHook);
13202}
13203extern "C" {
13204    pub fn g_hook_ref(hook_list: *mut GHookList, hook: *mut GHook) -> *mut GHook;
13205}
13206extern "C" {
13207    pub fn g_hook_unref(hook_list: *mut GHookList, hook: *mut GHook);
13208}
13209extern "C" {
13210    pub fn g_hook_destroy(hook_list: *mut GHookList, hook_id: gulong) -> gboolean;
13211}
13212extern "C" {
13213    pub fn g_hook_destroy_link(hook_list: *mut GHookList, hook: *mut GHook);
13214}
13215extern "C" {
13216    pub fn g_hook_prepend(hook_list: *mut GHookList, hook: *mut GHook);
13217}
13218extern "C" {
13219    pub fn g_hook_insert_before(hook_list: *mut GHookList, sibling: *mut GHook, hook: *mut GHook);
13220}
13221extern "C" {
13222    pub fn g_hook_insert_sorted(
13223        hook_list: *mut GHookList,
13224        hook: *mut GHook,
13225        func: GHookCompareFunc,
13226    );
13227}
13228extern "C" {
13229    pub fn g_hook_get(hook_list: *mut GHookList, hook_id: gulong) -> *mut GHook;
13230}
13231extern "C" {
13232    pub fn g_hook_find(
13233        hook_list: *mut GHookList,
13234        need_valids: gboolean,
13235        func: GHookFindFunc,
13236        data: gpointer,
13237    ) -> *mut GHook;
13238}
13239extern "C" {
13240    pub fn g_hook_find_data(
13241        hook_list: *mut GHookList,
13242        need_valids: gboolean,
13243        data: gpointer,
13244    ) -> *mut GHook;
13245}
13246extern "C" {
13247    pub fn g_hook_find_func(
13248        hook_list: *mut GHookList,
13249        need_valids: gboolean,
13250        func: gpointer,
13251    ) -> *mut GHook;
13252}
13253extern "C" {
13254    pub fn g_hook_find_func_data(
13255        hook_list: *mut GHookList,
13256        need_valids: gboolean,
13257        func: gpointer,
13258        data: gpointer,
13259    ) -> *mut GHook;
13260}
13261extern "C" {
13262    pub fn g_hook_first_valid(hook_list: *mut GHookList, may_be_in_call: gboolean) -> *mut GHook;
13263}
13264extern "C" {
13265    pub fn g_hook_next_valid(
13266        hook_list: *mut GHookList,
13267        hook: *mut GHook,
13268        may_be_in_call: gboolean,
13269    ) -> *mut GHook;
13270}
13271extern "C" {
13272    pub fn g_hook_compare_ids(new_hook: *mut GHook, sibling: *mut GHook) -> gint;
13273}
13274extern "C" {
13275    pub fn g_hook_list_invoke(hook_list: *mut GHookList, may_recurse: gboolean);
13276}
13277extern "C" {
13278    pub fn g_hook_list_invoke_check(hook_list: *mut GHookList, may_recurse: gboolean);
13279}
13280extern "C" {
13281    pub fn g_hook_list_marshal(
13282        hook_list: *mut GHookList,
13283        may_recurse: gboolean,
13284        marshaller: GHookMarshaller,
13285        marshal_data: gpointer,
13286    );
13287}
13288extern "C" {
13289    pub fn g_hook_list_marshal_check(
13290        hook_list: *mut GHookList,
13291        may_recurse: gboolean,
13292        marshaller: GHookCheckMarshaller,
13293        marshal_data: gpointer,
13294    );
13295}
13296extern "C" {
13297    pub fn g_hostname_is_non_ascii(hostname: *const gchar) -> gboolean;
13298}
13299extern "C" {
13300    pub fn g_hostname_is_ascii_encoded(hostname: *const gchar) -> gboolean;
13301}
13302extern "C" {
13303    pub fn g_hostname_is_ip_address(hostname: *const gchar) -> gboolean;
13304}
13305extern "C" {
13306    pub fn g_hostname_to_ascii(hostname: *const gchar) -> *mut gchar;
13307}
13308extern "C" {
13309    pub fn g_hostname_to_unicode(hostname: *const gchar) -> *mut gchar;
13310}
13311pub type GPollFD = _GPollFD;
13312#[doc = " GPollFunc:"]
13313#[doc = " @ufds: an array of #GPollFD elements"]
13314#[doc = " @nfsd: the number of elements in @ufds"]
13315#[doc = " @timeout_: the maximum time to wait for an event of the file descriptors."]
13316#[doc = "     A negative value indicates an infinite timeout."]
13317#[doc = ""]
13318#[doc = " Specifies the type of function passed to g_main_context_set_poll_func()."]
13319#[doc = " The semantics of the function should match those of the poll() system call."]
13320#[doc = ""]
13321#[doc = " Returns: the number of #GPollFD elements which have events or errors"]
13322#[doc = "     reported, or -1 if an error occurred."]
13323pub type GPollFunc = ::std::option::Option<
13324    unsafe extern "C" fn(ufds: *mut GPollFD, nfsd: guint, timeout_: gint) -> gint,
13325>;
13326#[doc = " GPollFD:"]
13327#[doc = " @fd: the file descriptor to poll (or a HANDLE on Win32)"]
13328#[doc = " @events: a bitwise combination from #GIOCondition, specifying which"]
13329#[doc = "     events should be polled for. Typically for reading from a file"]
13330#[doc = "     descriptor you would use %G_IO_IN | %G_IO_HUP | %G_IO_ERR, and"]
13331#[doc = "     for writing you would use %G_IO_OUT | %G_IO_ERR."]
13332#[doc = " @revents: a bitwise combination of flags from #GIOCondition, returned"]
13333#[doc = "     from the poll() function to indicate which events occurred."]
13334#[doc = ""]
13335#[doc = " Represents a file descriptor, which events to poll for, and which events"]
13336#[doc = " occurred."]
13337#[repr(C)]
13338#[derive(Debug, Copy, Clone)]
13339pub struct _GPollFD {
13340    pub fd: gint,
13341    pub events: gushort,
13342    pub revents: gushort,
13343}
13344#[test]
13345fn bindgen_test_layout__GPollFD() {
13346    assert_eq!(
13347        ::std::mem::size_of::<_GPollFD>(),
13348        8usize,
13349        concat!("Size of: ", stringify!(_GPollFD))
13350    );
13351    assert_eq!(
13352        ::std::mem::align_of::<_GPollFD>(),
13353        4usize,
13354        concat!("Alignment of ", stringify!(_GPollFD))
13355    );
13356    assert_eq!(
13357        unsafe { &(*(::std::ptr::null::<_GPollFD>())).fd as *const _ as usize },
13358        0usize,
13359        concat!(
13360            "Offset of field: ",
13361            stringify!(_GPollFD),
13362            "::",
13363            stringify!(fd)
13364        )
13365    );
13366    assert_eq!(
13367        unsafe { &(*(::std::ptr::null::<_GPollFD>())).events as *const _ as usize },
13368        4usize,
13369        concat!(
13370            "Offset of field: ",
13371            stringify!(_GPollFD),
13372            "::",
13373            stringify!(events)
13374        )
13375    );
13376    assert_eq!(
13377        unsafe { &(*(::std::ptr::null::<_GPollFD>())).revents as *const _ as usize },
13378        6usize,
13379        concat!(
13380            "Offset of field: ",
13381            stringify!(_GPollFD),
13382            "::",
13383            stringify!(revents)
13384        )
13385    );
13386}
13387extern "C" {
13388    #[doc = " G_POLLFD_FORMAT:"]
13389    #[doc = ""]
13390    #[doc = " A format specifier that can be used in printf()-style format strings"]
13391    #[doc = " when printing the @fd member of a #GPollFD."]
13392    pub fn g_poll(fds: *mut GPollFD, nfds: guint, timeout: gint) -> gint;
13393}
13394pub type GSList = _GSList;
13395#[repr(C)]
13396#[derive(Debug, Copy, Clone)]
13397pub struct _GSList {
13398    pub data: gpointer,
13399    pub next: *mut GSList,
13400}
13401#[test]
13402fn bindgen_test_layout__GSList() {
13403    assert_eq!(
13404        ::std::mem::size_of::<_GSList>(),
13405        16usize,
13406        concat!("Size of: ", stringify!(_GSList))
13407    );
13408    assert_eq!(
13409        ::std::mem::align_of::<_GSList>(),
13410        8usize,
13411        concat!("Alignment of ", stringify!(_GSList))
13412    );
13413    assert_eq!(
13414        unsafe { &(*(::std::ptr::null::<_GSList>())).data as *const _ as usize },
13415        0usize,
13416        concat!(
13417            "Offset of field: ",
13418            stringify!(_GSList),
13419            "::",
13420            stringify!(data)
13421        )
13422    );
13423    assert_eq!(
13424        unsafe { &(*(::std::ptr::null::<_GSList>())).next as *const _ as usize },
13425        8usize,
13426        concat!(
13427            "Offset of field: ",
13428            stringify!(_GSList),
13429            "::",
13430            stringify!(next)
13431        )
13432    );
13433}
13434extern "C" {
13435    pub fn g_slist_alloc() -> *mut GSList;
13436}
13437extern "C" {
13438    pub fn g_slist_free(list: *mut GSList);
13439}
13440extern "C" {
13441    pub fn g_slist_free_1(list: *mut GSList);
13442}
13443extern "C" {
13444    pub fn g_slist_free_full(list: *mut GSList, free_func: GDestroyNotify);
13445}
13446extern "C" {
13447    pub fn g_slist_append(list: *mut GSList, data: gpointer) -> *mut GSList;
13448}
13449extern "C" {
13450    pub fn g_slist_prepend(list: *mut GSList, data: gpointer) -> *mut GSList;
13451}
13452extern "C" {
13453    pub fn g_slist_insert(list: *mut GSList, data: gpointer, position: gint) -> *mut GSList;
13454}
13455extern "C" {
13456    pub fn g_slist_insert_sorted(
13457        list: *mut GSList,
13458        data: gpointer,
13459        func: GCompareFunc,
13460    ) -> *mut GSList;
13461}
13462extern "C" {
13463    pub fn g_slist_insert_sorted_with_data(
13464        list: *mut GSList,
13465        data: gpointer,
13466        func: GCompareDataFunc,
13467        user_data: gpointer,
13468    ) -> *mut GSList;
13469}
13470extern "C" {
13471    pub fn g_slist_insert_before(
13472        slist: *mut GSList,
13473        sibling: *mut GSList,
13474        data: gpointer,
13475    ) -> *mut GSList;
13476}
13477extern "C" {
13478    pub fn g_slist_concat(list1: *mut GSList, list2: *mut GSList) -> *mut GSList;
13479}
13480extern "C" {
13481    pub fn g_slist_remove(list: *mut GSList, data: gconstpointer) -> *mut GSList;
13482}
13483extern "C" {
13484    pub fn g_slist_remove_all(list: *mut GSList, data: gconstpointer) -> *mut GSList;
13485}
13486extern "C" {
13487    pub fn g_slist_remove_link(list: *mut GSList, link_: *mut GSList) -> *mut GSList;
13488}
13489extern "C" {
13490    pub fn g_slist_delete_link(list: *mut GSList, link_: *mut GSList) -> *mut GSList;
13491}
13492extern "C" {
13493    pub fn g_slist_reverse(list: *mut GSList) -> *mut GSList;
13494}
13495extern "C" {
13496    pub fn g_slist_copy(list: *mut GSList) -> *mut GSList;
13497}
13498extern "C" {
13499    pub fn g_slist_copy_deep(
13500        list: *mut GSList,
13501        func: GCopyFunc,
13502        user_data: gpointer,
13503    ) -> *mut GSList;
13504}
13505extern "C" {
13506    pub fn g_slist_nth(list: *mut GSList, n: guint) -> *mut GSList;
13507}
13508extern "C" {
13509    pub fn g_slist_find(list: *mut GSList, data: gconstpointer) -> *mut GSList;
13510}
13511extern "C" {
13512    pub fn g_slist_find_custom(
13513        list: *mut GSList,
13514        data: gconstpointer,
13515        func: GCompareFunc,
13516    ) -> *mut GSList;
13517}
13518extern "C" {
13519    pub fn g_slist_position(list: *mut GSList, llink: *mut GSList) -> gint;
13520}
13521extern "C" {
13522    pub fn g_slist_index(list: *mut GSList, data: gconstpointer) -> gint;
13523}
13524extern "C" {
13525    pub fn g_slist_last(list: *mut GSList) -> *mut GSList;
13526}
13527extern "C" {
13528    pub fn g_slist_length(list: *mut GSList) -> guint;
13529}
13530extern "C" {
13531    pub fn g_slist_foreach(list: *mut GSList, func: GFunc, user_data: gpointer);
13532}
13533extern "C" {
13534    pub fn g_slist_sort(list: *mut GSList, compare_func: GCompareFunc) -> *mut GSList;
13535}
13536extern "C" {
13537    pub fn g_slist_sort_with_data(
13538        list: *mut GSList,
13539        compare_func: GCompareDataFunc,
13540        user_data: gpointer,
13541    ) -> *mut GSList;
13542}
13543extern "C" {
13544    pub fn g_slist_nth_data(list: *mut GSList, n: guint) -> gpointer;
13545}
13546pub const GIOCondition_G_IO_IN: GIOCondition = 1;
13547pub const GIOCondition_G_IO_OUT: GIOCondition = 4;
13548pub const GIOCondition_G_IO_PRI: GIOCondition = 2;
13549pub const GIOCondition_G_IO_ERR: GIOCondition = 8;
13550pub const GIOCondition_G_IO_HUP: GIOCondition = 16;
13551pub const GIOCondition_G_IO_NVAL: GIOCondition = 32;
13552pub type GIOCondition = u32;
13553#[repr(C)]
13554#[derive(Debug, Copy, Clone)]
13555pub struct _GMainContext {
13556    _unused: [u8; 0],
13557}
13558#[doc = " GMainContext:"]
13559#[doc = ""]
13560#[doc = " The `GMainContext` struct is an opaque data"]
13561#[doc = " type representing a set of sources to be handled in a main loop."]
13562pub type GMainContext = _GMainContext;
13563#[repr(C)]
13564#[derive(Debug, Copy, Clone)]
13565pub struct _GMainLoop {
13566    _unused: [u8; 0],
13567}
13568#[doc = " GMainLoop:"]
13569#[doc = ""]
13570#[doc = " The `GMainLoop` struct is an opaque data type"]
13571#[doc = " representing the main event loop of a GLib or GTK+ application."]
13572pub type GMainLoop = _GMainLoop;
13573#[doc = " GSource:"]
13574#[doc = ""]
13575#[doc = " The `GSource` struct is an opaque data type"]
13576#[doc = " representing an event source."]
13577pub type GSource = _GSource;
13578#[repr(C)]
13579#[derive(Debug, Copy, Clone)]
13580pub struct _GSourcePrivate {
13581    _unused: [u8; 0],
13582}
13583pub type GSourcePrivate = _GSourcePrivate;
13584#[doc = " GSourceCallbackFuncs:"]
13585#[doc = " @ref: Called when a reference is added to the callback object"]
13586#[doc = " @unref: Called when a reference to the callback object is dropped"]
13587#[doc = " @get: Called to extract the callback function and data from the"]
13588#[doc = "     callback object."]
13589#[doc = ""]
13590#[doc = " The `GSourceCallbackFuncs` struct contains"]
13591#[doc = " functions for managing callback objects."]
13592pub type GSourceCallbackFuncs = _GSourceCallbackFuncs;
13593#[doc = " GSourceFuncs:"]
13594#[doc = " @prepare: Called before all the file descriptors are polled. If the"]
13595#[doc = "     source can determine that it is ready here (without waiting for the"]
13596#[doc = "     results of the poll() call) it should return %TRUE. It can also return"]
13597#[doc = "     a @timeout_ value which should be the maximum timeout (in milliseconds)"]
13598#[doc = "     which should be passed to the poll() call. The actual timeout used will"]
13599#[doc = "     be -1 if all sources returned -1, or it will be the minimum of all"]
13600#[doc = "     the @timeout_ values returned which were >= 0.  Since 2.36 this may"]
13601#[doc = "     be %NULL, in which case the effect is as if the function always returns"]
13602#[doc = "     %FALSE with a timeout of -1.  If @prepare returns a"]
13603#[doc = "     timeout and the source also has a ready time set, then the"]
13604#[doc = "     lower of the two will be used."]
13605#[doc = " @check: Called after all the file descriptors are polled. The source"]
13606#[doc = "     should return %TRUE if it is ready to be dispatched. Note that some"]
13607#[doc = "     time may have passed since the previous prepare function was called,"]
13608#[doc = "     so the source should be checked again here.  Since 2.36 this may"]
13609#[doc = "     be %NULL, in which case the effect is as if the function always returns"]
13610#[doc = "     %FALSE."]
13611#[doc = " @dispatch: Called to dispatch the event source, after it has returned"]
13612#[doc = "     %TRUE in either its @prepare or its @check function, or if a ready time"]
13613#[doc = "     has been reached. The @dispatch function receives a callback function and"]
13614#[doc = "     user data. The callback function may be %NULL if the source was never"]
13615#[doc = "     connected to a callback using g_source_set_callback(). The @dispatch"]
13616#[doc = "     function should call the callback function with @user_data and whatever"]
13617#[doc = "     additional parameters are needed for this type of event source. The"]
13618#[doc = "     return value of the @dispatch function should be #G_SOURCE_REMOVE if the"]
13619#[doc = "     source should be removed or #G_SOURCE_CONTINUE to keep it."]
13620#[doc = " @finalize: Called when the source is finalized. At this point, the source"]
13621#[doc = "     will have been destroyed, had its callback cleared, and have been removed"]
13622#[doc = "     from its #GMainContext, but it will still have its final reference count,"]
13623#[doc = "     so methods can be called on it from within this function."]
13624#[doc = ""]
13625#[doc = " The `GSourceFuncs` struct contains a table of"]
13626#[doc = " functions used to handle event sources in a generic manner."]
13627#[doc = ""]
13628#[doc = " For idle sources, the prepare and check functions always return %TRUE"]
13629#[doc = " to indicate that the source is always ready to be processed. The prepare"]
13630#[doc = " function also returns a timeout value of 0 to ensure that the poll() call"]
13631#[doc = " doesn't block (since that would be time wasted which could have been spent"]
13632#[doc = " running the idle function)."]
13633#[doc = ""]
13634#[doc = " For timeout sources, the prepare and check functions both return %TRUE"]
13635#[doc = " if the timeout interval has expired. The prepare function also returns"]
13636#[doc = " a timeout value to ensure that the poll() call doesn't block too long"]
13637#[doc = " and miss the next timeout."]
13638#[doc = ""]
13639#[doc = " For file descriptor sources, the prepare function typically returns %FALSE,"]
13640#[doc = " since it must wait until poll() has been called before it knows whether"]
13641#[doc = " any events need to be processed. It sets the returned timeout to -1 to"]
13642#[doc = " indicate that it doesn't mind how long the poll() call blocks. In the"]
13643#[doc = " check function, it tests the results of the poll() call to see if the"]
13644#[doc = " required condition has been met, and returns %TRUE if so."]
13645pub type GSourceFuncs = _GSourceFuncs;
13646#[doc = " GSourceFunc:"]
13647#[doc = " @user_data: data passed to the function, set when the source was"]
13648#[doc = "     created with one of the above functions"]
13649#[doc = ""]
13650#[doc = " Specifies the type of function passed to g_timeout_add(),"]
13651#[doc = " g_timeout_add_full(), g_idle_add(), and g_idle_add_full()."]
13652#[doc = ""]
13653#[doc = " Returns: %FALSE if the source should be removed. #G_SOURCE_CONTINUE and"]
13654#[doc = " #G_SOURCE_REMOVE are more memorable names for the return value."]
13655pub type GSourceFunc = ::std::option::Option<unsafe extern "C" fn(user_data: gpointer) -> gboolean>;
13656#[doc = " GChildWatchFunc:"]
13657#[doc = " @pid: the process id of the child process"]
13658#[doc = " @status: Status information about the child process, encoded"]
13659#[doc = "     in a platform-specific manner"]
13660#[doc = " @user_data: user data passed to g_child_watch_add()"]
13661#[doc = ""]
13662#[doc = " Prototype of a #GChildWatchSource callback, called when a child"]
13663#[doc = " process has exited.  To interpret @status, see the documentation"]
13664#[doc = " for g_spawn_check_exit_status()."]
13665pub type GChildWatchFunc =
13666    ::std::option::Option<unsafe extern "C" fn(pid: GPid, status: gint, user_data: gpointer)>;
13667#[repr(C)]
13668#[derive(Debug, Copy, Clone)]
13669pub struct _GSource {
13670    pub callback_data: gpointer,
13671    pub callback_funcs: *mut GSourceCallbackFuncs,
13672    pub source_funcs: *const GSourceFuncs,
13673    pub ref_count: guint,
13674    pub context: *mut GMainContext,
13675    pub priority: gint,
13676    pub flags: guint,
13677    pub source_id: guint,
13678    pub poll_fds: *mut GSList,
13679    pub prev: *mut GSource,
13680    pub next: *mut GSource,
13681    pub name: *mut ::std::os::raw::c_char,
13682    pub priv_: *mut GSourcePrivate,
13683}
13684#[test]
13685fn bindgen_test_layout__GSource() {
13686    assert_eq!(
13687        ::std::mem::size_of::<_GSource>(),
13688        96usize,
13689        concat!("Size of: ", stringify!(_GSource))
13690    );
13691    assert_eq!(
13692        ::std::mem::align_of::<_GSource>(),
13693        8usize,
13694        concat!("Alignment of ", stringify!(_GSource))
13695    );
13696    assert_eq!(
13697        unsafe { &(*(::std::ptr::null::<_GSource>())).callback_data as *const _ as usize },
13698        0usize,
13699        concat!(
13700            "Offset of field: ",
13701            stringify!(_GSource),
13702            "::",
13703            stringify!(callback_data)
13704        )
13705    );
13706    assert_eq!(
13707        unsafe { &(*(::std::ptr::null::<_GSource>())).callback_funcs as *const _ as usize },
13708        8usize,
13709        concat!(
13710            "Offset of field: ",
13711            stringify!(_GSource),
13712            "::",
13713            stringify!(callback_funcs)
13714        )
13715    );
13716    assert_eq!(
13717        unsafe { &(*(::std::ptr::null::<_GSource>())).source_funcs as *const _ as usize },
13718        16usize,
13719        concat!(
13720            "Offset of field: ",
13721            stringify!(_GSource),
13722            "::",
13723            stringify!(source_funcs)
13724        )
13725    );
13726    assert_eq!(
13727        unsafe { &(*(::std::ptr::null::<_GSource>())).ref_count as *const _ as usize },
13728        24usize,
13729        concat!(
13730            "Offset of field: ",
13731            stringify!(_GSource),
13732            "::",
13733            stringify!(ref_count)
13734        )
13735    );
13736    assert_eq!(
13737        unsafe { &(*(::std::ptr::null::<_GSource>())).context as *const _ as usize },
13738        32usize,
13739        concat!(
13740            "Offset of field: ",
13741            stringify!(_GSource),
13742            "::",
13743            stringify!(context)
13744        )
13745    );
13746    assert_eq!(
13747        unsafe { &(*(::std::ptr::null::<_GSource>())).priority as *const _ as usize },
13748        40usize,
13749        concat!(
13750            "Offset of field: ",
13751            stringify!(_GSource),
13752            "::",
13753            stringify!(priority)
13754        )
13755    );
13756    assert_eq!(
13757        unsafe { &(*(::std::ptr::null::<_GSource>())).flags as *const _ as usize },
13758        44usize,
13759        concat!(
13760            "Offset of field: ",
13761            stringify!(_GSource),
13762            "::",
13763            stringify!(flags)
13764        )
13765    );
13766    assert_eq!(
13767        unsafe { &(*(::std::ptr::null::<_GSource>())).source_id as *const _ as usize },
13768        48usize,
13769        concat!(
13770            "Offset of field: ",
13771            stringify!(_GSource),
13772            "::",
13773            stringify!(source_id)
13774        )
13775    );
13776    assert_eq!(
13777        unsafe { &(*(::std::ptr::null::<_GSource>())).poll_fds as *const _ as usize },
13778        56usize,
13779        concat!(
13780            "Offset of field: ",
13781            stringify!(_GSource),
13782            "::",
13783            stringify!(poll_fds)
13784        )
13785    );
13786    assert_eq!(
13787        unsafe { &(*(::std::ptr::null::<_GSource>())).prev as *const _ as usize },
13788        64usize,
13789        concat!(
13790            "Offset of field: ",
13791            stringify!(_GSource),
13792            "::",
13793            stringify!(prev)
13794        )
13795    );
13796    assert_eq!(
13797        unsafe { &(*(::std::ptr::null::<_GSource>())).next as *const _ as usize },
13798        72usize,
13799        concat!(
13800            "Offset of field: ",
13801            stringify!(_GSource),
13802            "::",
13803            stringify!(next)
13804        )
13805    );
13806    assert_eq!(
13807        unsafe { &(*(::std::ptr::null::<_GSource>())).name as *const _ as usize },
13808        80usize,
13809        concat!(
13810            "Offset of field: ",
13811            stringify!(_GSource),
13812            "::",
13813            stringify!(name)
13814        )
13815    );
13816    assert_eq!(
13817        unsafe { &(*(::std::ptr::null::<_GSource>())).priv_ as *const _ as usize },
13818        88usize,
13819        concat!(
13820            "Offset of field: ",
13821            stringify!(_GSource),
13822            "::",
13823            stringify!(priv_)
13824        )
13825    );
13826}
13827#[repr(C)]
13828#[derive(Debug, Copy, Clone)]
13829pub struct _GSourceCallbackFuncs {
13830    pub ref_: ::std::option::Option<unsafe extern "C" fn(cb_data: gpointer)>,
13831    pub unref: ::std::option::Option<unsafe extern "C" fn(cb_data: gpointer)>,
13832    pub get: ::std::option::Option<
13833        unsafe extern "C" fn(
13834            cb_data: gpointer,
13835            source: *mut GSource,
13836            func: *mut GSourceFunc,
13837            data: *mut gpointer,
13838        ),
13839    >,
13840}
13841#[test]
13842fn bindgen_test_layout__GSourceCallbackFuncs() {
13843    assert_eq!(
13844        ::std::mem::size_of::<_GSourceCallbackFuncs>(),
13845        24usize,
13846        concat!("Size of: ", stringify!(_GSourceCallbackFuncs))
13847    );
13848    assert_eq!(
13849        ::std::mem::align_of::<_GSourceCallbackFuncs>(),
13850        8usize,
13851        concat!("Alignment of ", stringify!(_GSourceCallbackFuncs))
13852    );
13853    assert_eq!(
13854        unsafe { &(*(::std::ptr::null::<_GSourceCallbackFuncs>())).ref_ as *const _ as usize },
13855        0usize,
13856        concat!(
13857            "Offset of field: ",
13858            stringify!(_GSourceCallbackFuncs),
13859            "::",
13860            stringify!(ref_)
13861        )
13862    );
13863    assert_eq!(
13864        unsafe { &(*(::std::ptr::null::<_GSourceCallbackFuncs>())).unref as *const _ as usize },
13865        8usize,
13866        concat!(
13867            "Offset of field: ",
13868            stringify!(_GSourceCallbackFuncs),
13869            "::",
13870            stringify!(unref)
13871        )
13872    );
13873    assert_eq!(
13874        unsafe { &(*(::std::ptr::null::<_GSourceCallbackFuncs>())).get as *const _ as usize },
13875        16usize,
13876        concat!(
13877            "Offset of field: ",
13878            stringify!(_GSourceCallbackFuncs),
13879            "::",
13880            stringify!(get)
13881        )
13882    );
13883}
13884#[doc = " GSourceDummyMarshal:"]
13885#[doc = ""]
13886#[doc = " This is just a placeholder for #GClosureMarshal,"]
13887#[doc = " which cannot be used here for dependency reasons."]
13888pub type GSourceDummyMarshal = ::std::option::Option<unsafe extern "C" fn()>;
13889#[repr(C)]
13890#[derive(Debug, Copy, Clone)]
13891pub struct _GSourceFuncs {
13892    pub prepare: ::std::option::Option<
13893        unsafe extern "C" fn(source: *mut GSource, timeout_: *mut gint) -> gboolean,
13894    >,
13895    pub check: ::std::option::Option<unsafe extern "C" fn(source: *mut GSource) -> gboolean>,
13896    pub dispatch: ::std::option::Option<
13897        unsafe extern "C" fn(
13898            source: *mut GSource,
13899            callback: GSourceFunc,
13900            user_data: gpointer,
13901        ) -> gboolean,
13902    >,
13903    pub finalize: ::std::option::Option<unsafe extern "C" fn(source: *mut GSource)>,
13904    pub closure_callback: GSourceFunc,
13905    pub closure_marshal: GSourceDummyMarshal,
13906}
13907#[test]
13908fn bindgen_test_layout__GSourceFuncs() {
13909    assert_eq!(
13910        ::std::mem::size_of::<_GSourceFuncs>(),
13911        48usize,
13912        concat!("Size of: ", stringify!(_GSourceFuncs))
13913    );
13914    assert_eq!(
13915        ::std::mem::align_of::<_GSourceFuncs>(),
13916        8usize,
13917        concat!("Alignment of ", stringify!(_GSourceFuncs))
13918    );
13919    assert_eq!(
13920        unsafe { &(*(::std::ptr::null::<_GSourceFuncs>())).prepare as *const _ as usize },
13921        0usize,
13922        concat!(
13923            "Offset of field: ",
13924            stringify!(_GSourceFuncs),
13925            "::",
13926            stringify!(prepare)
13927        )
13928    );
13929    assert_eq!(
13930        unsafe { &(*(::std::ptr::null::<_GSourceFuncs>())).check as *const _ as usize },
13931        8usize,
13932        concat!(
13933            "Offset of field: ",
13934            stringify!(_GSourceFuncs),
13935            "::",
13936            stringify!(check)
13937        )
13938    );
13939    assert_eq!(
13940        unsafe { &(*(::std::ptr::null::<_GSourceFuncs>())).dispatch as *const _ as usize },
13941        16usize,
13942        concat!(
13943            "Offset of field: ",
13944            stringify!(_GSourceFuncs),
13945            "::",
13946            stringify!(dispatch)
13947        )
13948    );
13949    assert_eq!(
13950        unsafe { &(*(::std::ptr::null::<_GSourceFuncs>())).finalize as *const _ as usize },
13951        24usize,
13952        concat!(
13953            "Offset of field: ",
13954            stringify!(_GSourceFuncs),
13955            "::",
13956            stringify!(finalize)
13957        )
13958    );
13959    assert_eq!(
13960        unsafe { &(*(::std::ptr::null::<_GSourceFuncs>())).closure_callback as *const _ as usize },
13961        32usize,
13962        concat!(
13963            "Offset of field: ",
13964            stringify!(_GSourceFuncs),
13965            "::",
13966            stringify!(closure_callback)
13967        )
13968    );
13969    assert_eq!(
13970        unsafe { &(*(::std::ptr::null::<_GSourceFuncs>())).closure_marshal as *const _ as usize },
13971        40usize,
13972        concat!(
13973            "Offset of field: ",
13974            stringify!(_GSourceFuncs),
13975            "::",
13976            stringify!(closure_marshal)
13977        )
13978    );
13979}
13980extern "C" {
13981    pub fn g_main_context_new() -> *mut GMainContext;
13982}
13983extern "C" {
13984    pub fn g_main_context_ref(context: *mut GMainContext) -> *mut GMainContext;
13985}
13986extern "C" {
13987    pub fn g_main_context_unref(context: *mut GMainContext);
13988}
13989extern "C" {
13990    pub fn g_main_context_default() -> *mut GMainContext;
13991}
13992extern "C" {
13993    pub fn g_main_context_iteration(context: *mut GMainContext, may_block: gboolean) -> gboolean;
13994}
13995extern "C" {
13996    pub fn g_main_context_pending(context: *mut GMainContext) -> gboolean;
13997}
13998extern "C" {
13999    pub fn g_main_context_find_source_by_id(
14000        context: *mut GMainContext,
14001        source_id: guint,
14002    ) -> *mut GSource;
14003}
14004extern "C" {
14005    pub fn g_main_context_find_source_by_user_data(
14006        context: *mut GMainContext,
14007        user_data: gpointer,
14008    ) -> *mut GSource;
14009}
14010extern "C" {
14011    pub fn g_main_context_find_source_by_funcs_user_data(
14012        context: *mut GMainContext,
14013        funcs: *mut GSourceFuncs,
14014        user_data: gpointer,
14015    ) -> *mut GSource;
14016}
14017extern "C" {
14018    pub fn g_main_context_wakeup(context: *mut GMainContext);
14019}
14020extern "C" {
14021    pub fn g_main_context_acquire(context: *mut GMainContext) -> gboolean;
14022}
14023extern "C" {
14024    pub fn g_main_context_release(context: *mut GMainContext);
14025}
14026extern "C" {
14027    pub fn g_main_context_is_owner(context: *mut GMainContext) -> gboolean;
14028}
14029extern "C" {
14030    pub fn g_main_context_wait(
14031        context: *mut GMainContext,
14032        cond: *mut GCond,
14033        mutex: *mut GMutex,
14034    ) -> gboolean;
14035}
14036extern "C" {
14037    pub fn g_main_context_prepare(context: *mut GMainContext, priority: *mut gint) -> gboolean;
14038}
14039extern "C" {
14040    pub fn g_main_context_query(
14041        context: *mut GMainContext,
14042        max_priority: gint,
14043        timeout_: *mut gint,
14044        fds: *mut GPollFD,
14045        n_fds: gint,
14046    ) -> gint;
14047}
14048extern "C" {
14049    pub fn g_main_context_check(
14050        context: *mut GMainContext,
14051        max_priority: gint,
14052        fds: *mut GPollFD,
14053        n_fds: gint,
14054    ) -> gboolean;
14055}
14056extern "C" {
14057    pub fn g_main_context_dispatch(context: *mut GMainContext);
14058}
14059extern "C" {
14060    pub fn g_main_context_set_poll_func(context: *mut GMainContext, func: GPollFunc);
14061}
14062extern "C" {
14063    pub fn g_main_context_get_poll_func(context: *mut GMainContext) -> GPollFunc;
14064}
14065extern "C" {
14066    pub fn g_main_context_add_poll(context: *mut GMainContext, fd: *mut GPollFD, priority: gint);
14067}
14068extern "C" {
14069    pub fn g_main_context_remove_poll(context: *mut GMainContext, fd: *mut GPollFD);
14070}
14071extern "C" {
14072    pub fn g_main_depth() -> gint;
14073}
14074extern "C" {
14075    pub fn g_main_current_source() -> *mut GSource;
14076}
14077extern "C" {
14078    pub fn g_main_context_push_thread_default(context: *mut GMainContext);
14079}
14080extern "C" {
14081    pub fn g_main_context_pop_thread_default(context: *mut GMainContext);
14082}
14083extern "C" {
14084    pub fn g_main_context_get_thread_default() -> *mut GMainContext;
14085}
14086extern "C" {
14087    pub fn g_main_context_ref_thread_default() -> *mut GMainContext;
14088}
14089extern "C" {
14090    pub fn g_main_loop_new(context: *mut GMainContext, is_running: gboolean) -> *mut GMainLoop;
14091}
14092extern "C" {
14093    pub fn g_main_loop_run(loop_: *mut GMainLoop);
14094}
14095extern "C" {
14096    pub fn g_main_loop_quit(loop_: *mut GMainLoop);
14097}
14098extern "C" {
14099    pub fn g_main_loop_ref(loop_: *mut GMainLoop) -> *mut GMainLoop;
14100}
14101extern "C" {
14102    pub fn g_main_loop_unref(loop_: *mut GMainLoop);
14103}
14104extern "C" {
14105    pub fn g_main_loop_is_running(loop_: *mut GMainLoop) -> gboolean;
14106}
14107extern "C" {
14108    pub fn g_main_loop_get_context(loop_: *mut GMainLoop) -> *mut GMainContext;
14109}
14110extern "C" {
14111    pub fn g_source_new(source_funcs: *mut GSourceFuncs, struct_size: guint) -> *mut GSource;
14112}
14113extern "C" {
14114    pub fn g_source_ref(source: *mut GSource) -> *mut GSource;
14115}
14116extern "C" {
14117    pub fn g_source_unref(source: *mut GSource);
14118}
14119extern "C" {
14120    pub fn g_source_attach(source: *mut GSource, context: *mut GMainContext) -> guint;
14121}
14122extern "C" {
14123    pub fn g_source_destroy(source: *mut GSource);
14124}
14125extern "C" {
14126    pub fn g_source_set_priority(source: *mut GSource, priority: gint);
14127}
14128extern "C" {
14129    pub fn g_source_get_priority(source: *mut GSource) -> gint;
14130}
14131extern "C" {
14132    pub fn g_source_set_can_recurse(source: *mut GSource, can_recurse: gboolean);
14133}
14134extern "C" {
14135    pub fn g_source_get_can_recurse(source: *mut GSource) -> gboolean;
14136}
14137extern "C" {
14138    pub fn g_source_get_id(source: *mut GSource) -> guint;
14139}
14140extern "C" {
14141    pub fn g_source_get_context(source: *mut GSource) -> *mut GMainContext;
14142}
14143extern "C" {
14144    pub fn g_source_set_callback(
14145        source: *mut GSource,
14146        func: GSourceFunc,
14147        data: gpointer,
14148        notify: GDestroyNotify,
14149    );
14150}
14151extern "C" {
14152    pub fn g_source_set_funcs(source: *mut GSource, funcs: *mut GSourceFuncs);
14153}
14154extern "C" {
14155    pub fn g_source_is_destroyed(source: *mut GSource) -> gboolean;
14156}
14157extern "C" {
14158    pub fn g_source_set_name(source: *mut GSource, name: *const ::std::os::raw::c_char);
14159}
14160extern "C" {
14161    pub fn g_source_get_name(source: *mut GSource) -> *const ::std::os::raw::c_char;
14162}
14163extern "C" {
14164    pub fn g_source_set_name_by_id(tag: guint, name: *const ::std::os::raw::c_char);
14165}
14166extern "C" {
14167    pub fn g_source_set_ready_time(source: *mut GSource, ready_time: gint64);
14168}
14169extern "C" {
14170    pub fn g_source_get_ready_time(source: *mut GSource) -> gint64;
14171}
14172extern "C" {
14173    pub fn g_source_add_unix_fd(source: *mut GSource, fd: gint, events: GIOCondition) -> gpointer;
14174}
14175extern "C" {
14176    pub fn g_source_modify_unix_fd(source: *mut GSource, tag: gpointer, new_events: GIOCondition);
14177}
14178extern "C" {
14179    pub fn g_source_remove_unix_fd(source: *mut GSource, tag: gpointer);
14180}
14181extern "C" {
14182    pub fn g_source_query_unix_fd(source: *mut GSource, tag: gpointer) -> GIOCondition;
14183}
14184extern "C" {
14185    pub fn g_source_set_callback_indirect(
14186        source: *mut GSource,
14187        callback_data: gpointer,
14188        callback_funcs: *mut GSourceCallbackFuncs,
14189    );
14190}
14191extern "C" {
14192    pub fn g_source_add_poll(source: *mut GSource, fd: *mut GPollFD);
14193}
14194extern "C" {
14195    pub fn g_source_remove_poll(source: *mut GSource, fd: *mut GPollFD);
14196}
14197extern "C" {
14198    pub fn g_source_add_child_source(source: *mut GSource, child_source: *mut GSource);
14199}
14200extern "C" {
14201    pub fn g_source_remove_child_source(source: *mut GSource, child_source: *mut GSource);
14202}
14203extern "C" {
14204    pub fn g_source_get_current_time(source: *mut GSource, timeval: *mut GTimeVal);
14205}
14206extern "C" {
14207    pub fn g_source_get_time(source: *mut GSource) -> gint64;
14208}
14209extern "C" {
14210    pub fn g_idle_source_new() -> *mut GSource;
14211}
14212extern "C" {
14213    pub fn g_child_watch_source_new(pid: GPid) -> *mut GSource;
14214}
14215extern "C" {
14216    pub fn g_timeout_source_new(interval: guint) -> *mut GSource;
14217}
14218extern "C" {
14219    pub fn g_timeout_source_new_seconds(interval: guint) -> *mut GSource;
14220}
14221extern "C" {
14222    pub fn g_get_current_time(result: *mut GTimeVal);
14223}
14224extern "C" {
14225    pub fn g_get_monotonic_time() -> gint64;
14226}
14227extern "C" {
14228    pub fn g_get_real_time() -> gint64;
14229}
14230extern "C" {
14231    pub fn g_source_remove(tag: guint) -> gboolean;
14232}
14233extern "C" {
14234    pub fn g_source_remove_by_user_data(user_data: gpointer) -> gboolean;
14235}
14236extern "C" {
14237    pub fn g_source_remove_by_funcs_user_data(
14238        funcs: *mut GSourceFuncs,
14239        user_data: gpointer,
14240    ) -> gboolean;
14241}
14242#[doc = " GClearHandleFunc:"]
14243#[doc = " @handle_id: the handle ID to clear"]
14244#[doc = ""]
14245#[doc = " Specifies the type of function passed to g_clear_handle_id()."]
14246#[doc = " The implementation is expected to free the resource identified"]
14247#[doc = " by @handle_id; for instance, if @handle_id is a #GSource ID,"]
14248#[doc = " g_source_remove() can be used."]
14249#[doc = ""]
14250#[doc = " Since: 2.56"]
14251pub type GClearHandleFunc = ::std::option::Option<unsafe extern "C" fn(handle_id: guint)>;
14252extern "C" {
14253    pub fn g_clear_handle_id(tag_ptr: *mut guint, clear_func: GClearHandleFunc);
14254}
14255extern "C" {
14256    pub fn g_timeout_add_full(
14257        priority: gint,
14258        interval: guint,
14259        function: GSourceFunc,
14260        data: gpointer,
14261        notify: GDestroyNotify,
14262    ) -> guint;
14263}
14264extern "C" {
14265    pub fn g_timeout_add(interval: guint, function: GSourceFunc, data: gpointer) -> guint;
14266}
14267extern "C" {
14268    pub fn g_timeout_add_seconds_full(
14269        priority: gint,
14270        interval: guint,
14271        function: GSourceFunc,
14272        data: gpointer,
14273        notify: GDestroyNotify,
14274    ) -> guint;
14275}
14276extern "C" {
14277    pub fn g_timeout_add_seconds(interval: guint, function: GSourceFunc, data: gpointer) -> guint;
14278}
14279extern "C" {
14280    pub fn g_child_watch_add_full(
14281        priority: gint,
14282        pid: GPid,
14283        function: GChildWatchFunc,
14284        data: gpointer,
14285        notify: GDestroyNotify,
14286    ) -> guint;
14287}
14288extern "C" {
14289    pub fn g_child_watch_add(pid: GPid, function: GChildWatchFunc, data: gpointer) -> guint;
14290}
14291extern "C" {
14292    pub fn g_idle_add(function: GSourceFunc, data: gpointer) -> guint;
14293}
14294extern "C" {
14295    pub fn g_idle_add_full(
14296        priority: gint,
14297        function: GSourceFunc,
14298        data: gpointer,
14299        notify: GDestroyNotify,
14300    ) -> guint;
14301}
14302extern "C" {
14303    pub fn g_idle_remove_by_data(data: gpointer) -> gboolean;
14304}
14305extern "C" {
14306    pub fn g_main_context_invoke_full(
14307        context: *mut GMainContext,
14308        priority: gint,
14309        function: GSourceFunc,
14310        data: gpointer,
14311        notify: GDestroyNotify,
14312    );
14313}
14314extern "C" {
14315    pub fn g_main_context_invoke(context: *mut GMainContext, function: GSourceFunc, data: gpointer);
14316}
14317extern "C" {
14318    pub static mut g_timeout_funcs: GSourceFuncs;
14319}
14320extern "C" {
14321    pub static mut g_child_watch_funcs: GSourceFuncs;
14322}
14323extern "C" {
14324    pub static mut g_idle_funcs: GSourceFuncs;
14325}
14326extern "C" {
14327    pub static mut g_unix_signal_funcs: GSourceFuncs;
14328}
14329extern "C" {
14330    pub static mut g_unix_fd_source_funcs: GSourceFuncs;
14331}
14332#[doc = " gunichar:"]
14333#[doc = ""]
14334#[doc = " A type which can hold any UTF-32 or UCS-4 character code,"]
14335#[doc = " also known as a Unicode code point."]
14336#[doc = ""]
14337#[doc = " If you want to produce the UTF-8 representation of a #gunichar,"]
14338#[doc = " use g_ucs4_to_utf8(). See also g_utf8_to_ucs4() for the reverse"]
14339#[doc = " process."]
14340#[doc = ""]
14341#[doc = " To print/scan values of this type as integer, use"]
14342#[doc = " %G_GINT32_MODIFIER and/or %G_GUINT32_FORMAT."]
14343#[doc = ""]
14344#[doc = " The notation to express a Unicode code point in running text is"]
14345#[doc = " as a hexadecimal number with four to six digits and uppercase"]
14346#[doc = " letters, prefixed by the string \"U+\". Leading zeros are omitted,"]
14347#[doc = " unless the code point would have fewer than four hexadecimal digits."]
14348#[doc = " For example, \"U+0041 LATIN CAPITAL LETTER A\". To print a code point"]
14349#[doc = " in the U+-notation, use the format string \"U+\\%04\"G_GINT32_FORMAT\"X\"."]
14350#[doc = " To scan, use the format string \"U+\\%06\"G_GINT32_FORMAT\"X\"."]
14351#[doc = ""]
14352#[doc = " |["]
14353#[doc = " gunichar c;"]
14354#[doc = " sscanf (\"U+0041\", \"U+%06\"G_GINT32_FORMAT\"X\", &amp;c)"]
14355#[doc = " g_print (\"Read U+%04\"G_GINT32_FORMAT\"X\", c);"]
14356#[doc = " ]|"]
14357pub type gunichar = guint32;
14358#[doc = " gunichar2:"]
14359#[doc = ""]
14360#[doc = " A type which can hold any UTF-16 code"]
14361#[doc = " point<footnote id=\"utf16_surrogate_pairs\">UTF-16 also has so called"]
14362#[doc = " <firstterm>surrogate pairs</firstterm> to encode characters beyond"]
14363#[doc = " the BMP as pairs of 16bit numbers. Surrogate pairs cannot be stored"]
14364#[doc = " in a single gunichar2 field, but all GLib functions accepting gunichar2"]
14365#[doc = " arrays will correctly interpret surrogate pairs.</footnote>."]
14366#[doc = ""]
14367#[doc = " To print/scan values of this type to/from text you need to convert"]
14368#[doc = " to/from UTF-8, using g_utf16_to_utf8()/g_utf8_to_utf16()."]
14369#[doc = ""]
14370#[doc = " To print/scan values of this type as integer, use"]
14371#[doc = " %G_GINT16_MODIFIER and/or %G_GUINT16_FORMAT."]
14372pub type gunichar2 = guint16;
14373pub const GUnicodeType_G_UNICODE_CONTROL: GUnicodeType = 0;
14374pub const GUnicodeType_G_UNICODE_FORMAT: GUnicodeType = 1;
14375pub const GUnicodeType_G_UNICODE_UNASSIGNED: GUnicodeType = 2;
14376pub const GUnicodeType_G_UNICODE_PRIVATE_USE: GUnicodeType = 3;
14377pub const GUnicodeType_G_UNICODE_SURROGATE: GUnicodeType = 4;
14378pub const GUnicodeType_G_UNICODE_LOWERCASE_LETTER: GUnicodeType = 5;
14379pub const GUnicodeType_G_UNICODE_MODIFIER_LETTER: GUnicodeType = 6;
14380pub const GUnicodeType_G_UNICODE_OTHER_LETTER: GUnicodeType = 7;
14381pub const GUnicodeType_G_UNICODE_TITLECASE_LETTER: GUnicodeType = 8;
14382pub const GUnicodeType_G_UNICODE_UPPERCASE_LETTER: GUnicodeType = 9;
14383pub const GUnicodeType_G_UNICODE_SPACING_MARK: GUnicodeType = 10;
14384pub const GUnicodeType_G_UNICODE_ENCLOSING_MARK: GUnicodeType = 11;
14385pub const GUnicodeType_G_UNICODE_NON_SPACING_MARK: GUnicodeType = 12;
14386pub const GUnicodeType_G_UNICODE_DECIMAL_NUMBER: GUnicodeType = 13;
14387pub const GUnicodeType_G_UNICODE_LETTER_NUMBER: GUnicodeType = 14;
14388pub const GUnicodeType_G_UNICODE_OTHER_NUMBER: GUnicodeType = 15;
14389pub const GUnicodeType_G_UNICODE_CONNECT_PUNCTUATION: GUnicodeType = 16;
14390pub const GUnicodeType_G_UNICODE_DASH_PUNCTUATION: GUnicodeType = 17;
14391pub const GUnicodeType_G_UNICODE_CLOSE_PUNCTUATION: GUnicodeType = 18;
14392pub const GUnicodeType_G_UNICODE_FINAL_PUNCTUATION: GUnicodeType = 19;
14393pub const GUnicodeType_G_UNICODE_INITIAL_PUNCTUATION: GUnicodeType = 20;
14394pub const GUnicodeType_G_UNICODE_OTHER_PUNCTUATION: GUnicodeType = 21;
14395pub const GUnicodeType_G_UNICODE_OPEN_PUNCTUATION: GUnicodeType = 22;
14396pub const GUnicodeType_G_UNICODE_CURRENCY_SYMBOL: GUnicodeType = 23;
14397pub const GUnicodeType_G_UNICODE_MODIFIER_SYMBOL: GUnicodeType = 24;
14398pub const GUnicodeType_G_UNICODE_MATH_SYMBOL: GUnicodeType = 25;
14399pub const GUnicodeType_G_UNICODE_OTHER_SYMBOL: GUnicodeType = 26;
14400pub const GUnicodeType_G_UNICODE_LINE_SEPARATOR: GUnicodeType = 27;
14401pub const GUnicodeType_G_UNICODE_PARAGRAPH_SEPARATOR: GUnicodeType = 28;
14402pub const GUnicodeType_G_UNICODE_SPACE_SEPARATOR: GUnicodeType = 29;
14403#[doc = " GUnicodeType:"]
14404#[doc = " @G_UNICODE_CONTROL: General category \"Other, Control\" (Cc)"]
14405#[doc = " @G_UNICODE_FORMAT: General category \"Other, Format\" (Cf)"]
14406#[doc = " @G_UNICODE_UNASSIGNED: General category \"Other, Not Assigned\" (Cn)"]
14407#[doc = " @G_UNICODE_PRIVATE_USE: General category \"Other, Private Use\" (Co)"]
14408#[doc = " @G_UNICODE_SURROGATE: General category \"Other, Surrogate\" (Cs)"]
14409#[doc = " @G_UNICODE_LOWERCASE_LETTER: General category \"Letter, Lowercase\" (Ll)"]
14410#[doc = " @G_UNICODE_MODIFIER_LETTER: General category \"Letter, Modifier\" (Lm)"]
14411#[doc = " @G_UNICODE_OTHER_LETTER: General category \"Letter, Other\" (Lo)"]
14412#[doc = " @G_UNICODE_TITLECASE_LETTER: General category \"Letter, Titlecase\" (Lt)"]
14413#[doc = " @G_UNICODE_UPPERCASE_LETTER: General category \"Letter, Uppercase\" (Lu)"]
14414#[doc = " @G_UNICODE_SPACING_MARK: General category \"Mark, Spacing\" (Mc)"]
14415#[doc = " @G_UNICODE_ENCLOSING_MARK: General category \"Mark, Enclosing\" (Me)"]
14416#[doc = " @G_UNICODE_NON_SPACING_MARK: General category \"Mark, Nonspacing\" (Mn)"]
14417#[doc = " @G_UNICODE_DECIMAL_NUMBER: General category \"Number, Decimal Digit\" (Nd)"]
14418#[doc = " @G_UNICODE_LETTER_NUMBER: General category \"Number, Letter\" (Nl)"]
14419#[doc = " @G_UNICODE_OTHER_NUMBER: General category \"Number, Other\" (No)"]
14420#[doc = " @G_UNICODE_CONNECT_PUNCTUATION: General category \"Punctuation, Connector\" (Pc)"]
14421#[doc = " @G_UNICODE_DASH_PUNCTUATION: General category \"Punctuation, Dash\" (Pd)"]
14422#[doc = " @G_UNICODE_CLOSE_PUNCTUATION: General category \"Punctuation, Close\" (Pe)"]
14423#[doc = " @G_UNICODE_FINAL_PUNCTUATION: General category \"Punctuation, Final quote\" (Pf)"]
14424#[doc = " @G_UNICODE_INITIAL_PUNCTUATION: General category \"Punctuation, Initial quote\" (Pi)"]
14425#[doc = " @G_UNICODE_OTHER_PUNCTUATION: General category \"Punctuation, Other\" (Po)"]
14426#[doc = " @G_UNICODE_OPEN_PUNCTUATION: General category \"Punctuation, Open\" (Ps)"]
14427#[doc = " @G_UNICODE_CURRENCY_SYMBOL: General category \"Symbol, Currency\" (Sc)"]
14428#[doc = " @G_UNICODE_MODIFIER_SYMBOL: General category \"Symbol, Modifier\" (Sk)"]
14429#[doc = " @G_UNICODE_MATH_SYMBOL: General category \"Symbol, Math\" (Sm)"]
14430#[doc = " @G_UNICODE_OTHER_SYMBOL: General category \"Symbol, Other\" (So)"]
14431#[doc = " @G_UNICODE_LINE_SEPARATOR: General category \"Separator, Line\" (Zl)"]
14432#[doc = " @G_UNICODE_PARAGRAPH_SEPARATOR: General category \"Separator, Paragraph\" (Zp)"]
14433#[doc = " @G_UNICODE_SPACE_SEPARATOR: General category \"Separator, Space\" (Zs)"]
14434#[doc = ""]
14435#[doc = " These are the possible character classifications from the"]
14436#[doc = " Unicode specification."]
14437#[doc = " See [Unicode Character Database](http://www.unicode.org/reports/tr44/#General_Category_Values)."]
14438pub type GUnicodeType = u32;
14439pub const GUnicodeBreakType_G_UNICODE_BREAK_MANDATORY: GUnicodeBreakType = 0;
14440pub const GUnicodeBreakType_G_UNICODE_BREAK_CARRIAGE_RETURN: GUnicodeBreakType = 1;
14441pub const GUnicodeBreakType_G_UNICODE_BREAK_LINE_FEED: GUnicodeBreakType = 2;
14442pub const GUnicodeBreakType_G_UNICODE_BREAK_COMBINING_MARK: GUnicodeBreakType = 3;
14443pub const GUnicodeBreakType_G_UNICODE_BREAK_SURROGATE: GUnicodeBreakType = 4;
14444pub const GUnicodeBreakType_G_UNICODE_BREAK_ZERO_WIDTH_SPACE: GUnicodeBreakType = 5;
14445pub const GUnicodeBreakType_G_UNICODE_BREAK_INSEPARABLE: GUnicodeBreakType = 6;
14446pub const GUnicodeBreakType_G_UNICODE_BREAK_NON_BREAKING_GLUE: GUnicodeBreakType = 7;
14447pub const GUnicodeBreakType_G_UNICODE_BREAK_CONTINGENT: GUnicodeBreakType = 8;
14448pub const GUnicodeBreakType_G_UNICODE_BREAK_SPACE: GUnicodeBreakType = 9;
14449pub const GUnicodeBreakType_G_UNICODE_BREAK_AFTER: GUnicodeBreakType = 10;
14450pub const GUnicodeBreakType_G_UNICODE_BREAK_BEFORE: GUnicodeBreakType = 11;
14451pub const GUnicodeBreakType_G_UNICODE_BREAK_BEFORE_AND_AFTER: GUnicodeBreakType = 12;
14452pub const GUnicodeBreakType_G_UNICODE_BREAK_HYPHEN: GUnicodeBreakType = 13;
14453pub const GUnicodeBreakType_G_UNICODE_BREAK_NON_STARTER: GUnicodeBreakType = 14;
14454pub const GUnicodeBreakType_G_UNICODE_BREAK_OPEN_PUNCTUATION: GUnicodeBreakType = 15;
14455pub const GUnicodeBreakType_G_UNICODE_BREAK_CLOSE_PUNCTUATION: GUnicodeBreakType = 16;
14456pub const GUnicodeBreakType_G_UNICODE_BREAK_QUOTATION: GUnicodeBreakType = 17;
14457pub const GUnicodeBreakType_G_UNICODE_BREAK_EXCLAMATION: GUnicodeBreakType = 18;
14458pub const GUnicodeBreakType_G_UNICODE_BREAK_IDEOGRAPHIC: GUnicodeBreakType = 19;
14459pub const GUnicodeBreakType_G_UNICODE_BREAK_NUMERIC: GUnicodeBreakType = 20;
14460pub const GUnicodeBreakType_G_UNICODE_BREAK_INFIX_SEPARATOR: GUnicodeBreakType = 21;
14461pub const GUnicodeBreakType_G_UNICODE_BREAK_SYMBOL: GUnicodeBreakType = 22;
14462pub const GUnicodeBreakType_G_UNICODE_BREAK_ALPHABETIC: GUnicodeBreakType = 23;
14463pub const GUnicodeBreakType_G_UNICODE_BREAK_PREFIX: GUnicodeBreakType = 24;
14464pub const GUnicodeBreakType_G_UNICODE_BREAK_POSTFIX: GUnicodeBreakType = 25;
14465pub const GUnicodeBreakType_G_UNICODE_BREAK_COMPLEX_CONTEXT: GUnicodeBreakType = 26;
14466pub const GUnicodeBreakType_G_UNICODE_BREAK_AMBIGUOUS: GUnicodeBreakType = 27;
14467pub const GUnicodeBreakType_G_UNICODE_BREAK_UNKNOWN: GUnicodeBreakType = 28;
14468pub const GUnicodeBreakType_G_UNICODE_BREAK_NEXT_LINE: GUnicodeBreakType = 29;
14469pub const GUnicodeBreakType_G_UNICODE_BREAK_WORD_JOINER: GUnicodeBreakType = 30;
14470pub const GUnicodeBreakType_G_UNICODE_BREAK_HANGUL_L_JAMO: GUnicodeBreakType = 31;
14471pub const GUnicodeBreakType_G_UNICODE_BREAK_HANGUL_V_JAMO: GUnicodeBreakType = 32;
14472pub const GUnicodeBreakType_G_UNICODE_BREAK_HANGUL_T_JAMO: GUnicodeBreakType = 33;
14473pub const GUnicodeBreakType_G_UNICODE_BREAK_HANGUL_LV_SYLLABLE: GUnicodeBreakType = 34;
14474pub const GUnicodeBreakType_G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE: GUnicodeBreakType = 35;
14475pub const GUnicodeBreakType_G_UNICODE_BREAK_CLOSE_PARANTHESIS: GUnicodeBreakType = 36;
14476pub const GUnicodeBreakType_G_UNICODE_BREAK_CONDITIONAL_JAPANESE_STARTER: GUnicodeBreakType = 37;
14477pub const GUnicodeBreakType_G_UNICODE_BREAK_HEBREW_LETTER: GUnicodeBreakType = 38;
14478pub const GUnicodeBreakType_G_UNICODE_BREAK_REGIONAL_INDICATOR: GUnicodeBreakType = 39;
14479pub const GUnicodeBreakType_G_UNICODE_BREAK_EMOJI_BASE: GUnicodeBreakType = 40;
14480pub const GUnicodeBreakType_G_UNICODE_BREAK_EMOJI_MODIFIER: GUnicodeBreakType = 41;
14481pub const GUnicodeBreakType_G_UNICODE_BREAK_ZERO_WIDTH_JOINER: GUnicodeBreakType = 42;
14482#[doc = " GUnicodeBreakType:"]
14483#[doc = " @G_UNICODE_BREAK_MANDATORY: Mandatory Break (BK)"]
14484#[doc = " @G_UNICODE_BREAK_CARRIAGE_RETURN: Carriage Return (CR)"]
14485#[doc = " @G_UNICODE_BREAK_LINE_FEED: Line Feed (LF)"]
14486#[doc = " @G_UNICODE_BREAK_COMBINING_MARK: Attached Characters and Combining Marks (CM)"]
14487#[doc = " @G_UNICODE_BREAK_SURROGATE: Surrogates (SG)"]
14488#[doc = " @G_UNICODE_BREAK_ZERO_WIDTH_SPACE: Zero Width Space (ZW)"]
14489#[doc = " @G_UNICODE_BREAK_INSEPARABLE: Inseparable (IN)"]
14490#[doc = " @G_UNICODE_BREAK_NON_BREAKING_GLUE: Non-breaking (\"Glue\") (GL)"]
14491#[doc = " @G_UNICODE_BREAK_CONTINGENT: Contingent Break Opportunity (CB)"]
14492#[doc = " @G_UNICODE_BREAK_SPACE: Space (SP)"]
14493#[doc = " @G_UNICODE_BREAK_AFTER: Break Opportunity After (BA)"]
14494#[doc = " @G_UNICODE_BREAK_BEFORE: Break Opportunity Before (BB)"]
14495#[doc = " @G_UNICODE_BREAK_BEFORE_AND_AFTER: Break Opportunity Before and After (B2)"]
14496#[doc = " @G_UNICODE_BREAK_HYPHEN: Hyphen (HY)"]
14497#[doc = " @G_UNICODE_BREAK_NON_STARTER: Nonstarter (NS)"]
14498#[doc = " @G_UNICODE_BREAK_OPEN_PUNCTUATION: Opening Punctuation (OP)"]
14499#[doc = " @G_UNICODE_BREAK_CLOSE_PUNCTUATION: Closing Punctuation (CL)"]
14500#[doc = " @G_UNICODE_BREAK_QUOTATION: Ambiguous Quotation (QU)"]
14501#[doc = " @G_UNICODE_BREAK_EXCLAMATION: Exclamation/Interrogation (EX)"]
14502#[doc = " @G_UNICODE_BREAK_IDEOGRAPHIC: Ideographic (ID)"]
14503#[doc = " @G_UNICODE_BREAK_NUMERIC: Numeric (NU)"]
14504#[doc = " @G_UNICODE_BREAK_INFIX_SEPARATOR: Infix Separator (Numeric) (IS)"]
14505#[doc = " @G_UNICODE_BREAK_SYMBOL: Symbols Allowing Break After (SY)"]
14506#[doc = " @G_UNICODE_BREAK_ALPHABETIC: Ordinary Alphabetic and Symbol Characters (AL)"]
14507#[doc = " @G_UNICODE_BREAK_PREFIX: Prefix (Numeric) (PR)"]
14508#[doc = " @G_UNICODE_BREAK_POSTFIX: Postfix (Numeric) (PO)"]
14509#[doc = " @G_UNICODE_BREAK_COMPLEX_CONTEXT: Complex Content Dependent (South East Asian) (SA)"]
14510#[doc = " @G_UNICODE_BREAK_AMBIGUOUS: Ambiguous (Alphabetic or Ideographic) (AI)"]
14511#[doc = " @G_UNICODE_BREAK_UNKNOWN: Unknown (XX)"]
14512#[doc = " @G_UNICODE_BREAK_NEXT_LINE: Next Line (NL)"]
14513#[doc = " @G_UNICODE_BREAK_WORD_JOINER: Word Joiner (WJ)"]
14514#[doc = " @G_UNICODE_BREAK_HANGUL_L_JAMO: Hangul L Jamo (JL)"]
14515#[doc = " @G_UNICODE_BREAK_HANGUL_V_JAMO: Hangul V Jamo (JV)"]
14516#[doc = " @G_UNICODE_BREAK_HANGUL_T_JAMO: Hangul T Jamo (JT)"]
14517#[doc = " @G_UNICODE_BREAK_HANGUL_LV_SYLLABLE: Hangul LV Syllable (H2)"]
14518#[doc = " @G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE: Hangul LVT Syllable (H3)"]
14519#[doc = " @G_UNICODE_BREAK_CLOSE_PARANTHESIS: Closing Parenthesis (CP). Since 2.28"]
14520#[doc = " @G_UNICODE_BREAK_CONDITIONAL_JAPANESE_STARTER: Conditional Japanese Starter (CJ). Since: 2.32"]
14521#[doc = " @G_UNICODE_BREAK_HEBREW_LETTER: Hebrew Letter (HL). Since: 2.32"]
14522#[doc = " @G_UNICODE_BREAK_REGIONAL_INDICATOR: Regional Indicator (RI). Since: 2.36"]
14523#[doc = " @G_UNICODE_BREAK_EMOJI_BASE: Emoji Base (EB). Since: 2.50"]
14524#[doc = " @G_UNICODE_BREAK_EMOJI_MODIFIER: Emoji Modifier (EM). Since: 2.50"]
14525#[doc = " @G_UNICODE_BREAK_ZERO_WIDTH_JOINER: Zero Width Joiner (ZWJ). Since: 2.50"]
14526#[doc = ""]
14527#[doc = " These are the possible line break classifications."]
14528#[doc = ""]
14529#[doc = " Since new unicode versions may add new types here, applications should be ready"]
14530#[doc = " to handle unknown values. They may be regarded as %G_UNICODE_BREAK_UNKNOWN."]
14531#[doc = ""]
14532#[doc = " See [Unicode Line Breaking Algorithm](http://www.unicode.org/unicode/reports/tr14/)."]
14533pub type GUnicodeBreakType = u32;
14534pub const GUnicodeScript_G_UNICODE_SCRIPT_INVALID_CODE: GUnicodeScript = -1;
14535pub const GUnicodeScript_G_UNICODE_SCRIPT_COMMON: GUnicodeScript = 0;
14536pub const GUnicodeScript_G_UNICODE_SCRIPT_INHERITED: GUnicodeScript = 1;
14537pub const GUnicodeScript_G_UNICODE_SCRIPT_ARABIC: GUnicodeScript = 2;
14538pub const GUnicodeScript_G_UNICODE_SCRIPT_ARMENIAN: GUnicodeScript = 3;
14539pub const GUnicodeScript_G_UNICODE_SCRIPT_BENGALI: GUnicodeScript = 4;
14540pub const GUnicodeScript_G_UNICODE_SCRIPT_BOPOMOFO: GUnicodeScript = 5;
14541pub const GUnicodeScript_G_UNICODE_SCRIPT_CHEROKEE: GUnicodeScript = 6;
14542pub const GUnicodeScript_G_UNICODE_SCRIPT_COPTIC: GUnicodeScript = 7;
14543pub const GUnicodeScript_G_UNICODE_SCRIPT_CYRILLIC: GUnicodeScript = 8;
14544pub const GUnicodeScript_G_UNICODE_SCRIPT_DESERET: GUnicodeScript = 9;
14545pub const GUnicodeScript_G_UNICODE_SCRIPT_DEVANAGARI: GUnicodeScript = 10;
14546pub const GUnicodeScript_G_UNICODE_SCRIPT_ETHIOPIC: GUnicodeScript = 11;
14547pub const GUnicodeScript_G_UNICODE_SCRIPT_GEORGIAN: GUnicodeScript = 12;
14548pub const GUnicodeScript_G_UNICODE_SCRIPT_GOTHIC: GUnicodeScript = 13;
14549pub const GUnicodeScript_G_UNICODE_SCRIPT_GREEK: GUnicodeScript = 14;
14550pub const GUnicodeScript_G_UNICODE_SCRIPT_GUJARATI: GUnicodeScript = 15;
14551pub const GUnicodeScript_G_UNICODE_SCRIPT_GURMUKHI: GUnicodeScript = 16;
14552pub const GUnicodeScript_G_UNICODE_SCRIPT_HAN: GUnicodeScript = 17;
14553pub const GUnicodeScript_G_UNICODE_SCRIPT_HANGUL: GUnicodeScript = 18;
14554pub const GUnicodeScript_G_UNICODE_SCRIPT_HEBREW: GUnicodeScript = 19;
14555pub const GUnicodeScript_G_UNICODE_SCRIPT_HIRAGANA: GUnicodeScript = 20;
14556pub const GUnicodeScript_G_UNICODE_SCRIPT_KANNADA: GUnicodeScript = 21;
14557pub const GUnicodeScript_G_UNICODE_SCRIPT_KATAKANA: GUnicodeScript = 22;
14558pub const GUnicodeScript_G_UNICODE_SCRIPT_KHMER: GUnicodeScript = 23;
14559pub const GUnicodeScript_G_UNICODE_SCRIPT_LAO: GUnicodeScript = 24;
14560pub const GUnicodeScript_G_UNICODE_SCRIPT_LATIN: GUnicodeScript = 25;
14561pub const GUnicodeScript_G_UNICODE_SCRIPT_MALAYALAM: GUnicodeScript = 26;
14562pub const GUnicodeScript_G_UNICODE_SCRIPT_MONGOLIAN: GUnicodeScript = 27;
14563pub const GUnicodeScript_G_UNICODE_SCRIPT_MYANMAR: GUnicodeScript = 28;
14564pub const GUnicodeScript_G_UNICODE_SCRIPT_OGHAM: GUnicodeScript = 29;
14565pub const GUnicodeScript_G_UNICODE_SCRIPT_OLD_ITALIC: GUnicodeScript = 30;
14566pub const GUnicodeScript_G_UNICODE_SCRIPT_ORIYA: GUnicodeScript = 31;
14567pub const GUnicodeScript_G_UNICODE_SCRIPT_RUNIC: GUnicodeScript = 32;
14568pub const GUnicodeScript_G_UNICODE_SCRIPT_SINHALA: GUnicodeScript = 33;
14569pub const GUnicodeScript_G_UNICODE_SCRIPT_SYRIAC: GUnicodeScript = 34;
14570pub const GUnicodeScript_G_UNICODE_SCRIPT_TAMIL: GUnicodeScript = 35;
14571pub const GUnicodeScript_G_UNICODE_SCRIPT_TELUGU: GUnicodeScript = 36;
14572pub const GUnicodeScript_G_UNICODE_SCRIPT_THAANA: GUnicodeScript = 37;
14573pub const GUnicodeScript_G_UNICODE_SCRIPT_THAI: GUnicodeScript = 38;
14574pub const GUnicodeScript_G_UNICODE_SCRIPT_TIBETAN: GUnicodeScript = 39;
14575pub const GUnicodeScript_G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL: GUnicodeScript = 40;
14576pub const GUnicodeScript_G_UNICODE_SCRIPT_YI: GUnicodeScript = 41;
14577pub const GUnicodeScript_G_UNICODE_SCRIPT_TAGALOG: GUnicodeScript = 42;
14578pub const GUnicodeScript_G_UNICODE_SCRIPT_HANUNOO: GUnicodeScript = 43;
14579pub const GUnicodeScript_G_UNICODE_SCRIPT_BUHID: GUnicodeScript = 44;
14580pub const GUnicodeScript_G_UNICODE_SCRIPT_TAGBANWA: GUnicodeScript = 45;
14581pub const GUnicodeScript_G_UNICODE_SCRIPT_BRAILLE: GUnicodeScript = 46;
14582pub const GUnicodeScript_G_UNICODE_SCRIPT_CYPRIOT: GUnicodeScript = 47;
14583pub const GUnicodeScript_G_UNICODE_SCRIPT_LIMBU: GUnicodeScript = 48;
14584pub const GUnicodeScript_G_UNICODE_SCRIPT_OSMANYA: GUnicodeScript = 49;
14585pub const GUnicodeScript_G_UNICODE_SCRIPT_SHAVIAN: GUnicodeScript = 50;
14586pub const GUnicodeScript_G_UNICODE_SCRIPT_LINEAR_B: GUnicodeScript = 51;
14587pub const GUnicodeScript_G_UNICODE_SCRIPT_TAI_LE: GUnicodeScript = 52;
14588pub const GUnicodeScript_G_UNICODE_SCRIPT_UGARITIC: GUnicodeScript = 53;
14589pub const GUnicodeScript_G_UNICODE_SCRIPT_NEW_TAI_LUE: GUnicodeScript = 54;
14590pub const GUnicodeScript_G_UNICODE_SCRIPT_BUGINESE: GUnicodeScript = 55;
14591pub const GUnicodeScript_G_UNICODE_SCRIPT_GLAGOLITIC: GUnicodeScript = 56;
14592pub const GUnicodeScript_G_UNICODE_SCRIPT_TIFINAGH: GUnicodeScript = 57;
14593pub const GUnicodeScript_G_UNICODE_SCRIPT_SYLOTI_NAGRI: GUnicodeScript = 58;
14594pub const GUnicodeScript_G_UNICODE_SCRIPT_OLD_PERSIAN: GUnicodeScript = 59;
14595pub const GUnicodeScript_G_UNICODE_SCRIPT_KHAROSHTHI: GUnicodeScript = 60;
14596pub const GUnicodeScript_G_UNICODE_SCRIPT_UNKNOWN: GUnicodeScript = 61;
14597pub const GUnicodeScript_G_UNICODE_SCRIPT_BALINESE: GUnicodeScript = 62;
14598pub const GUnicodeScript_G_UNICODE_SCRIPT_CUNEIFORM: GUnicodeScript = 63;
14599pub const GUnicodeScript_G_UNICODE_SCRIPT_PHOENICIAN: GUnicodeScript = 64;
14600pub const GUnicodeScript_G_UNICODE_SCRIPT_PHAGS_PA: GUnicodeScript = 65;
14601pub const GUnicodeScript_G_UNICODE_SCRIPT_NKO: GUnicodeScript = 66;
14602pub const GUnicodeScript_G_UNICODE_SCRIPT_KAYAH_LI: GUnicodeScript = 67;
14603pub const GUnicodeScript_G_UNICODE_SCRIPT_LEPCHA: GUnicodeScript = 68;
14604pub const GUnicodeScript_G_UNICODE_SCRIPT_REJANG: GUnicodeScript = 69;
14605pub const GUnicodeScript_G_UNICODE_SCRIPT_SUNDANESE: GUnicodeScript = 70;
14606pub const GUnicodeScript_G_UNICODE_SCRIPT_SAURASHTRA: GUnicodeScript = 71;
14607pub const GUnicodeScript_G_UNICODE_SCRIPT_CHAM: GUnicodeScript = 72;
14608pub const GUnicodeScript_G_UNICODE_SCRIPT_OL_CHIKI: GUnicodeScript = 73;
14609pub const GUnicodeScript_G_UNICODE_SCRIPT_VAI: GUnicodeScript = 74;
14610pub const GUnicodeScript_G_UNICODE_SCRIPT_CARIAN: GUnicodeScript = 75;
14611pub const GUnicodeScript_G_UNICODE_SCRIPT_LYCIAN: GUnicodeScript = 76;
14612pub const GUnicodeScript_G_UNICODE_SCRIPT_LYDIAN: GUnicodeScript = 77;
14613pub const GUnicodeScript_G_UNICODE_SCRIPT_AVESTAN: GUnicodeScript = 78;
14614pub const GUnicodeScript_G_UNICODE_SCRIPT_BAMUM: GUnicodeScript = 79;
14615pub const GUnicodeScript_G_UNICODE_SCRIPT_EGYPTIAN_HIEROGLYPHS: GUnicodeScript = 80;
14616pub const GUnicodeScript_G_UNICODE_SCRIPT_IMPERIAL_ARAMAIC: GUnicodeScript = 81;
14617pub const GUnicodeScript_G_UNICODE_SCRIPT_INSCRIPTIONAL_PAHLAVI: GUnicodeScript = 82;
14618pub const GUnicodeScript_G_UNICODE_SCRIPT_INSCRIPTIONAL_PARTHIAN: GUnicodeScript = 83;
14619pub const GUnicodeScript_G_UNICODE_SCRIPT_JAVANESE: GUnicodeScript = 84;
14620pub const GUnicodeScript_G_UNICODE_SCRIPT_KAITHI: GUnicodeScript = 85;
14621pub const GUnicodeScript_G_UNICODE_SCRIPT_LISU: GUnicodeScript = 86;
14622pub const GUnicodeScript_G_UNICODE_SCRIPT_MEETEI_MAYEK: GUnicodeScript = 87;
14623pub const GUnicodeScript_G_UNICODE_SCRIPT_OLD_SOUTH_ARABIAN: GUnicodeScript = 88;
14624pub const GUnicodeScript_G_UNICODE_SCRIPT_OLD_TURKIC: GUnicodeScript = 89;
14625pub const GUnicodeScript_G_UNICODE_SCRIPT_SAMARITAN: GUnicodeScript = 90;
14626pub const GUnicodeScript_G_UNICODE_SCRIPT_TAI_THAM: GUnicodeScript = 91;
14627pub const GUnicodeScript_G_UNICODE_SCRIPT_TAI_VIET: GUnicodeScript = 92;
14628pub const GUnicodeScript_G_UNICODE_SCRIPT_BATAK: GUnicodeScript = 93;
14629pub const GUnicodeScript_G_UNICODE_SCRIPT_BRAHMI: GUnicodeScript = 94;
14630pub const GUnicodeScript_G_UNICODE_SCRIPT_MANDAIC: GUnicodeScript = 95;
14631pub const GUnicodeScript_G_UNICODE_SCRIPT_CHAKMA: GUnicodeScript = 96;
14632pub const GUnicodeScript_G_UNICODE_SCRIPT_MEROITIC_CURSIVE: GUnicodeScript = 97;
14633pub const GUnicodeScript_G_UNICODE_SCRIPT_MEROITIC_HIEROGLYPHS: GUnicodeScript = 98;
14634pub const GUnicodeScript_G_UNICODE_SCRIPT_MIAO: GUnicodeScript = 99;
14635pub const GUnicodeScript_G_UNICODE_SCRIPT_SHARADA: GUnicodeScript = 100;
14636pub const GUnicodeScript_G_UNICODE_SCRIPT_SORA_SOMPENG: GUnicodeScript = 101;
14637pub const GUnicodeScript_G_UNICODE_SCRIPT_TAKRI: GUnicodeScript = 102;
14638pub const GUnicodeScript_G_UNICODE_SCRIPT_BASSA_VAH: GUnicodeScript = 103;
14639pub const GUnicodeScript_G_UNICODE_SCRIPT_CAUCASIAN_ALBANIAN: GUnicodeScript = 104;
14640pub const GUnicodeScript_G_UNICODE_SCRIPT_DUPLOYAN: GUnicodeScript = 105;
14641pub const GUnicodeScript_G_UNICODE_SCRIPT_ELBASAN: GUnicodeScript = 106;
14642pub const GUnicodeScript_G_UNICODE_SCRIPT_GRANTHA: GUnicodeScript = 107;
14643pub const GUnicodeScript_G_UNICODE_SCRIPT_KHOJKI: GUnicodeScript = 108;
14644pub const GUnicodeScript_G_UNICODE_SCRIPT_KHUDAWADI: GUnicodeScript = 109;
14645pub const GUnicodeScript_G_UNICODE_SCRIPT_LINEAR_A: GUnicodeScript = 110;
14646pub const GUnicodeScript_G_UNICODE_SCRIPT_MAHAJANI: GUnicodeScript = 111;
14647pub const GUnicodeScript_G_UNICODE_SCRIPT_MANICHAEAN: GUnicodeScript = 112;
14648pub const GUnicodeScript_G_UNICODE_SCRIPT_MENDE_KIKAKUI: GUnicodeScript = 113;
14649pub const GUnicodeScript_G_UNICODE_SCRIPT_MODI: GUnicodeScript = 114;
14650pub const GUnicodeScript_G_UNICODE_SCRIPT_MRO: GUnicodeScript = 115;
14651pub const GUnicodeScript_G_UNICODE_SCRIPT_NABATAEAN: GUnicodeScript = 116;
14652pub const GUnicodeScript_G_UNICODE_SCRIPT_OLD_NORTH_ARABIAN: GUnicodeScript = 117;
14653pub const GUnicodeScript_G_UNICODE_SCRIPT_OLD_PERMIC: GUnicodeScript = 118;
14654pub const GUnicodeScript_G_UNICODE_SCRIPT_PAHAWH_HMONG: GUnicodeScript = 119;
14655pub const GUnicodeScript_G_UNICODE_SCRIPT_PALMYRENE: GUnicodeScript = 120;
14656pub const GUnicodeScript_G_UNICODE_SCRIPT_PAU_CIN_HAU: GUnicodeScript = 121;
14657pub const GUnicodeScript_G_UNICODE_SCRIPT_PSALTER_PAHLAVI: GUnicodeScript = 122;
14658pub const GUnicodeScript_G_UNICODE_SCRIPT_SIDDHAM: GUnicodeScript = 123;
14659pub const GUnicodeScript_G_UNICODE_SCRIPT_TIRHUTA: GUnicodeScript = 124;
14660pub const GUnicodeScript_G_UNICODE_SCRIPT_WARANG_CITI: GUnicodeScript = 125;
14661pub const GUnicodeScript_G_UNICODE_SCRIPT_AHOM: GUnicodeScript = 126;
14662pub const GUnicodeScript_G_UNICODE_SCRIPT_ANATOLIAN_HIEROGLYPHS: GUnicodeScript = 127;
14663pub const GUnicodeScript_G_UNICODE_SCRIPT_HATRAN: GUnicodeScript = 128;
14664pub const GUnicodeScript_G_UNICODE_SCRIPT_MULTANI: GUnicodeScript = 129;
14665pub const GUnicodeScript_G_UNICODE_SCRIPT_OLD_HUNGARIAN: GUnicodeScript = 130;
14666pub const GUnicodeScript_G_UNICODE_SCRIPT_SIGNWRITING: GUnicodeScript = 131;
14667pub const GUnicodeScript_G_UNICODE_SCRIPT_ADLAM: GUnicodeScript = 132;
14668pub const GUnicodeScript_G_UNICODE_SCRIPT_BHAIKSUKI: GUnicodeScript = 133;
14669pub const GUnicodeScript_G_UNICODE_SCRIPT_MARCHEN: GUnicodeScript = 134;
14670pub const GUnicodeScript_G_UNICODE_SCRIPT_NEWA: GUnicodeScript = 135;
14671pub const GUnicodeScript_G_UNICODE_SCRIPT_OSAGE: GUnicodeScript = 136;
14672pub const GUnicodeScript_G_UNICODE_SCRIPT_TANGUT: GUnicodeScript = 137;
14673pub const GUnicodeScript_G_UNICODE_SCRIPT_MASARAM_GONDI: GUnicodeScript = 138;
14674pub const GUnicodeScript_G_UNICODE_SCRIPT_NUSHU: GUnicodeScript = 139;
14675pub const GUnicodeScript_G_UNICODE_SCRIPT_SOYOMBO: GUnicodeScript = 140;
14676pub const GUnicodeScript_G_UNICODE_SCRIPT_ZANABAZAR_SQUARE: GUnicodeScript = 141;
14677#[doc = " GUnicodeScript:"]
14678#[doc = " @G_UNICODE_SCRIPT_INVALID_CODE:"]
14679#[doc = "                               a value never returned from g_unichar_get_script()"]
14680#[doc = " @G_UNICODE_SCRIPT_COMMON:     a character used by multiple different scripts"]
14681#[doc = " @G_UNICODE_SCRIPT_INHERITED:  a mark glyph that takes its script from the"]
14682#[doc = "                               base glyph to which it is attached"]
14683#[doc = " @G_UNICODE_SCRIPT_ARABIC:     Arabic"]
14684#[doc = " @G_UNICODE_SCRIPT_ARMENIAN:   Armenian"]
14685#[doc = " @G_UNICODE_SCRIPT_BENGALI:    Bengali"]
14686#[doc = " @G_UNICODE_SCRIPT_BOPOMOFO:   Bopomofo"]
14687#[doc = " @G_UNICODE_SCRIPT_CHEROKEE:   Cherokee"]
14688#[doc = " @G_UNICODE_SCRIPT_COPTIC:     Coptic"]
14689#[doc = " @G_UNICODE_SCRIPT_CYRILLIC:   Cyrillic"]
14690#[doc = " @G_UNICODE_SCRIPT_DESERET:    Deseret"]
14691#[doc = " @G_UNICODE_SCRIPT_DEVANAGARI: Devanagari"]
14692#[doc = " @G_UNICODE_SCRIPT_ETHIOPIC:   Ethiopic"]
14693#[doc = " @G_UNICODE_SCRIPT_GEORGIAN:   Georgian"]
14694#[doc = " @G_UNICODE_SCRIPT_GOTHIC:     Gothic"]
14695#[doc = " @G_UNICODE_SCRIPT_GREEK:      Greek"]
14696#[doc = " @G_UNICODE_SCRIPT_GUJARATI:   Gujarati"]
14697#[doc = " @G_UNICODE_SCRIPT_GURMUKHI:   Gurmukhi"]
14698#[doc = " @G_UNICODE_SCRIPT_HAN:        Han"]
14699#[doc = " @G_UNICODE_SCRIPT_HANGUL:     Hangul"]
14700#[doc = " @G_UNICODE_SCRIPT_HEBREW:     Hebrew"]
14701#[doc = " @G_UNICODE_SCRIPT_HIRAGANA:   Hiragana"]
14702#[doc = " @G_UNICODE_SCRIPT_KANNADA:    Kannada"]
14703#[doc = " @G_UNICODE_SCRIPT_KATAKANA:   Katakana"]
14704#[doc = " @G_UNICODE_SCRIPT_KHMER:      Khmer"]
14705#[doc = " @G_UNICODE_SCRIPT_LAO:        Lao"]
14706#[doc = " @G_UNICODE_SCRIPT_LATIN:      Latin"]
14707#[doc = " @G_UNICODE_SCRIPT_MALAYALAM:  Malayalam"]
14708#[doc = " @G_UNICODE_SCRIPT_MONGOLIAN:  Mongolian"]
14709#[doc = " @G_UNICODE_SCRIPT_MYANMAR:    Myanmar"]
14710#[doc = " @G_UNICODE_SCRIPT_OGHAM:      Ogham"]
14711#[doc = " @G_UNICODE_SCRIPT_OLD_ITALIC: Old Italic"]
14712#[doc = " @G_UNICODE_SCRIPT_ORIYA:      Oriya"]
14713#[doc = " @G_UNICODE_SCRIPT_RUNIC:      Runic"]
14714#[doc = " @G_UNICODE_SCRIPT_SINHALA:    Sinhala"]
14715#[doc = " @G_UNICODE_SCRIPT_SYRIAC:     Syriac"]
14716#[doc = " @G_UNICODE_SCRIPT_TAMIL:      Tamil"]
14717#[doc = " @G_UNICODE_SCRIPT_TELUGU:     Telugu"]
14718#[doc = " @G_UNICODE_SCRIPT_THAANA:     Thaana"]
14719#[doc = " @G_UNICODE_SCRIPT_THAI:       Thai"]
14720#[doc = " @G_UNICODE_SCRIPT_TIBETAN:    Tibetan"]
14721#[doc = " @G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL:"]
14722#[doc = "                               Canadian Aboriginal"]
14723#[doc = " @G_UNICODE_SCRIPT_YI:         Yi"]
14724#[doc = " @G_UNICODE_SCRIPT_TAGALOG:    Tagalog"]
14725#[doc = " @G_UNICODE_SCRIPT_HANUNOO:    Hanunoo"]
14726#[doc = " @G_UNICODE_SCRIPT_BUHID:      Buhid"]
14727#[doc = " @G_UNICODE_SCRIPT_TAGBANWA:   Tagbanwa"]
14728#[doc = " @G_UNICODE_SCRIPT_BRAILLE:    Braille"]
14729#[doc = " @G_UNICODE_SCRIPT_CYPRIOT:    Cypriot"]
14730#[doc = " @G_UNICODE_SCRIPT_LIMBU:      Limbu"]
14731#[doc = " @G_UNICODE_SCRIPT_OSMANYA:    Osmanya"]
14732#[doc = " @G_UNICODE_SCRIPT_SHAVIAN:    Shavian"]
14733#[doc = " @G_UNICODE_SCRIPT_LINEAR_B:   Linear B"]
14734#[doc = " @G_UNICODE_SCRIPT_TAI_LE:     Tai Le"]
14735#[doc = " @G_UNICODE_SCRIPT_UGARITIC:   Ugaritic"]
14736#[doc = " @G_UNICODE_SCRIPT_NEW_TAI_LUE:"]
14737#[doc = "                               New Tai Lue"]
14738#[doc = " @G_UNICODE_SCRIPT_BUGINESE:   Buginese"]
14739#[doc = " @G_UNICODE_SCRIPT_GLAGOLITIC: Glagolitic"]
14740#[doc = " @G_UNICODE_SCRIPT_TIFINAGH:   Tifinagh"]
14741#[doc = " @G_UNICODE_SCRIPT_SYLOTI_NAGRI:"]
14742#[doc = "                               Syloti Nagri"]
14743#[doc = " @G_UNICODE_SCRIPT_OLD_PERSIAN:"]
14744#[doc = "                               Old Persian"]
14745#[doc = " @G_UNICODE_SCRIPT_KHAROSHTHI: Kharoshthi"]
14746#[doc = " @G_UNICODE_SCRIPT_UNKNOWN:    an unassigned code point"]
14747#[doc = " @G_UNICODE_SCRIPT_BALINESE:   Balinese"]
14748#[doc = " @G_UNICODE_SCRIPT_CUNEIFORM:  Cuneiform"]
14749#[doc = " @G_UNICODE_SCRIPT_PHOENICIAN: Phoenician"]
14750#[doc = " @G_UNICODE_SCRIPT_PHAGS_PA:   Phags-pa"]
14751#[doc = " @G_UNICODE_SCRIPT_NKO:        N'Ko"]
14752#[doc = " @G_UNICODE_SCRIPT_KAYAH_LI:   Kayah Li. Since 2.16.3"]
14753#[doc = " @G_UNICODE_SCRIPT_LEPCHA:     Lepcha. Since 2.16.3"]
14754#[doc = " @G_UNICODE_SCRIPT_REJANG:     Rejang. Since 2.16.3"]
14755#[doc = " @G_UNICODE_SCRIPT_SUNDANESE:  Sundanese. Since 2.16.3"]
14756#[doc = " @G_UNICODE_SCRIPT_SAURASHTRA: Saurashtra. Since 2.16.3"]
14757#[doc = " @G_UNICODE_SCRIPT_CHAM:       Cham. Since 2.16.3"]
14758#[doc = " @G_UNICODE_SCRIPT_OL_CHIKI:   Ol Chiki. Since 2.16.3"]
14759#[doc = " @G_UNICODE_SCRIPT_VAI:        Vai. Since 2.16.3"]
14760#[doc = " @G_UNICODE_SCRIPT_CARIAN:     Carian. Since 2.16.3"]
14761#[doc = " @G_UNICODE_SCRIPT_LYCIAN:     Lycian. Since 2.16.3"]
14762#[doc = " @G_UNICODE_SCRIPT_LYDIAN:     Lydian. Since 2.16.3"]
14763#[doc = " @G_UNICODE_SCRIPT_AVESTAN:    Avestan. Since 2.26"]
14764#[doc = " @G_UNICODE_SCRIPT_BAMUM:      Bamum. Since 2.26"]
14765#[doc = " @G_UNICODE_SCRIPT_EGYPTIAN_HIEROGLYPHS:"]
14766#[doc = "                               Egyptian Hieroglpyhs. Since 2.26"]
14767#[doc = " @G_UNICODE_SCRIPT_IMPERIAL_ARAMAIC:"]
14768#[doc = "                               Imperial Aramaic. Since 2.26"]
14769#[doc = " @G_UNICODE_SCRIPT_INSCRIPTIONAL_PAHLAVI:"]
14770#[doc = "                               Inscriptional Pahlavi. Since 2.26"]
14771#[doc = " @G_UNICODE_SCRIPT_INSCRIPTIONAL_PARTHIAN:"]
14772#[doc = "                               Inscriptional Parthian. Since 2.26"]
14773#[doc = " @G_UNICODE_SCRIPT_JAVANESE:   Javanese. Since 2.26"]
14774#[doc = " @G_UNICODE_SCRIPT_KAITHI:     Kaithi. Since 2.26"]
14775#[doc = " @G_UNICODE_SCRIPT_LISU:       Lisu. Since 2.26"]
14776#[doc = " @G_UNICODE_SCRIPT_MEETEI_MAYEK:"]
14777#[doc = "                               Meetei Mayek. Since 2.26"]
14778#[doc = " @G_UNICODE_SCRIPT_OLD_SOUTH_ARABIAN:"]
14779#[doc = "                               Old South Arabian. Since 2.26"]
14780#[doc = " @G_UNICODE_SCRIPT_OLD_TURKIC: Old Turkic. Since 2.28"]
14781#[doc = " @G_UNICODE_SCRIPT_SAMARITAN:  Samaritan. Since 2.26"]
14782#[doc = " @G_UNICODE_SCRIPT_TAI_THAM:   Tai Tham. Since 2.26"]
14783#[doc = " @G_UNICODE_SCRIPT_TAI_VIET:   Tai Viet. Since 2.26"]
14784#[doc = " @G_UNICODE_SCRIPT_BATAK:      Batak. Since 2.28"]
14785#[doc = " @G_UNICODE_SCRIPT_BRAHMI:     Brahmi. Since 2.28"]
14786#[doc = " @G_UNICODE_SCRIPT_MANDAIC:    Mandaic. Since 2.28"]
14787#[doc = " @G_UNICODE_SCRIPT_CHAKMA:               Chakma. Since: 2.32"]
14788#[doc = " @G_UNICODE_SCRIPT_MEROITIC_CURSIVE:     Meroitic Cursive. Since: 2.32"]
14789#[doc = " @G_UNICODE_SCRIPT_MEROITIC_HIEROGLYPHS: Meroitic Hieroglyphs. Since: 2.32"]
14790#[doc = " @G_UNICODE_SCRIPT_MIAO:                 Miao. Since: 2.32"]
14791#[doc = " @G_UNICODE_SCRIPT_SHARADA:              Sharada. Since: 2.32"]
14792#[doc = " @G_UNICODE_SCRIPT_SORA_SOMPENG:         Sora Sompeng. Since: 2.32"]
14793#[doc = " @G_UNICODE_SCRIPT_TAKRI:                Takri. Since: 2.32"]
14794#[doc = " @G_UNICODE_SCRIPT_BASSA_VAH:            Bassa. Since: 2.42"]
14795#[doc = " @G_UNICODE_SCRIPT_CAUCASIAN_ALBANIAN:   Caucasian Albanian. Since: 2.42"]
14796#[doc = " @G_UNICODE_SCRIPT_DUPLOYAN:             Duployan. Since: 2.42"]
14797#[doc = " @G_UNICODE_SCRIPT_ELBASAN:              Elbasan. Since: 2.42"]
14798#[doc = " @G_UNICODE_SCRIPT_GRANTHA:              Grantha. Since: 2.42"]
14799#[doc = " @G_UNICODE_SCRIPT_KHOJKI:               Kjohki. Since: 2.42"]
14800#[doc = " @G_UNICODE_SCRIPT_KHUDAWADI:            Khudawadi, Sindhi. Since: 2.42"]
14801#[doc = " @G_UNICODE_SCRIPT_LINEAR_A:             Linear A. Since: 2.42"]
14802#[doc = " @G_UNICODE_SCRIPT_MAHAJANI:             Mahajani. Since: 2.42"]
14803#[doc = " @G_UNICODE_SCRIPT_MANICHAEAN:           Manichaean. Since: 2.42"]
14804#[doc = " @G_UNICODE_SCRIPT_MENDE_KIKAKUI:        Mende Kikakui. Since: 2.42"]
14805#[doc = " @G_UNICODE_SCRIPT_MODI:                 Modi. Since: 2.42"]
14806#[doc = " @G_UNICODE_SCRIPT_MRO:                  Mro. Since: 2.42"]
14807#[doc = " @G_UNICODE_SCRIPT_NABATAEAN:            Nabataean. Since: 2.42"]
14808#[doc = " @G_UNICODE_SCRIPT_OLD_NORTH_ARABIAN:    Old North Arabian. Since: 2.42"]
14809#[doc = " @G_UNICODE_SCRIPT_OLD_PERMIC:           Old Permic. Since: 2.42"]
14810#[doc = " @G_UNICODE_SCRIPT_PAHAWH_HMONG:         Pahawh Hmong. Since: 2.42"]
14811#[doc = " @G_UNICODE_SCRIPT_PALMYRENE:            Palmyrene. Since: 2.42"]
14812#[doc = " @G_UNICODE_SCRIPT_PAU_CIN_HAU:          Pau Cin Hau. Since: 2.42"]
14813#[doc = " @G_UNICODE_SCRIPT_PSALTER_PAHLAVI:      Psalter Pahlavi. Since: 2.42"]
14814#[doc = " @G_UNICODE_SCRIPT_SIDDHAM:              Siddham. Since: 2.42"]
14815#[doc = " @G_UNICODE_SCRIPT_TIRHUTA:              Tirhuta. Since: 2.42"]
14816#[doc = " @G_UNICODE_SCRIPT_WARANG_CITI:          Warang Citi. Since: 2.42"]
14817#[doc = " @G_UNICODE_SCRIPT_AHOM:                 Ahom. Since: 2.48"]
14818#[doc = " @G_UNICODE_SCRIPT_ANATOLIAN_HIEROGLYPHS: Anatolian Hieroglyphs. Since: 2.48"]
14819#[doc = " @G_UNICODE_SCRIPT_HATRAN:               Hatran. Since: 2.48"]
14820#[doc = " @G_UNICODE_SCRIPT_MULTANI:              Multani. Since: 2.48"]
14821#[doc = " @G_UNICODE_SCRIPT_OLD_HUNGARIAN:        Old Hungarian. Since: 2.48"]
14822#[doc = " @G_UNICODE_SCRIPT_SIGNWRITING:          Signwriting. Since: 2.48"]
14823#[doc = " @G_UNICODE_SCRIPT_ADLAM:                Adlam. Since: 2.50"]
14824#[doc = " @G_UNICODE_SCRIPT_BHAIKSUKI:            Bhaiksuki. Since: 2.50"]
14825#[doc = " @G_UNICODE_SCRIPT_MARCHEN:              Marchen. Since: 2.50"]
14826#[doc = " @G_UNICODE_SCRIPT_NEWA:                 Newa. Since: 2.50"]
14827#[doc = " @G_UNICODE_SCRIPT_OSAGE:                Osage. Since: 2.50"]
14828#[doc = " @G_UNICODE_SCRIPT_TANGUT:               Tangut. Since: 2.50"]
14829#[doc = " @G_UNICODE_SCRIPT_MASARAM_GONDI:        Masaram Gondi. Since: 2.54"]
14830#[doc = " @G_UNICODE_SCRIPT_NUSHU:                Nushu. Since: 2.54"]
14831#[doc = " @G_UNICODE_SCRIPT_SOYOMBO:              Soyombo. Since: 2.54"]
14832#[doc = " @G_UNICODE_SCRIPT_ZANABAZAR_SQUARE:     Zanabazar Square. Since: 2.54"]
14833#[doc = ""]
14834#[doc = " The #GUnicodeScript enumeration identifies different writing"]
14835#[doc = " systems. The values correspond to the names as defined in the"]
14836#[doc = " Unicode standard. The enumeration has been added in GLib 2.14,"]
14837#[doc = " and is interchangeable with #PangoScript."]
14838#[doc = ""]
14839#[doc = " Note that new types may be added in the future. Applications"]
14840#[doc = " should be ready to handle unknown values."]
14841#[doc = " See [Unicode Standard Annex #24: Script names](http://www.unicode.org/reports/tr24/)."]
14842pub type GUnicodeScript = i32;
14843extern "C" {
14844    pub fn g_unicode_script_to_iso15924(script: GUnicodeScript) -> guint32;
14845}
14846extern "C" {
14847    pub fn g_unicode_script_from_iso15924(iso15924: guint32) -> GUnicodeScript;
14848}
14849extern "C" {
14850    pub fn g_unichar_isalnum(c: gunichar) -> gboolean;
14851}
14852extern "C" {
14853    pub fn g_unichar_isalpha(c: gunichar) -> gboolean;
14854}
14855extern "C" {
14856    pub fn g_unichar_iscntrl(c: gunichar) -> gboolean;
14857}
14858extern "C" {
14859    pub fn g_unichar_isdigit(c: gunichar) -> gboolean;
14860}
14861extern "C" {
14862    pub fn g_unichar_isgraph(c: gunichar) -> gboolean;
14863}
14864extern "C" {
14865    pub fn g_unichar_islower(c: gunichar) -> gboolean;
14866}
14867extern "C" {
14868    pub fn g_unichar_isprint(c: gunichar) -> gboolean;
14869}
14870extern "C" {
14871    pub fn g_unichar_ispunct(c: gunichar) -> gboolean;
14872}
14873extern "C" {
14874    pub fn g_unichar_isspace(c: gunichar) -> gboolean;
14875}
14876extern "C" {
14877    pub fn g_unichar_isupper(c: gunichar) -> gboolean;
14878}
14879extern "C" {
14880    pub fn g_unichar_isxdigit(c: gunichar) -> gboolean;
14881}
14882extern "C" {
14883    pub fn g_unichar_istitle(c: gunichar) -> gboolean;
14884}
14885extern "C" {
14886    pub fn g_unichar_isdefined(c: gunichar) -> gboolean;
14887}
14888extern "C" {
14889    pub fn g_unichar_iswide(c: gunichar) -> gboolean;
14890}
14891extern "C" {
14892    pub fn g_unichar_iswide_cjk(c: gunichar) -> gboolean;
14893}
14894extern "C" {
14895    pub fn g_unichar_iszerowidth(c: gunichar) -> gboolean;
14896}
14897extern "C" {
14898    pub fn g_unichar_ismark(c: gunichar) -> gboolean;
14899}
14900extern "C" {
14901    pub fn g_unichar_toupper(c: gunichar) -> gunichar;
14902}
14903extern "C" {
14904    pub fn g_unichar_tolower(c: gunichar) -> gunichar;
14905}
14906extern "C" {
14907    pub fn g_unichar_totitle(c: gunichar) -> gunichar;
14908}
14909extern "C" {
14910    pub fn g_unichar_digit_value(c: gunichar) -> gint;
14911}
14912extern "C" {
14913    pub fn g_unichar_xdigit_value(c: gunichar) -> gint;
14914}
14915extern "C" {
14916    pub fn g_unichar_type(c: gunichar) -> GUnicodeType;
14917}
14918extern "C" {
14919    pub fn g_unichar_break_type(c: gunichar) -> GUnicodeBreakType;
14920}
14921extern "C" {
14922    pub fn g_unichar_combining_class(uc: gunichar) -> gint;
14923}
14924extern "C" {
14925    pub fn g_unichar_get_mirror_char(ch: gunichar, mirrored_ch: *mut gunichar) -> gboolean;
14926}
14927extern "C" {
14928    pub fn g_unichar_get_script(ch: gunichar) -> GUnicodeScript;
14929}
14930extern "C" {
14931    pub fn g_unichar_validate(ch: gunichar) -> gboolean;
14932}
14933extern "C" {
14934    pub fn g_unichar_compose(a: gunichar, b: gunichar, ch: *mut gunichar) -> gboolean;
14935}
14936extern "C" {
14937    pub fn g_unichar_decompose(ch: gunichar, a: *mut gunichar, b: *mut gunichar) -> gboolean;
14938}
14939extern "C" {
14940    pub fn g_unichar_fully_decompose(
14941        ch: gunichar,
14942        compat: gboolean,
14943        result: *mut gunichar,
14944        result_len: gsize,
14945    ) -> gsize;
14946}
14947extern "C" {
14948    pub fn g_unicode_canonical_ordering(string: *mut gunichar, len: gsize);
14949}
14950extern "C" {
14951    pub fn g_unicode_canonical_decomposition(ch: gunichar, result_len: *mut gsize)
14952        -> *mut gunichar;
14953}
14954extern "C" {
14955    pub static g_utf8_skip: *const gchar;
14956}
14957extern "C" {
14958    pub fn g_utf8_get_char(p: *const gchar) -> gunichar;
14959}
14960extern "C" {
14961    pub fn g_utf8_get_char_validated(p: *const gchar, max_len: gssize) -> gunichar;
14962}
14963extern "C" {
14964    pub fn g_utf8_offset_to_pointer(str: *const gchar, offset: glong) -> *mut gchar;
14965}
14966extern "C" {
14967    pub fn g_utf8_pointer_to_offset(str: *const gchar, pos: *const gchar) -> glong;
14968}
14969extern "C" {
14970    pub fn g_utf8_prev_char(p: *const gchar) -> *mut gchar;
14971}
14972extern "C" {
14973    pub fn g_utf8_find_next_char(p: *const gchar, end: *const gchar) -> *mut gchar;
14974}
14975extern "C" {
14976    pub fn g_utf8_find_prev_char(str: *const gchar, p: *const gchar) -> *mut gchar;
14977}
14978extern "C" {
14979    pub fn g_utf8_strlen(p: *const gchar, max: gssize) -> glong;
14980}
14981extern "C" {
14982    pub fn g_utf8_substring(str: *const gchar, start_pos: glong, end_pos: glong) -> *mut gchar;
14983}
14984extern "C" {
14985    pub fn g_utf8_strncpy(dest: *mut gchar, src: *const gchar, n: gsize) -> *mut gchar;
14986}
14987extern "C" {
14988    pub fn g_utf8_strchr(p: *const gchar, len: gssize, c: gunichar) -> *mut gchar;
14989}
14990extern "C" {
14991    pub fn g_utf8_strrchr(p: *const gchar, len: gssize, c: gunichar) -> *mut gchar;
14992}
14993extern "C" {
14994    pub fn g_utf8_strreverse(str: *const gchar, len: gssize) -> *mut gchar;
14995}
14996extern "C" {
14997    pub fn g_utf8_to_utf16(
14998        str: *const gchar,
14999        len: glong,
15000        items_read: *mut glong,
15001        items_written: *mut glong,
15002        error: *mut *mut GError,
15003    ) -> *mut gunichar2;
15004}
15005extern "C" {
15006    pub fn g_utf8_to_ucs4(
15007        str: *const gchar,
15008        len: glong,
15009        items_read: *mut glong,
15010        items_written: *mut glong,
15011        error: *mut *mut GError,
15012    ) -> *mut gunichar;
15013}
15014extern "C" {
15015    pub fn g_utf8_to_ucs4_fast(
15016        str: *const gchar,
15017        len: glong,
15018        items_written: *mut glong,
15019    ) -> *mut gunichar;
15020}
15021extern "C" {
15022    pub fn g_utf16_to_ucs4(
15023        str: *const gunichar2,
15024        len: glong,
15025        items_read: *mut glong,
15026        items_written: *mut glong,
15027        error: *mut *mut GError,
15028    ) -> *mut gunichar;
15029}
15030extern "C" {
15031    pub fn g_utf16_to_utf8(
15032        str: *const gunichar2,
15033        len: glong,
15034        items_read: *mut glong,
15035        items_written: *mut glong,
15036        error: *mut *mut GError,
15037    ) -> *mut gchar;
15038}
15039extern "C" {
15040    pub fn g_ucs4_to_utf16(
15041        str: *const gunichar,
15042        len: glong,
15043        items_read: *mut glong,
15044        items_written: *mut glong,
15045        error: *mut *mut GError,
15046    ) -> *mut gunichar2;
15047}
15048extern "C" {
15049    pub fn g_ucs4_to_utf8(
15050        str: *const gunichar,
15051        len: glong,
15052        items_read: *mut glong,
15053        items_written: *mut glong,
15054        error: *mut *mut GError,
15055    ) -> *mut gchar;
15056}
15057extern "C" {
15058    pub fn g_unichar_to_utf8(c: gunichar, outbuf: *mut gchar) -> gint;
15059}
15060extern "C" {
15061    pub fn g_utf8_validate(str: *const gchar, max_len: gssize, end: *mut *const gchar) -> gboolean;
15062}
15063extern "C" {
15064    pub fn g_utf8_strup(str: *const gchar, len: gssize) -> *mut gchar;
15065}
15066extern "C" {
15067    pub fn g_utf8_strdown(str: *const gchar, len: gssize) -> *mut gchar;
15068}
15069extern "C" {
15070    pub fn g_utf8_casefold(str: *const gchar, len: gssize) -> *mut gchar;
15071}
15072pub const GNormalizeMode_G_NORMALIZE_DEFAULT: GNormalizeMode = 0;
15073pub const GNormalizeMode_G_NORMALIZE_NFD: GNormalizeMode = 0;
15074pub const GNormalizeMode_G_NORMALIZE_DEFAULT_COMPOSE: GNormalizeMode = 1;
15075pub const GNormalizeMode_G_NORMALIZE_NFC: GNormalizeMode = 1;
15076pub const GNormalizeMode_G_NORMALIZE_ALL: GNormalizeMode = 2;
15077pub const GNormalizeMode_G_NORMALIZE_NFKD: GNormalizeMode = 2;
15078pub const GNormalizeMode_G_NORMALIZE_ALL_COMPOSE: GNormalizeMode = 3;
15079pub const GNormalizeMode_G_NORMALIZE_NFKC: GNormalizeMode = 3;
15080#[doc = " GNormalizeMode:"]
15081#[doc = " @G_NORMALIZE_DEFAULT: standardize differences that do not affect the"]
15082#[doc = "     text content, such as the above-mentioned accent representation"]
15083#[doc = " @G_NORMALIZE_NFD: another name for %G_NORMALIZE_DEFAULT"]
15084#[doc = " @G_NORMALIZE_DEFAULT_COMPOSE: like %G_NORMALIZE_DEFAULT, but with"]
15085#[doc = "     composed forms rather than a maximally decomposed form"]
15086#[doc = " @G_NORMALIZE_NFC: another name for %G_NORMALIZE_DEFAULT_COMPOSE"]
15087#[doc = " @G_NORMALIZE_ALL: beyond %G_NORMALIZE_DEFAULT also standardize the"]
15088#[doc = "     \"compatibility\" characters in Unicode, such as SUPERSCRIPT THREE"]
15089#[doc = "     to the standard forms (in this case DIGIT THREE). Formatting"]
15090#[doc = "     information may be lost but for most text operations such"]
15091#[doc = "     characters should be considered the same"]
15092#[doc = " @G_NORMALIZE_NFKD: another name for %G_NORMALIZE_ALL"]
15093#[doc = " @G_NORMALIZE_ALL_COMPOSE: like %G_NORMALIZE_ALL, but with composed"]
15094#[doc = "     forms rather than a maximally decomposed form"]
15095#[doc = " @G_NORMALIZE_NFKC: another name for %G_NORMALIZE_ALL_COMPOSE"]
15096#[doc = ""]
15097#[doc = " Defines how a Unicode string is transformed in a canonical"]
15098#[doc = " form, standardizing such issues as whether a character with"]
15099#[doc = " an accent is represented as a base character and combining"]
15100#[doc = " accent or as a single precomposed character. Unicode strings"]
15101#[doc = " should generally be normalized before comparing them."]
15102pub type GNormalizeMode = u32;
15103extern "C" {
15104    pub fn g_utf8_normalize(str: *const gchar, len: gssize, mode: GNormalizeMode) -> *mut gchar;
15105}
15106extern "C" {
15107    pub fn g_utf8_collate(str1: *const gchar, str2: *const gchar) -> gint;
15108}
15109extern "C" {
15110    pub fn g_utf8_collate_key(str: *const gchar, len: gssize) -> *mut gchar;
15111}
15112extern "C" {
15113    pub fn g_utf8_collate_key_for_filename(str: *const gchar, len: gssize) -> *mut gchar;
15114}
15115extern "C" {
15116    pub fn g_utf8_make_valid(str: *const gchar, len: gssize) -> *mut gchar;
15117}
15118pub type GString = _GString;
15119#[repr(C)]
15120#[derive(Debug, Copy, Clone)]
15121pub struct _GString {
15122    pub str: *mut gchar,
15123    pub len: gsize,
15124    pub allocated_len: gsize,
15125}
15126#[test]
15127fn bindgen_test_layout__GString() {
15128    assert_eq!(
15129        ::std::mem::size_of::<_GString>(),
15130        24usize,
15131        concat!("Size of: ", stringify!(_GString))
15132    );
15133    assert_eq!(
15134        ::std::mem::align_of::<_GString>(),
15135        8usize,
15136        concat!("Alignment of ", stringify!(_GString))
15137    );
15138    assert_eq!(
15139        unsafe { &(*(::std::ptr::null::<_GString>())).str as *const _ as usize },
15140        0usize,
15141        concat!(
15142            "Offset of field: ",
15143            stringify!(_GString),
15144            "::",
15145            stringify!(str)
15146        )
15147    );
15148    assert_eq!(
15149        unsafe { &(*(::std::ptr::null::<_GString>())).len as *const _ as usize },
15150        8usize,
15151        concat!(
15152            "Offset of field: ",
15153            stringify!(_GString),
15154            "::",
15155            stringify!(len)
15156        )
15157    );
15158    assert_eq!(
15159        unsafe { &(*(::std::ptr::null::<_GString>())).allocated_len as *const _ as usize },
15160        16usize,
15161        concat!(
15162            "Offset of field: ",
15163            stringify!(_GString),
15164            "::",
15165            stringify!(allocated_len)
15166        )
15167    );
15168}
15169extern "C" {
15170    pub fn g_string_new(init: *const gchar) -> *mut GString;
15171}
15172extern "C" {
15173    pub fn g_string_new_len(init: *const gchar, len: gssize) -> *mut GString;
15174}
15175extern "C" {
15176    pub fn g_string_sized_new(dfl_size: gsize) -> *mut GString;
15177}
15178extern "C" {
15179    pub fn g_string_free(string: *mut GString, free_segment: gboolean) -> *mut gchar;
15180}
15181extern "C" {
15182    pub fn g_string_free_to_bytes(string: *mut GString) -> *mut GBytes;
15183}
15184extern "C" {
15185    pub fn g_string_equal(v: *const GString, v2: *const GString) -> gboolean;
15186}
15187extern "C" {
15188    pub fn g_string_hash(str: *const GString) -> guint;
15189}
15190extern "C" {
15191    pub fn g_string_assign(string: *mut GString, rval: *const gchar) -> *mut GString;
15192}
15193extern "C" {
15194    pub fn g_string_truncate(string: *mut GString, len: gsize) -> *mut GString;
15195}
15196extern "C" {
15197    pub fn g_string_set_size(string: *mut GString, len: gsize) -> *mut GString;
15198}
15199extern "C" {
15200    pub fn g_string_insert_len(
15201        string: *mut GString,
15202        pos: gssize,
15203        val: *const gchar,
15204        len: gssize,
15205    ) -> *mut GString;
15206}
15207extern "C" {
15208    pub fn g_string_append(string: *mut GString, val: *const gchar) -> *mut GString;
15209}
15210extern "C" {
15211    pub fn g_string_append_len(
15212        string: *mut GString,
15213        val: *const gchar,
15214        len: gssize,
15215    ) -> *mut GString;
15216}
15217extern "C" {
15218    pub fn g_string_append_c(string: *mut GString, c: gchar) -> *mut GString;
15219}
15220extern "C" {
15221    pub fn g_string_append_unichar(string: *mut GString, wc: gunichar) -> *mut GString;
15222}
15223extern "C" {
15224    pub fn g_string_prepend(string: *mut GString, val: *const gchar) -> *mut GString;
15225}
15226extern "C" {
15227    pub fn g_string_prepend_c(string: *mut GString, c: gchar) -> *mut GString;
15228}
15229extern "C" {
15230    pub fn g_string_prepend_unichar(string: *mut GString, wc: gunichar) -> *mut GString;
15231}
15232extern "C" {
15233    pub fn g_string_prepend_len(
15234        string: *mut GString,
15235        val: *const gchar,
15236        len: gssize,
15237    ) -> *mut GString;
15238}
15239extern "C" {
15240    pub fn g_string_insert(string: *mut GString, pos: gssize, val: *const gchar) -> *mut GString;
15241}
15242extern "C" {
15243    pub fn g_string_insert_c(string: *mut GString, pos: gssize, c: gchar) -> *mut GString;
15244}
15245extern "C" {
15246    pub fn g_string_insert_unichar(string: *mut GString, pos: gssize, wc: gunichar)
15247        -> *mut GString;
15248}
15249extern "C" {
15250    pub fn g_string_overwrite(string: *mut GString, pos: gsize, val: *const gchar) -> *mut GString;
15251}
15252extern "C" {
15253    pub fn g_string_overwrite_len(
15254        string: *mut GString,
15255        pos: gsize,
15256        val: *const gchar,
15257        len: gssize,
15258    ) -> *mut GString;
15259}
15260extern "C" {
15261    pub fn g_string_erase(string: *mut GString, pos: gssize, len: gssize) -> *mut GString;
15262}
15263extern "C" {
15264    pub fn g_string_ascii_down(string: *mut GString) -> *mut GString;
15265}
15266extern "C" {
15267    pub fn g_string_ascii_up(string: *mut GString) -> *mut GString;
15268}
15269extern "C" {
15270    pub fn g_string_vprintf(string: *mut GString, format: *const gchar, args: *mut __va_list_tag);
15271}
15272extern "C" {
15273    pub fn g_string_printf(string: *mut GString, format: *const gchar, ...);
15274}
15275extern "C" {
15276    pub fn g_string_append_vprintf(
15277        string: *mut GString,
15278        format: *const gchar,
15279        args: *mut __va_list_tag,
15280    );
15281}
15282extern "C" {
15283    pub fn g_string_append_printf(string: *mut GString, format: *const gchar, ...);
15284}
15285extern "C" {
15286    pub fn g_string_append_uri_escaped(
15287        string: *mut GString,
15288        unescaped: *const gchar,
15289        reserved_chars_allowed: *const gchar,
15290        allow_utf8: gboolean,
15291    ) -> *mut GString;
15292}
15293extern "C" {
15294    pub fn g_string_down(string: *mut GString) -> *mut GString;
15295}
15296extern "C" {
15297    pub fn g_string_up(string: *mut GString) -> *mut GString;
15298}
15299pub type GIOChannel = _GIOChannel;
15300pub type GIOFuncs = _GIOFuncs;
15301pub const GIOError_G_IO_ERROR_NONE: GIOError = 0;
15302pub const GIOError_G_IO_ERROR_AGAIN: GIOError = 1;
15303pub const GIOError_G_IO_ERROR_INVAL: GIOError = 2;
15304pub const GIOError_G_IO_ERROR_UNKNOWN: GIOError = 3;
15305pub type GIOError = u32;
15306pub const GIOChannelError_G_IO_CHANNEL_ERROR_FBIG: GIOChannelError = 0;
15307pub const GIOChannelError_G_IO_CHANNEL_ERROR_INVAL: GIOChannelError = 1;
15308pub const GIOChannelError_G_IO_CHANNEL_ERROR_IO: GIOChannelError = 2;
15309pub const GIOChannelError_G_IO_CHANNEL_ERROR_ISDIR: GIOChannelError = 3;
15310pub const GIOChannelError_G_IO_CHANNEL_ERROR_NOSPC: GIOChannelError = 4;
15311pub const GIOChannelError_G_IO_CHANNEL_ERROR_NXIO: GIOChannelError = 5;
15312pub const GIOChannelError_G_IO_CHANNEL_ERROR_OVERFLOW: GIOChannelError = 6;
15313pub const GIOChannelError_G_IO_CHANNEL_ERROR_PIPE: GIOChannelError = 7;
15314pub const GIOChannelError_G_IO_CHANNEL_ERROR_FAILED: GIOChannelError = 8;
15315pub type GIOChannelError = u32;
15316pub const GIOStatus_G_IO_STATUS_ERROR: GIOStatus = 0;
15317pub const GIOStatus_G_IO_STATUS_NORMAL: GIOStatus = 1;
15318pub const GIOStatus_G_IO_STATUS_EOF: GIOStatus = 2;
15319pub const GIOStatus_G_IO_STATUS_AGAIN: GIOStatus = 3;
15320pub type GIOStatus = u32;
15321pub const GSeekType_G_SEEK_CUR: GSeekType = 0;
15322pub const GSeekType_G_SEEK_SET: GSeekType = 1;
15323pub const GSeekType_G_SEEK_END: GSeekType = 2;
15324pub type GSeekType = u32;
15325pub const GIOFlags_G_IO_FLAG_APPEND: GIOFlags = 1;
15326pub const GIOFlags_G_IO_FLAG_NONBLOCK: GIOFlags = 2;
15327pub const GIOFlags_G_IO_FLAG_IS_READABLE: GIOFlags = 4;
15328pub const GIOFlags_G_IO_FLAG_IS_WRITABLE: GIOFlags = 8;
15329pub const GIOFlags_G_IO_FLAG_IS_WRITEABLE: GIOFlags = 8;
15330pub const GIOFlags_G_IO_FLAG_IS_SEEKABLE: GIOFlags = 16;
15331pub const GIOFlags_G_IO_FLAG_MASK: GIOFlags = 31;
15332pub const GIOFlags_G_IO_FLAG_GET_MASK: GIOFlags = 31;
15333pub const GIOFlags_G_IO_FLAG_SET_MASK: GIOFlags = 3;
15334pub type GIOFlags = u32;
15335#[repr(C)]
15336#[derive(Debug, Copy, Clone)]
15337pub struct _GIOChannel {
15338    pub ref_count: gint,
15339    pub funcs: *mut GIOFuncs,
15340    pub encoding: *mut gchar,
15341    pub read_cd: GIConv,
15342    pub write_cd: GIConv,
15343    pub line_term: *mut gchar,
15344    pub line_term_len: guint,
15345    pub buf_size: gsize,
15346    pub read_buf: *mut GString,
15347    pub encoded_read_buf: *mut GString,
15348    pub write_buf: *mut GString,
15349    pub partial_write_buf: [gchar; 6usize],
15350    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize], u8>,
15351    pub reserved1: gpointer,
15352    pub reserved2: gpointer,
15353}
15354#[test]
15355fn bindgen_test_layout__GIOChannel() {
15356    assert_eq!(
15357        ::std::mem::size_of::<_GIOChannel>(),
15358        112usize,
15359        concat!("Size of: ", stringify!(_GIOChannel))
15360    );
15361    assert_eq!(
15362        ::std::mem::align_of::<_GIOChannel>(),
15363        8usize,
15364        concat!("Alignment of ", stringify!(_GIOChannel))
15365    );
15366    assert_eq!(
15367        unsafe { &(*(::std::ptr::null::<_GIOChannel>())).ref_count as *const _ as usize },
15368        0usize,
15369        concat!(
15370            "Offset of field: ",
15371            stringify!(_GIOChannel),
15372            "::",
15373            stringify!(ref_count)
15374        )
15375    );
15376    assert_eq!(
15377        unsafe { &(*(::std::ptr::null::<_GIOChannel>())).funcs as *const _ as usize },
15378        8usize,
15379        concat!(
15380            "Offset of field: ",
15381            stringify!(_GIOChannel),
15382            "::",
15383            stringify!(funcs)
15384        )
15385    );
15386    assert_eq!(
15387        unsafe { &(*(::std::ptr::null::<_GIOChannel>())).encoding as *const _ as usize },
15388        16usize,
15389        concat!(
15390            "Offset of field: ",
15391            stringify!(_GIOChannel),
15392            "::",
15393            stringify!(encoding)
15394        )
15395    );
15396    assert_eq!(
15397        unsafe { &(*(::std::ptr::null::<_GIOChannel>())).read_cd as *const _ as usize },
15398        24usize,
15399        concat!(
15400            "Offset of field: ",
15401            stringify!(_GIOChannel),
15402            "::",
15403            stringify!(read_cd)
15404        )
15405    );
15406    assert_eq!(
15407        unsafe { &(*(::std::ptr::null::<_GIOChannel>())).write_cd as *const _ as usize },
15408        32usize,
15409        concat!(
15410            "Offset of field: ",
15411            stringify!(_GIOChannel),
15412            "::",
15413            stringify!(write_cd)
15414        )
15415    );
15416    assert_eq!(
15417        unsafe { &(*(::std::ptr::null::<_GIOChannel>())).line_term as *const _ as usize },
15418        40usize,
15419        concat!(
15420            "Offset of field: ",
15421            stringify!(_GIOChannel),
15422            "::",
15423            stringify!(line_term)
15424        )
15425    );
15426    assert_eq!(
15427        unsafe { &(*(::std::ptr::null::<_GIOChannel>())).line_term_len as *const _ as usize },
15428        48usize,
15429        concat!(
15430            "Offset of field: ",
15431            stringify!(_GIOChannel),
15432            "::",
15433            stringify!(line_term_len)
15434        )
15435    );
15436    assert_eq!(
15437        unsafe { &(*(::std::ptr::null::<_GIOChannel>())).buf_size as *const _ as usize },
15438        56usize,
15439        concat!(
15440            "Offset of field: ",
15441            stringify!(_GIOChannel),
15442            "::",
15443            stringify!(buf_size)
15444        )
15445    );
15446    assert_eq!(
15447        unsafe { &(*(::std::ptr::null::<_GIOChannel>())).read_buf as *const _ as usize },
15448        64usize,
15449        concat!(
15450            "Offset of field: ",
15451            stringify!(_GIOChannel),
15452            "::",
15453            stringify!(read_buf)
15454        )
15455    );
15456    assert_eq!(
15457        unsafe { &(*(::std::ptr::null::<_GIOChannel>())).encoded_read_buf as *const _ as usize },
15458        72usize,
15459        concat!(
15460            "Offset of field: ",
15461            stringify!(_GIOChannel),
15462            "::",
15463            stringify!(encoded_read_buf)
15464        )
15465    );
15466    assert_eq!(
15467        unsafe { &(*(::std::ptr::null::<_GIOChannel>())).write_buf as *const _ as usize },
15468        80usize,
15469        concat!(
15470            "Offset of field: ",
15471            stringify!(_GIOChannel),
15472            "::",
15473            stringify!(write_buf)
15474        )
15475    );
15476    assert_eq!(
15477        unsafe { &(*(::std::ptr::null::<_GIOChannel>())).partial_write_buf as *const _ as usize },
15478        88usize,
15479        concat!(
15480            "Offset of field: ",
15481            stringify!(_GIOChannel),
15482            "::",
15483            stringify!(partial_write_buf)
15484        )
15485    );
15486    assert_eq!(
15487        unsafe { &(*(::std::ptr::null::<_GIOChannel>())).reserved1 as *const _ as usize },
15488        96usize,
15489        concat!(
15490            "Offset of field: ",
15491            stringify!(_GIOChannel),
15492            "::",
15493            stringify!(reserved1)
15494        )
15495    );
15496    assert_eq!(
15497        unsafe { &(*(::std::ptr::null::<_GIOChannel>())).reserved2 as *const _ as usize },
15498        104usize,
15499        concat!(
15500            "Offset of field: ",
15501            stringify!(_GIOChannel),
15502            "::",
15503            stringify!(reserved2)
15504        )
15505    );
15506}
15507impl _GIOChannel {
15508    #[inline]
15509    pub fn use_buffer(&self) -> guint {
15510        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
15511    }
15512    #[inline]
15513    pub fn set_use_buffer(&mut self, val: guint) {
15514        unsafe {
15515            let val: u32 = ::std::mem::transmute(val);
15516            self._bitfield_1.set(0usize, 1u8, val as u64)
15517        }
15518    }
15519    #[inline]
15520    pub fn do_encode(&self) -> guint {
15521        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
15522    }
15523    #[inline]
15524    pub fn set_do_encode(&mut self, val: guint) {
15525        unsafe {
15526            let val: u32 = ::std::mem::transmute(val);
15527            self._bitfield_1.set(1usize, 1u8, val as u64)
15528        }
15529    }
15530    #[inline]
15531    pub fn close_on_unref(&self) -> guint {
15532        unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
15533    }
15534    #[inline]
15535    pub fn set_close_on_unref(&mut self, val: guint) {
15536        unsafe {
15537            let val: u32 = ::std::mem::transmute(val);
15538            self._bitfield_1.set(2usize, 1u8, val as u64)
15539        }
15540    }
15541    #[inline]
15542    pub fn is_readable(&self) -> guint {
15543        unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
15544    }
15545    #[inline]
15546    pub fn set_is_readable(&mut self, val: guint) {
15547        unsafe {
15548            let val: u32 = ::std::mem::transmute(val);
15549            self._bitfield_1.set(3usize, 1u8, val as u64)
15550        }
15551    }
15552    #[inline]
15553    pub fn is_writeable(&self) -> guint {
15554        unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) }
15555    }
15556    #[inline]
15557    pub fn set_is_writeable(&mut self, val: guint) {
15558        unsafe {
15559            let val: u32 = ::std::mem::transmute(val);
15560            self._bitfield_1.set(4usize, 1u8, val as u64)
15561        }
15562    }
15563    #[inline]
15564    pub fn is_seekable(&self) -> guint {
15565        unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) }
15566    }
15567    #[inline]
15568    pub fn set_is_seekable(&mut self, val: guint) {
15569        unsafe {
15570            let val: u32 = ::std::mem::transmute(val);
15571            self._bitfield_1.set(5usize, 1u8, val as u64)
15572        }
15573    }
15574    #[inline]
15575    pub fn new_bitfield_1(
15576        use_buffer: guint,
15577        do_encode: guint,
15578        close_on_unref: guint,
15579        is_readable: guint,
15580        is_writeable: guint,
15581        is_seekable: guint,
15582    ) -> __BindgenBitfieldUnit<[u8; 1usize], u8> {
15583        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize], u8> =
15584            Default::default();
15585        __bindgen_bitfield_unit.set(0usize, 1u8, {
15586            let use_buffer: u32 = unsafe { ::std::mem::transmute(use_buffer) };
15587            use_buffer as u64
15588        });
15589        __bindgen_bitfield_unit.set(1usize, 1u8, {
15590            let do_encode: u32 = unsafe { ::std::mem::transmute(do_encode) };
15591            do_encode as u64
15592        });
15593        __bindgen_bitfield_unit.set(2usize, 1u8, {
15594            let close_on_unref: u32 = unsafe { ::std::mem::transmute(close_on_unref) };
15595            close_on_unref as u64
15596        });
15597        __bindgen_bitfield_unit.set(3usize, 1u8, {
15598            let is_readable: u32 = unsafe { ::std::mem::transmute(is_readable) };
15599            is_readable as u64
15600        });
15601        __bindgen_bitfield_unit.set(4usize, 1u8, {
15602            let is_writeable: u32 = unsafe { ::std::mem::transmute(is_writeable) };
15603            is_writeable as u64
15604        });
15605        __bindgen_bitfield_unit.set(5usize, 1u8, {
15606            let is_seekable: u32 = unsafe { ::std::mem::transmute(is_seekable) };
15607            is_seekable as u64
15608        });
15609        __bindgen_bitfield_unit
15610    }
15611}
15612pub type GIOFunc = ::std::option::Option<
15613    unsafe extern "C" fn(
15614        source: *mut GIOChannel,
15615        condition: GIOCondition,
15616        data: gpointer,
15617    ) -> gboolean,
15618>;
15619#[repr(C)]
15620#[derive(Debug, Copy, Clone)]
15621pub struct _GIOFuncs {
15622    pub io_read: ::std::option::Option<
15623        unsafe extern "C" fn(
15624            channel: *mut GIOChannel,
15625            buf: *mut gchar,
15626            count: gsize,
15627            bytes_read: *mut gsize,
15628            err: *mut *mut GError,
15629        ) -> GIOStatus,
15630    >,
15631    pub io_write: ::std::option::Option<
15632        unsafe extern "C" fn(
15633            channel: *mut GIOChannel,
15634            buf: *const gchar,
15635            count: gsize,
15636            bytes_written: *mut gsize,
15637            err: *mut *mut GError,
15638        ) -> GIOStatus,
15639    >,
15640    pub io_seek: ::std::option::Option<
15641        unsafe extern "C" fn(
15642            channel: *mut GIOChannel,
15643            offset: gint64,
15644            type_: GSeekType,
15645            err: *mut *mut GError,
15646        ) -> GIOStatus,
15647    >,
15648    pub io_close: ::std::option::Option<
15649        unsafe extern "C" fn(channel: *mut GIOChannel, err: *mut *mut GError) -> GIOStatus,
15650    >,
15651    pub io_create_watch: ::std::option::Option<
15652        unsafe extern "C" fn(channel: *mut GIOChannel, condition: GIOCondition) -> *mut GSource,
15653    >,
15654    pub io_free: ::std::option::Option<unsafe extern "C" fn(channel: *mut GIOChannel)>,
15655    pub io_set_flags: ::std::option::Option<
15656        unsafe extern "C" fn(
15657            channel: *mut GIOChannel,
15658            flags: GIOFlags,
15659            err: *mut *mut GError,
15660        ) -> GIOStatus,
15661    >,
15662    pub io_get_flags:
15663        ::std::option::Option<unsafe extern "C" fn(channel: *mut GIOChannel) -> GIOFlags>,
15664}
15665#[test]
15666fn bindgen_test_layout__GIOFuncs() {
15667    assert_eq!(
15668        ::std::mem::size_of::<_GIOFuncs>(),
15669        64usize,
15670        concat!("Size of: ", stringify!(_GIOFuncs))
15671    );
15672    assert_eq!(
15673        ::std::mem::align_of::<_GIOFuncs>(),
15674        8usize,
15675        concat!("Alignment of ", stringify!(_GIOFuncs))
15676    );
15677    assert_eq!(
15678        unsafe { &(*(::std::ptr::null::<_GIOFuncs>())).io_read as *const _ as usize },
15679        0usize,
15680        concat!(
15681            "Offset of field: ",
15682            stringify!(_GIOFuncs),
15683            "::",
15684            stringify!(io_read)
15685        )
15686    );
15687    assert_eq!(
15688        unsafe { &(*(::std::ptr::null::<_GIOFuncs>())).io_write as *const _ as usize },
15689        8usize,
15690        concat!(
15691            "Offset of field: ",
15692            stringify!(_GIOFuncs),
15693            "::",
15694            stringify!(io_write)
15695        )
15696    );
15697    assert_eq!(
15698        unsafe { &(*(::std::ptr::null::<_GIOFuncs>())).io_seek as *const _ as usize },
15699        16usize,
15700        concat!(
15701            "Offset of field: ",
15702            stringify!(_GIOFuncs),
15703            "::",
15704            stringify!(io_seek)
15705        )
15706    );
15707    assert_eq!(
15708        unsafe { &(*(::std::ptr::null::<_GIOFuncs>())).io_close as *const _ as usize },
15709        24usize,
15710        concat!(
15711            "Offset of field: ",
15712            stringify!(_GIOFuncs),
15713            "::",
15714            stringify!(io_close)
15715        )
15716    );
15717    assert_eq!(
15718        unsafe { &(*(::std::ptr::null::<_GIOFuncs>())).io_create_watch as *const _ as usize },
15719        32usize,
15720        concat!(
15721            "Offset of field: ",
15722            stringify!(_GIOFuncs),
15723            "::",
15724            stringify!(io_create_watch)
15725        )
15726    );
15727    assert_eq!(
15728        unsafe { &(*(::std::ptr::null::<_GIOFuncs>())).io_free as *const _ as usize },
15729        40usize,
15730        concat!(
15731            "Offset of field: ",
15732            stringify!(_GIOFuncs),
15733            "::",
15734            stringify!(io_free)
15735        )
15736    );
15737    assert_eq!(
15738        unsafe { &(*(::std::ptr::null::<_GIOFuncs>())).io_set_flags as *const _ as usize },
15739        48usize,
15740        concat!(
15741            "Offset of field: ",
15742            stringify!(_GIOFuncs),
15743            "::",
15744            stringify!(io_set_flags)
15745        )
15746    );
15747    assert_eq!(
15748        unsafe { &(*(::std::ptr::null::<_GIOFuncs>())).io_get_flags as *const _ as usize },
15749        56usize,
15750        concat!(
15751            "Offset of field: ",
15752            stringify!(_GIOFuncs),
15753            "::",
15754            stringify!(io_get_flags)
15755        )
15756    );
15757}
15758extern "C" {
15759    pub fn g_io_channel_init(channel: *mut GIOChannel);
15760}
15761extern "C" {
15762    pub fn g_io_channel_ref(channel: *mut GIOChannel) -> *mut GIOChannel;
15763}
15764extern "C" {
15765    pub fn g_io_channel_unref(channel: *mut GIOChannel);
15766}
15767extern "C" {
15768    pub fn g_io_channel_read(
15769        channel: *mut GIOChannel,
15770        buf: *mut gchar,
15771        count: gsize,
15772        bytes_read: *mut gsize,
15773    ) -> GIOError;
15774}
15775extern "C" {
15776    pub fn g_io_channel_write(
15777        channel: *mut GIOChannel,
15778        buf: *const gchar,
15779        count: gsize,
15780        bytes_written: *mut gsize,
15781    ) -> GIOError;
15782}
15783extern "C" {
15784    pub fn g_io_channel_seek(
15785        channel: *mut GIOChannel,
15786        offset: gint64,
15787        type_: GSeekType,
15788    ) -> GIOError;
15789}
15790extern "C" {
15791    pub fn g_io_channel_close(channel: *mut GIOChannel);
15792}
15793extern "C" {
15794    pub fn g_io_channel_shutdown(
15795        channel: *mut GIOChannel,
15796        flush: gboolean,
15797        err: *mut *mut GError,
15798    ) -> GIOStatus;
15799}
15800extern "C" {
15801    pub fn g_io_add_watch_full(
15802        channel: *mut GIOChannel,
15803        priority: gint,
15804        condition: GIOCondition,
15805        func: GIOFunc,
15806        user_data: gpointer,
15807        notify: GDestroyNotify,
15808    ) -> guint;
15809}
15810extern "C" {
15811    pub fn g_io_create_watch(channel: *mut GIOChannel, condition: GIOCondition) -> *mut GSource;
15812}
15813extern "C" {
15814    pub fn g_io_add_watch(
15815        channel: *mut GIOChannel,
15816        condition: GIOCondition,
15817        func: GIOFunc,
15818        user_data: gpointer,
15819    ) -> guint;
15820}
15821extern "C" {
15822    pub fn g_io_channel_set_buffer_size(channel: *mut GIOChannel, size: gsize);
15823}
15824extern "C" {
15825    pub fn g_io_channel_get_buffer_size(channel: *mut GIOChannel) -> gsize;
15826}
15827extern "C" {
15828    pub fn g_io_channel_get_buffer_condition(channel: *mut GIOChannel) -> GIOCondition;
15829}
15830extern "C" {
15831    pub fn g_io_channel_set_flags(
15832        channel: *mut GIOChannel,
15833        flags: GIOFlags,
15834        error: *mut *mut GError,
15835    ) -> GIOStatus;
15836}
15837extern "C" {
15838    pub fn g_io_channel_get_flags(channel: *mut GIOChannel) -> GIOFlags;
15839}
15840extern "C" {
15841    pub fn g_io_channel_set_line_term(
15842        channel: *mut GIOChannel,
15843        line_term: *const gchar,
15844        length: gint,
15845    );
15846}
15847extern "C" {
15848    pub fn g_io_channel_get_line_term(channel: *mut GIOChannel, length: *mut gint) -> *const gchar;
15849}
15850extern "C" {
15851    pub fn g_io_channel_set_buffered(channel: *mut GIOChannel, buffered: gboolean);
15852}
15853extern "C" {
15854    pub fn g_io_channel_get_buffered(channel: *mut GIOChannel) -> gboolean;
15855}
15856extern "C" {
15857    pub fn g_io_channel_set_encoding(
15858        channel: *mut GIOChannel,
15859        encoding: *const gchar,
15860        error: *mut *mut GError,
15861    ) -> GIOStatus;
15862}
15863extern "C" {
15864    pub fn g_io_channel_get_encoding(channel: *mut GIOChannel) -> *const gchar;
15865}
15866extern "C" {
15867    pub fn g_io_channel_set_close_on_unref(channel: *mut GIOChannel, do_close: gboolean);
15868}
15869extern "C" {
15870    pub fn g_io_channel_get_close_on_unref(channel: *mut GIOChannel) -> gboolean;
15871}
15872extern "C" {
15873    pub fn g_io_channel_flush(channel: *mut GIOChannel, error: *mut *mut GError) -> GIOStatus;
15874}
15875extern "C" {
15876    pub fn g_io_channel_read_line(
15877        channel: *mut GIOChannel,
15878        str_return: *mut *mut gchar,
15879        length: *mut gsize,
15880        terminator_pos: *mut gsize,
15881        error: *mut *mut GError,
15882    ) -> GIOStatus;
15883}
15884extern "C" {
15885    pub fn g_io_channel_read_line_string(
15886        channel: *mut GIOChannel,
15887        buffer: *mut GString,
15888        terminator_pos: *mut gsize,
15889        error: *mut *mut GError,
15890    ) -> GIOStatus;
15891}
15892extern "C" {
15893    pub fn g_io_channel_read_to_end(
15894        channel: *mut GIOChannel,
15895        str_return: *mut *mut gchar,
15896        length: *mut gsize,
15897        error: *mut *mut GError,
15898    ) -> GIOStatus;
15899}
15900extern "C" {
15901    pub fn g_io_channel_read_chars(
15902        channel: *mut GIOChannel,
15903        buf: *mut gchar,
15904        count: gsize,
15905        bytes_read: *mut gsize,
15906        error: *mut *mut GError,
15907    ) -> GIOStatus;
15908}
15909extern "C" {
15910    pub fn g_io_channel_read_unichar(
15911        channel: *mut GIOChannel,
15912        thechar: *mut gunichar,
15913        error: *mut *mut GError,
15914    ) -> GIOStatus;
15915}
15916extern "C" {
15917    pub fn g_io_channel_write_chars(
15918        channel: *mut GIOChannel,
15919        buf: *const gchar,
15920        count: gssize,
15921        bytes_written: *mut gsize,
15922        error: *mut *mut GError,
15923    ) -> GIOStatus;
15924}
15925extern "C" {
15926    pub fn g_io_channel_write_unichar(
15927        channel: *mut GIOChannel,
15928        thechar: gunichar,
15929        error: *mut *mut GError,
15930    ) -> GIOStatus;
15931}
15932extern "C" {
15933    pub fn g_io_channel_seek_position(
15934        channel: *mut GIOChannel,
15935        offset: gint64,
15936        type_: GSeekType,
15937        error: *mut *mut GError,
15938    ) -> GIOStatus;
15939}
15940extern "C" {
15941    pub fn g_io_channel_new_file(
15942        filename: *const gchar,
15943        mode: *const gchar,
15944        error: *mut *mut GError,
15945    ) -> *mut GIOChannel;
15946}
15947extern "C" {
15948    pub fn g_io_channel_error_quark() -> GQuark;
15949}
15950extern "C" {
15951    pub fn g_io_channel_error_from_errno(en: gint) -> GIOChannelError;
15952}
15953extern "C" {
15954    pub fn g_io_channel_unix_new(fd: ::std::os::raw::c_int) -> *mut GIOChannel;
15955}
15956extern "C" {
15957    pub fn g_io_channel_unix_get_fd(channel: *mut GIOChannel) -> gint;
15958}
15959extern "C" {
15960    pub static mut g_io_watch_funcs: GSourceFuncs;
15961}
15962pub const GKeyFileError_G_KEY_FILE_ERROR_UNKNOWN_ENCODING: GKeyFileError = 0;
15963pub const GKeyFileError_G_KEY_FILE_ERROR_PARSE: GKeyFileError = 1;
15964pub const GKeyFileError_G_KEY_FILE_ERROR_NOT_FOUND: GKeyFileError = 2;
15965pub const GKeyFileError_G_KEY_FILE_ERROR_KEY_NOT_FOUND: GKeyFileError = 3;
15966pub const GKeyFileError_G_KEY_FILE_ERROR_GROUP_NOT_FOUND: GKeyFileError = 4;
15967pub const GKeyFileError_G_KEY_FILE_ERROR_INVALID_VALUE: GKeyFileError = 5;
15968pub type GKeyFileError = u32;
15969extern "C" {
15970    pub fn g_key_file_error_quark() -> GQuark;
15971}
15972#[repr(C)]
15973#[derive(Debug, Copy, Clone)]
15974pub struct _GKeyFile {
15975    _unused: [u8; 0],
15976}
15977pub type GKeyFile = _GKeyFile;
15978pub const GKeyFileFlags_G_KEY_FILE_NONE: GKeyFileFlags = 0;
15979pub const GKeyFileFlags_G_KEY_FILE_KEEP_COMMENTS: GKeyFileFlags = 1;
15980pub const GKeyFileFlags_G_KEY_FILE_KEEP_TRANSLATIONS: GKeyFileFlags = 2;
15981pub type GKeyFileFlags = u32;
15982extern "C" {
15983    pub fn g_key_file_new() -> *mut GKeyFile;
15984}
15985extern "C" {
15986    pub fn g_key_file_ref(key_file: *mut GKeyFile) -> *mut GKeyFile;
15987}
15988extern "C" {
15989    pub fn g_key_file_unref(key_file: *mut GKeyFile);
15990}
15991extern "C" {
15992    pub fn g_key_file_free(key_file: *mut GKeyFile);
15993}
15994extern "C" {
15995    pub fn g_key_file_set_list_separator(key_file: *mut GKeyFile, separator: gchar);
15996}
15997extern "C" {
15998    pub fn g_key_file_load_from_file(
15999        key_file: *mut GKeyFile,
16000        file: *const gchar,
16001        flags: GKeyFileFlags,
16002        error: *mut *mut GError,
16003    ) -> gboolean;
16004}
16005extern "C" {
16006    pub fn g_key_file_load_from_data(
16007        key_file: *mut GKeyFile,
16008        data: *const gchar,
16009        length: gsize,
16010        flags: GKeyFileFlags,
16011        error: *mut *mut GError,
16012    ) -> gboolean;
16013}
16014extern "C" {
16015    pub fn g_key_file_load_from_bytes(
16016        key_file: *mut GKeyFile,
16017        bytes: *mut GBytes,
16018        flags: GKeyFileFlags,
16019        error: *mut *mut GError,
16020    ) -> gboolean;
16021}
16022extern "C" {
16023    pub fn g_key_file_load_from_dirs(
16024        key_file: *mut GKeyFile,
16025        file: *const gchar,
16026        search_dirs: *mut *const gchar,
16027        full_path: *mut *mut gchar,
16028        flags: GKeyFileFlags,
16029        error: *mut *mut GError,
16030    ) -> gboolean;
16031}
16032extern "C" {
16033    pub fn g_key_file_load_from_data_dirs(
16034        key_file: *mut GKeyFile,
16035        file: *const gchar,
16036        full_path: *mut *mut gchar,
16037        flags: GKeyFileFlags,
16038        error: *mut *mut GError,
16039    ) -> gboolean;
16040}
16041extern "C" {
16042    pub fn g_key_file_to_data(
16043        key_file: *mut GKeyFile,
16044        length: *mut gsize,
16045        error: *mut *mut GError,
16046    ) -> *mut gchar;
16047}
16048extern "C" {
16049    pub fn g_key_file_save_to_file(
16050        key_file: *mut GKeyFile,
16051        filename: *const gchar,
16052        error: *mut *mut GError,
16053    ) -> gboolean;
16054}
16055extern "C" {
16056    pub fn g_key_file_get_start_group(key_file: *mut GKeyFile) -> *mut gchar;
16057}
16058extern "C" {
16059    pub fn g_key_file_get_groups(key_file: *mut GKeyFile, length: *mut gsize) -> *mut *mut gchar;
16060}
16061extern "C" {
16062    pub fn g_key_file_get_keys(
16063        key_file: *mut GKeyFile,
16064        group_name: *const gchar,
16065        length: *mut gsize,
16066        error: *mut *mut GError,
16067    ) -> *mut *mut gchar;
16068}
16069extern "C" {
16070    pub fn g_key_file_has_group(key_file: *mut GKeyFile, group_name: *const gchar) -> gboolean;
16071}
16072extern "C" {
16073    pub fn g_key_file_has_key(
16074        key_file: *mut GKeyFile,
16075        group_name: *const gchar,
16076        key: *const gchar,
16077        error: *mut *mut GError,
16078    ) -> gboolean;
16079}
16080extern "C" {
16081    pub fn g_key_file_get_value(
16082        key_file: *mut GKeyFile,
16083        group_name: *const gchar,
16084        key: *const gchar,
16085        error: *mut *mut GError,
16086    ) -> *mut gchar;
16087}
16088extern "C" {
16089    pub fn g_key_file_set_value(
16090        key_file: *mut GKeyFile,
16091        group_name: *const gchar,
16092        key: *const gchar,
16093        value: *const gchar,
16094    );
16095}
16096extern "C" {
16097    pub fn g_key_file_get_string(
16098        key_file: *mut GKeyFile,
16099        group_name: *const gchar,
16100        key: *const gchar,
16101        error: *mut *mut GError,
16102    ) -> *mut gchar;
16103}
16104extern "C" {
16105    pub fn g_key_file_set_string(
16106        key_file: *mut GKeyFile,
16107        group_name: *const gchar,
16108        key: *const gchar,
16109        string: *const gchar,
16110    );
16111}
16112extern "C" {
16113    pub fn g_key_file_get_locale_string(
16114        key_file: *mut GKeyFile,
16115        group_name: *const gchar,
16116        key: *const gchar,
16117        locale: *const gchar,
16118        error: *mut *mut GError,
16119    ) -> *mut gchar;
16120}
16121extern "C" {
16122    pub fn g_key_file_get_locale_for_key(
16123        key_file: *mut GKeyFile,
16124        group_name: *const gchar,
16125        key: *const gchar,
16126        locale: *const gchar,
16127    ) -> *mut gchar;
16128}
16129extern "C" {
16130    pub fn g_key_file_set_locale_string(
16131        key_file: *mut GKeyFile,
16132        group_name: *const gchar,
16133        key: *const gchar,
16134        locale: *const gchar,
16135        string: *const gchar,
16136    );
16137}
16138extern "C" {
16139    pub fn g_key_file_get_boolean(
16140        key_file: *mut GKeyFile,
16141        group_name: *const gchar,
16142        key: *const gchar,
16143        error: *mut *mut GError,
16144    ) -> gboolean;
16145}
16146extern "C" {
16147    pub fn g_key_file_set_boolean(
16148        key_file: *mut GKeyFile,
16149        group_name: *const gchar,
16150        key: *const gchar,
16151        value: gboolean,
16152    );
16153}
16154extern "C" {
16155    pub fn g_key_file_get_integer(
16156        key_file: *mut GKeyFile,
16157        group_name: *const gchar,
16158        key: *const gchar,
16159        error: *mut *mut GError,
16160    ) -> gint;
16161}
16162extern "C" {
16163    pub fn g_key_file_set_integer(
16164        key_file: *mut GKeyFile,
16165        group_name: *const gchar,
16166        key: *const gchar,
16167        value: gint,
16168    );
16169}
16170extern "C" {
16171    pub fn g_key_file_get_int64(
16172        key_file: *mut GKeyFile,
16173        group_name: *const gchar,
16174        key: *const gchar,
16175        error: *mut *mut GError,
16176    ) -> gint64;
16177}
16178extern "C" {
16179    pub fn g_key_file_set_int64(
16180        key_file: *mut GKeyFile,
16181        group_name: *const gchar,
16182        key: *const gchar,
16183        value: gint64,
16184    );
16185}
16186extern "C" {
16187    pub fn g_key_file_get_uint64(
16188        key_file: *mut GKeyFile,
16189        group_name: *const gchar,
16190        key: *const gchar,
16191        error: *mut *mut GError,
16192    ) -> guint64;
16193}
16194extern "C" {
16195    pub fn g_key_file_set_uint64(
16196        key_file: *mut GKeyFile,
16197        group_name: *const gchar,
16198        key: *const gchar,
16199        value: guint64,
16200    );
16201}
16202extern "C" {
16203    pub fn g_key_file_get_double(
16204        key_file: *mut GKeyFile,
16205        group_name: *const gchar,
16206        key: *const gchar,
16207        error: *mut *mut GError,
16208    ) -> gdouble;
16209}
16210extern "C" {
16211    pub fn g_key_file_set_double(
16212        key_file: *mut GKeyFile,
16213        group_name: *const gchar,
16214        key: *const gchar,
16215        value: gdouble,
16216    );
16217}
16218extern "C" {
16219    pub fn g_key_file_get_string_list(
16220        key_file: *mut GKeyFile,
16221        group_name: *const gchar,
16222        key: *const gchar,
16223        length: *mut gsize,
16224        error: *mut *mut GError,
16225    ) -> *mut *mut gchar;
16226}
16227extern "C" {
16228    pub fn g_key_file_set_string_list(
16229        key_file: *mut GKeyFile,
16230        group_name: *const gchar,
16231        key: *const gchar,
16232        list: *const *const gchar,
16233        length: gsize,
16234    );
16235}
16236extern "C" {
16237    pub fn g_key_file_get_locale_string_list(
16238        key_file: *mut GKeyFile,
16239        group_name: *const gchar,
16240        key: *const gchar,
16241        locale: *const gchar,
16242        length: *mut gsize,
16243        error: *mut *mut GError,
16244    ) -> *mut *mut gchar;
16245}
16246extern "C" {
16247    pub fn g_key_file_set_locale_string_list(
16248        key_file: *mut GKeyFile,
16249        group_name: *const gchar,
16250        key: *const gchar,
16251        locale: *const gchar,
16252        list: *const *const gchar,
16253        length: gsize,
16254    );
16255}
16256extern "C" {
16257    pub fn g_key_file_get_boolean_list(
16258        key_file: *mut GKeyFile,
16259        group_name: *const gchar,
16260        key: *const gchar,
16261        length: *mut gsize,
16262        error: *mut *mut GError,
16263    ) -> *mut gboolean;
16264}
16265extern "C" {
16266    pub fn g_key_file_set_boolean_list(
16267        key_file: *mut GKeyFile,
16268        group_name: *const gchar,
16269        key: *const gchar,
16270        list: *mut gboolean,
16271        length: gsize,
16272    );
16273}
16274extern "C" {
16275    pub fn g_key_file_get_integer_list(
16276        key_file: *mut GKeyFile,
16277        group_name: *const gchar,
16278        key: *const gchar,
16279        length: *mut gsize,
16280        error: *mut *mut GError,
16281    ) -> *mut gint;
16282}
16283extern "C" {
16284    pub fn g_key_file_set_double_list(
16285        key_file: *mut GKeyFile,
16286        group_name: *const gchar,
16287        key: *const gchar,
16288        list: *mut gdouble,
16289        length: gsize,
16290    );
16291}
16292extern "C" {
16293    pub fn g_key_file_get_double_list(
16294        key_file: *mut GKeyFile,
16295        group_name: *const gchar,
16296        key: *const gchar,
16297        length: *mut gsize,
16298        error: *mut *mut GError,
16299    ) -> *mut gdouble;
16300}
16301extern "C" {
16302    pub fn g_key_file_set_integer_list(
16303        key_file: *mut GKeyFile,
16304        group_name: *const gchar,
16305        key: *const gchar,
16306        list: *mut gint,
16307        length: gsize,
16308    );
16309}
16310extern "C" {
16311    pub fn g_key_file_set_comment(
16312        key_file: *mut GKeyFile,
16313        group_name: *const gchar,
16314        key: *const gchar,
16315        comment: *const gchar,
16316        error: *mut *mut GError,
16317    ) -> gboolean;
16318}
16319extern "C" {
16320    pub fn g_key_file_get_comment(
16321        key_file: *mut GKeyFile,
16322        group_name: *const gchar,
16323        key: *const gchar,
16324        error: *mut *mut GError,
16325    ) -> *mut gchar;
16326}
16327extern "C" {
16328    pub fn g_key_file_remove_comment(
16329        key_file: *mut GKeyFile,
16330        group_name: *const gchar,
16331        key: *const gchar,
16332        error: *mut *mut GError,
16333    ) -> gboolean;
16334}
16335extern "C" {
16336    pub fn g_key_file_remove_key(
16337        key_file: *mut GKeyFile,
16338        group_name: *const gchar,
16339        key: *const gchar,
16340        error: *mut *mut GError,
16341    ) -> gboolean;
16342}
16343extern "C" {
16344    pub fn g_key_file_remove_group(
16345        key_file: *mut GKeyFile,
16346        group_name: *const gchar,
16347        error: *mut *mut GError,
16348    ) -> gboolean;
16349}
16350#[repr(C)]
16351#[derive(Debug, Copy, Clone)]
16352pub struct _GMappedFile {
16353    _unused: [u8; 0],
16354}
16355pub type GMappedFile = _GMappedFile;
16356extern "C" {
16357    pub fn g_mapped_file_new(
16358        filename: *const gchar,
16359        writable: gboolean,
16360        error: *mut *mut GError,
16361    ) -> *mut GMappedFile;
16362}
16363extern "C" {
16364    pub fn g_mapped_file_new_from_fd(
16365        fd: gint,
16366        writable: gboolean,
16367        error: *mut *mut GError,
16368    ) -> *mut GMappedFile;
16369}
16370extern "C" {
16371    pub fn g_mapped_file_get_length(file: *mut GMappedFile) -> gsize;
16372}
16373extern "C" {
16374    pub fn g_mapped_file_get_contents(file: *mut GMappedFile) -> *mut gchar;
16375}
16376extern "C" {
16377    pub fn g_mapped_file_get_bytes(file: *mut GMappedFile) -> *mut GBytes;
16378}
16379extern "C" {
16380    pub fn g_mapped_file_ref(file: *mut GMappedFile) -> *mut GMappedFile;
16381}
16382extern "C" {
16383    pub fn g_mapped_file_unref(file: *mut GMappedFile);
16384}
16385extern "C" {
16386    pub fn g_mapped_file_free(file: *mut GMappedFile);
16387}
16388pub const GMarkupError_G_MARKUP_ERROR_BAD_UTF8: GMarkupError = 0;
16389pub const GMarkupError_G_MARKUP_ERROR_EMPTY: GMarkupError = 1;
16390pub const GMarkupError_G_MARKUP_ERROR_PARSE: GMarkupError = 2;
16391pub const GMarkupError_G_MARKUP_ERROR_UNKNOWN_ELEMENT: GMarkupError = 3;
16392pub const GMarkupError_G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE: GMarkupError = 4;
16393pub const GMarkupError_G_MARKUP_ERROR_INVALID_CONTENT: GMarkupError = 5;
16394pub const GMarkupError_G_MARKUP_ERROR_MISSING_ATTRIBUTE: GMarkupError = 6;
16395#[doc = " GMarkupError:"]
16396#[doc = " @G_MARKUP_ERROR_BAD_UTF8: text being parsed was not valid UTF-8"]
16397#[doc = " @G_MARKUP_ERROR_EMPTY: document contained nothing, or only whitespace"]
16398#[doc = " @G_MARKUP_ERROR_PARSE: document was ill-formed"]
16399#[doc = " @G_MARKUP_ERROR_UNKNOWN_ELEMENT: error should be set by #GMarkupParser"]
16400#[doc = "     functions; element wasn't known"]
16401#[doc = " @G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE: error should be set by #GMarkupParser"]
16402#[doc = "     functions; attribute wasn't known"]
16403#[doc = " @G_MARKUP_ERROR_INVALID_CONTENT: error should be set by #GMarkupParser"]
16404#[doc = "     functions; content was invalid"]
16405#[doc = " @G_MARKUP_ERROR_MISSING_ATTRIBUTE: error should be set by #GMarkupParser"]
16406#[doc = "     functions; a required attribute was missing"]
16407#[doc = ""]
16408#[doc = " Error codes returned by markup parsing."]
16409pub type GMarkupError = u32;
16410extern "C" {
16411    pub fn g_markup_error_quark() -> GQuark;
16412}
16413pub const GMarkupParseFlags_G_MARKUP_DO_NOT_USE_THIS_UNSUPPORTED_FLAG: GMarkupParseFlags = 1;
16414pub const GMarkupParseFlags_G_MARKUP_TREAT_CDATA_AS_TEXT: GMarkupParseFlags = 2;
16415pub const GMarkupParseFlags_G_MARKUP_PREFIX_ERROR_POSITION: GMarkupParseFlags = 4;
16416pub const GMarkupParseFlags_G_MARKUP_IGNORE_QUALIFIED: GMarkupParseFlags = 8;
16417#[doc = " GMarkupParseFlags:"]
16418#[doc = " @G_MARKUP_DO_NOT_USE_THIS_UNSUPPORTED_FLAG: flag you should not use"]
16419#[doc = " @G_MARKUP_TREAT_CDATA_AS_TEXT: When this flag is set, CDATA marked"]
16420#[doc = "     sections are not passed literally to the @passthrough function of"]
16421#[doc = "     the parser. Instead, the content of the section (without the"]
16422#[doc = "     `<![CDATA[` and `]]>`) is"]
16423#[doc = "     passed to the @text function. This flag was added in GLib 2.12"]
16424#[doc = " @G_MARKUP_PREFIX_ERROR_POSITION: Normally errors caught by GMarkup"]
16425#[doc = "     itself have line/column information prefixed to them to let the"]
16426#[doc = "     caller know the location of the error. When this flag is set the"]
16427#[doc = "     location information is also prefixed to errors generated by the"]
16428#[doc = "     #GMarkupParser implementation functions"]
16429#[doc = " @G_MARKUP_IGNORE_QUALIFIED: Ignore (don't report) qualified"]
16430#[doc = "     attributes and tags, along with their contents.  A qualified"]
16431#[doc = "     attribute or tag is one that contains ':' in its name (ie: is in"]
16432#[doc = "     another namespace).  Since: 2.40."]
16433#[doc = ""]
16434#[doc = " Flags that affect the behaviour of the parser."]
16435pub type GMarkupParseFlags = u32;
16436#[repr(C)]
16437#[derive(Debug, Copy, Clone)]
16438pub struct _GMarkupParseContext {
16439    _unused: [u8; 0],
16440}
16441#[doc = " GMarkupParseContext:"]
16442#[doc = ""]
16443#[doc = " A parse context is used to parse a stream of bytes that"]
16444#[doc = " you expect to contain marked-up text."]
16445#[doc = ""]
16446#[doc = " See g_markup_parse_context_new(), #GMarkupParser, and so"]
16447#[doc = " on for more details."]
16448pub type GMarkupParseContext = _GMarkupParseContext;
16449pub type GMarkupParser = _GMarkupParser;
16450#[doc = " GMarkupParser:"]
16451#[doc = " @start_element: Callback to invoke when the opening tag of an element"]
16452#[doc = "     is seen. The callback's @attribute_names and @attribute_values parameters"]
16453#[doc = "     are %NULL-terminated."]
16454#[doc = " @end_element: Callback to invoke when the closing tag of an element"]
16455#[doc = "     is seen. Note that this is also called for empty tags like"]
16456#[doc = "     `<empty/>`."]
16457#[doc = " @text: Callback to invoke when some text is seen (text is always"]
16458#[doc = "     inside an element). Note that the text of an element may be spread"]
16459#[doc = "     over multiple calls of this function. If the"]
16460#[doc = "     %G_MARKUP_TREAT_CDATA_AS_TEXT flag is set, this function is also"]
16461#[doc = "     called for the content of CDATA marked sections."]
16462#[doc = " @passthrough: Callback to invoke for comments, processing instructions"]
16463#[doc = "     and doctype declarations; if you're re-writing the parsed document,"]
16464#[doc = "     write the passthrough text back out in the same position. If the"]
16465#[doc = "     %G_MARKUP_TREAT_CDATA_AS_TEXT flag is not set, this function is also"]
16466#[doc = "     called for CDATA marked sections."]
16467#[doc = " @error: Callback to invoke when an error occurs."]
16468#[doc = ""]
16469#[doc = " Any of the fields in #GMarkupParser can be %NULL, in which case they"]
16470#[doc = " will be ignored. Except for the @error function, any of these callbacks"]
16471#[doc = " can set an error; in particular the %G_MARKUP_ERROR_UNKNOWN_ELEMENT,"]
16472#[doc = " %G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE, and %G_MARKUP_ERROR_INVALID_CONTENT"]
16473#[doc = " errors are intended to be set from these callbacks. If you set an error"]
16474#[doc = " from a callback, g_markup_parse_context_parse() will report that error"]
16475#[doc = " back to its caller."]
16476#[repr(C)]
16477#[derive(Debug, Copy, Clone)]
16478pub struct _GMarkupParser {
16479    pub start_element: ::std::option::Option<
16480        unsafe extern "C" fn(
16481            context: *mut GMarkupParseContext,
16482            element_name: *const gchar,
16483            attribute_names: *mut *const gchar,
16484            attribute_values: *mut *const gchar,
16485            user_data: gpointer,
16486            error: *mut *mut GError,
16487        ),
16488    >,
16489    pub end_element: ::std::option::Option<
16490        unsafe extern "C" fn(
16491            context: *mut GMarkupParseContext,
16492            element_name: *const gchar,
16493            user_data: gpointer,
16494            error: *mut *mut GError,
16495        ),
16496    >,
16497    pub text: ::std::option::Option<
16498        unsafe extern "C" fn(
16499            context: *mut GMarkupParseContext,
16500            text: *const gchar,
16501            text_len: gsize,
16502            user_data: gpointer,
16503            error: *mut *mut GError,
16504        ),
16505    >,
16506    pub passthrough: ::std::option::Option<
16507        unsafe extern "C" fn(
16508            context: *mut GMarkupParseContext,
16509            passthrough_text: *const gchar,
16510            text_len: gsize,
16511            user_data: gpointer,
16512            error: *mut *mut GError,
16513        ),
16514    >,
16515    pub error: ::std::option::Option<
16516        unsafe extern "C" fn(
16517            context: *mut GMarkupParseContext,
16518            error: *mut GError,
16519            user_data: gpointer,
16520        ),
16521    >,
16522}
16523#[test]
16524fn bindgen_test_layout__GMarkupParser() {
16525    assert_eq!(
16526        ::std::mem::size_of::<_GMarkupParser>(),
16527        40usize,
16528        concat!("Size of: ", stringify!(_GMarkupParser))
16529    );
16530    assert_eq!(
16531        ::std::mem::align_of::<_GMarkupParser>(),
16532        8usize,
16533        concat!("Alignment of ", stringify!(_GMarkupParser))
16534    );
16535    assert_eq!(
16536        unsafe { &(*(::std::ptr::null::<_GMarkupParser>())).start_element as *const _ as usize },
16537        0usize,
16538        concat!(
16539            "Offset of field: ",
16540            stringify!(_GMarkupParser),
16541            "::",
16542            stringify!(start_element)
16543        )
16544    );
16545    assert_eq!(
16546        unsafe { &(*(::std::ptr::null::<_GMarkupParser>())).end_element as *const _ as usize },
16547        8usize,
16548        concat!(
16549            "Offset of field: ",
16550            stringify!(_GMarkupParser),
16551            "::",
16552            stringify!(end_element)
16553        )
16554    );
16555    assert_eq!(
16556        unsafe { &(*(::std::ptr::null::<_GMarkupParser>())).text as *const _ as usize },
16557        16usize,
16558        concat!(
16559            "Offset of field: ",
16560            stringify!(_GMarkupParser),
16561            "::",
16562            stringify!(text)
16563        )
16564    );
16565    assert_eq!(
16566        unsafe { &(*(::std::ptr::null::<_GMarkupParser>())).passthrough as *const _ as usize },
16567        24usize,
16568        concat!(
16569            "Offset of field: ",
16570            stringify!(_GMarkupParser),
16571            "::",
16572            stringify!(passthrough)
16573        )
16574    );
16575    assert_eq!(
16576        unsafe { &(*(::std::ptr::null::<_GMarkupParser>())).error as *const _ as usize },
16577        32usize,
16578        concat!(
16579            "Offset of field: ",
16580            stringify!(_GMarkupParser),
16581            "::",
16582            stringify!(error)
16583        )
16584    );
16585}
16586extern "C" {
16587    pub fn g_markup_parse_context_new(
16588        parser: *const GMarkupParser,
16589        flags: GMarkupParseFlags,
16590        user_data: gpointer,
16591        user_data_dnotify: GDestroyNotify,
16592    ) -> *mut GMarkupParseContext;
16593}
16594extern "C" {
16595    pub fn g_markup_parse_context_ref(
16596        context: *mut GMarkupParseContext,
16597    ) -> *mut GMarkupParseContext;
16598}
16599extern "C" {
16600    pub fn g_markup_parse_context_unref(context: *mut GMarkupParseContext);
16601}
16602extern "C" {
16603    pub fn g_markup_parse_context_free(context: *mut GMarkupParseContext);
16604}
16605extern "C" {
16606    pub fn g_markup_parse_context_parse(
16607        context: *mut GMarkupParseContext,
16608        text: *const gchar,
16609        text_len: gssize,
16610        error: *mut *mut GError,
16611    ) -> gboolean;
16612}
16613extern "C" {
16614    pub fn g_markup_parse_context_push(
16615        context: *mut GMarkupParseContext,
16616        parser: *const GMarkupParser,
16617        user_data: gpointer,
16618    );
16619}
16620extern "C" {
16621    pub fn g_markup_parse_context_pop(context: *mut GMarkupParseContext) -> gpointer;
16622}
16623extern "C" {
16624    pub fn g_markup_parse_context_end_parse(
16625        context: *mut GMarkupParseContext,
16626        error: *mut *mut GError,
16627    ) -> gboolean;
16628}
16629extern "C" {
16630    pub fn g_markup_parse_context_get_element(context: *mut GMarkupParseContext) -> *const gchar;
16631}
16632extern "C" {
16633    pub fn g_markup_parse_context_get_element_stack(
16634        context: *mut GMarkupParseContext,
16635    ) -> *const GSList;
16636}
16637extern "C" {
16638    pub fn g_markup_parse_context_get_position(
16639        context: *mut GMarkupParseContext,
16640        line_number: *mut gint,
16641        char_number: *mut gint,
16642    );
16643}
16644extern "C" {
16645    pub fn g_markup_parse_context_get_user_data(context: *mut GMarkupParseContext) -> gpointer;
16646}
16647extern "C" {
16648    pub fn g_markup_escape_text(text: *const gchar, length: gssize) -> *mut gchar;
16649}
16650extern "C" {
16651    pub fn g_markup_printf_escaped(format: *const ::std::os::raw::c_char, ...) -> *mut gchar;
16652}
16653extern "C" {
16654    pub fn g_markup_vprintf_escaped(
16655        format: *const ::std::os::raw::c_char,
16656        args: *mut __va_list_tag,
16657    ) -> *mut gchar;
16658}
16659pub const GMarkupCollectType_G_MARKUP_COLLECT_INVALID: GMarkupCollectType = 0;
16660pub const GMarkupCollectType_G_MARKUP_COLLECT_STRING: GMarkupCollectType = 1;
16661pub const GMarkupCollectType_G_MARKUP_COLLECT_STRDUP: GMarkupCollectType = 2;
16662pub const GMarkupCollectType_G_MARKUP_COLLECT_BOOLEAN: GMarkupCollectType = 3;
16663pub const GMarkupCollectType_G_MARKUP_COLLECT_TRISTATE: GMarkupCollectType = 4;
16664pub const GMarkupCollectType_G_MARKUP_COLLECT_OPTIONAL: GMarkupCollectType = 65536;
16665pub type GMarkupCollectType = u32;
16666extern "C" {
16667    pub fn g_markup_collect_attributes(
16668        element_name: *const gchar,
16669        attribute_names: *mut *const gchar,
16670        attribute_values: *mut *const gchar,
16671        error: *mut *mut GError,
16672        first_type: GMarkupCollectType,
16673        first_attr: *const gchar,
16674        ...
16675    ) -> gboolean;
16676}
16677#[repr(C)]
16678#[derive(Debug, Copy, Clone)]
16679pub struct _GVariantType {
16680    _unused: [u8; 0],
16681}
16682#[doc = " GVariantType:"]
16683#[doc = ""]
16684#[doc = " A type in the GVariant type system."]
16685#[doc = ""]
16686#[doc = " Two types may not be compared by value; use g_variant_type_equal() or"]
16687#[doc = " g_variant_type_is_subtype_of().  May be copied using"]
16688#[doc = " g_variant_type_copy() and freed using g_variant_type_free()."]
16689pub type GVariantType = _GVariantType;
16690extern "C" {
16691    pub fn g_variant_type_string_is_valid(type_string: *const gchar) -> gboolean;
16692}
16693extern "C" {
16694    pub fn g_variant_type_string_scan(
16695        string: *const gchar,
16696        limit: *const gchar,
16697        endptr: *mut *const gchar,
16698    ) -> gboolean;
16699}
16700extern "C" {
16701    pub fn g_variant_type_free(type_: *mut GVariantType);
16702}
16703extern "C" {
16704    pub fn g_variant_type_copy(type_: *const GVariantType) -> *mut GVariantType;
16705}
16706extern "C" {
16707    pub fn g_variant_type_new(type_string: *const gchar) -> *mut GVariantType;
16708}
16709extern "C" {
16710    pub fn g_variant_type_get_string_length(type_: *const GVariantType) -> gsize;
16711}
16712extern "C" {
16713    pub fn g_variant_type_peek_string(type_: *const GVariantType) -> *const gchar;
16714}
16715extern "C" {
16716    pub fn g_variant_type_dup_string(type_: *const GVariantType) -> *mut gchar;
16717}
16718extern "C" {
16719    pub fn g_variant_type_is_definite(type_: *const GVariantType) -> gboolean;
16720}
16721extern "C" {
16722    pub fn g_variant_type_is_container(type_: *const GVariantType) -> gboolean;
16723}
16724extern "C" {
16725    pub fn g_variant_type_is_basic(type_: *const GVariantType) -> gboolean;
16726}
16727extern "C" {
16728    pub fn g_variant_type_is_maybe(type_: *const GVariantType) -> gboolean;
16729}
16730extern "C" {
16731    pub fn g_variant_type_is_array(type_: *const GVariantType) -> gboolean;
16732}
16733extern "C" {
16734    pub fn g_variant_type_is_tuple(type_: *const GVariantType) -> gboolean;
16735}
16736extern "C" {
16737    pub fn g_variant_type_is_dict_entry(type_: *const GVariantType) -> gboolean;
16738}
16739extern "C" {
16740    pub fn g_variant_type_is_variant(type_: *const GVariantType) -> gboolean;
16741}
16742extern "C" {
16743    pub fn g_variant_type_hash(type_: gconstpointer) -> guint;
16744}
16745extern "C" {
16746    pub fn g_variant_type_equal(type1: gconstpointer, type2: gconstpointer) -> gboolean;
16747}
16748extern "C" {
16749    pub fn g_variant_type_is_subtype_of(
16750        type_: *const GVariantType,
16751        supertype: *const GVariantType,
16752    ) -> gboolean;
16753}
16754extern "C" {
16755    pub fn g_variant_type_element(type_: *const GVariantType) -> *const GVariantType;
16756}
16757extern "C" {
16758    pub fn g_variant_type_first(type_: *const GVariantType) -> *const GVariantType;
16759}
16760extern "C" {
16761    pub fn g_variant_type_next(type_: *const GVariantType) -> *const GVariantType;
16762}
16763extern "C" {
16764    pub fn g_variant_type_n_items(type_: *const GVariantType) -> gsize;
16765}
16766extern "C" {
16767    pub fn g_variant_type_key(type_: *const GVariantType) -> *const GVariantType;
16768}
16769extern "C" {
16770    pub fn g_variant_type_value(type_: *const GVariantType) -> *const GVariantType;
16771}
16772extern "C" {
16773    pub fn g_variant_type_new_array(element: *const GVariantType) -> *mut GVariantType;
16774}
16775extern "C" {
16776    pub fn g_variant_type_new_maybe(element: *const GVariantType) -> *mut GVariantType;
16777}
16778extern "C" {
16779    pub fn g_variant_type_new_tuple(
16780        items: *const *const GVariantType,
16781        length: gint,
16782    ) -> *mut GVariantType;
16783}
16784extern "C" {
16785    pub fn g_variant_type_new_dict_entry(
16786        key: *const GVariantType,
16787        value: *const GVariantType,
16788    ) -> *mut GVariantType;
16789}
16790extern "C" {
16791    pub fn g_variant_type_checked_(arg1: *const gchar) -> *const GVariantType;
16792}
16793extern "C" {
16794    pub fn g_variant_type_string_get_depth_(type_string: *const gchar) -> gsize;
16795}
16796#[repr(C)]
16797#[derive(Debug, Copy, Clone)]
16798pub struct _GVariant {
16799    _unused: [u8; 0],
16800}
16801pub type GVariant = _GVariant;
16802pub const GVariantClass_G_VARIANT_CLASS_BOOLEAN: GVariantClass = 98;
16803pub const GVariantClass_G_VARIANT_CLASS_BYTE: GVariantClass = 121;
16804pub const GVariantClass_G_VARIANT_CLASS_INT16: GVariantClass = 110;
16805pub const GVariantClass_G_VARIANT_CLASS_UINT16: GVariantClass = 113;
16806pub const GVariantClass_G_VARIANT_CLASS_INT32: GVariantClass = 105;
16807pub const GVariantClass_G_VARIANT_CLASS_UINT32: GVariantClass = 117;
16808pub const GVariantClass_G_VARIANT_CLASS_INT64: GVariantClass = 120;
16809pub const GVariantClass_G_VARIANT_CLASS_UINT64: GVariantClass = 116;
16810pub const GVariantClass_G_VARIANT_CLASS_HANDLE: GVariantClass = 104;
16811pub const GVariantClass_G_VARIANT_CLASS_DOUBLE: GVariantClass = 100;
16812pub const GVariantClass_G_VARIANT_CLASS_STRING: GVariantClass = 115;
16813pub const GVariantClass_G_VARIANT_CLASS_OBJECT_PATH: GVariantClass = 111;
16814pub const GVariantClass_G_VARIANT_CLASS_SIGNATURE: GVariantClass = 103;
16815pub const GVariantClass_G_VARIANT_CLASS_VARIANT: GVariantClass = 118;
16816pub const GVariantClass_G_VARIANT_CLASS_MAYBE: GVariantClass = 109;
16817pub const GVariantClass_G_VARIANT_CLASS_ARRAY: GVariantClass = 97;
16818pub const GVariantClass_G_VARIANT_CLASS_TUPLE: GVariantClass = 40;
16819pub const GVariantClass_G_VARIANT_CLASS_DICT_ENTRY: GVariantClass = 123;
16820pub type GVariantClass = u32;
16821extern "C" {
16822    pub fn g_variant_unref(value: *mut GVariant);
16823}
16824extern "C" {
16825    pub fn g_variant_ref(value: *mut GVariant) -> *mut GVariant;
16826}
16827extern "C" {
16828    pub fn g_variant_ref_sink(value: *mut GVariant) -> *mut GVariant;
16829}
16830extern "C" {
16831    pub fn g_variant_is_floating(value: *mut GVariant) -> gboolean;
16832}
16833extern "C" {
16834    pub fn g_variant_take_ref(value: *mut GVariant) -> *mut GVariant;
16835}
16836extern "C" {
16837    pub fn g_variant_get_type(value: *mut GVariant) -> *const GVariantType;
16838}
16839extern "C" {
16840    pub fn g_variant_get_type_string(value: *mut GVariant) -> *const gchar;
16841}
16842extern "C" {
16843    pub fn g_variant_is_of_type(value: *mut GVariant, type_: *const GVariantType) -> gboolean;
16844}
16845extern "C" {
16846    pub fn g_variant_is_container(value: *mut GVariant) -> gboolean;
16847}
16848extern "C" {
16849    pub fn g_variant_classify(value: *mut GVariant) -> GVariantClass;
16850}
16851extern "C" {
16852    pub fn g_variant_new_boolean(value: gboolean) -> *mut GVariant;
16853}
16854extern "C" {
16855    pub fn g_variant_new_byte(value: guchar) -> *mut GVariant;
16856}
16857extern "C" {
16858    pub fn g_variant_new_int16(value: gint16) -> *mut GVariant;
16859}
16860extern "C" {
16861    pub fn g_variant_new_uint16(value: guint16) -> *mut GVariant;
16862}
16863extern "C" {
16864    pub fn g_variant_new_int32(value: gint32) -> *mut GVariant;
16865}
16866extern "C" {
16867    pub fn g_variant_new_uint32(value: guint32) -> *mut GVariant;
16868}
16869extern "C" {
16870    pub fn g_variant_new_int64(value: gint64) -> *mut GVariant;
16871}
16872extern "C" {
16873    pub fn g_variant_new_uint64(value: guint64) -> *mut GVariant;
16874}
16875extern "C" {
16876    pub fn g_variant_new_handle(value: gint32) -> *mut GVariant;
16877}
16878extern "C" {
16879    pub fn g_variant_new_double(value: gdouble) -> *mut GVariant;
16880}
16881extern "C" {
16882    pub fn g_variant_new_string(string: *const gchar) -> *mut GVariant;
16883}
16884extern "C" {
16885    pub fn g_variant_new_take_string(string: *mut gchar) -> *mut GVariant;
16886}
16887extern "C" {
16888    pub fn g_variant_new_printf(format_string: *const gchar, ...) -> *mut GVariant;
16889}
16890extern "C" {
16891    pub fn g_variant_new_object_path(object_path: *const gchar) -> *mut GVariant;
16892}
16893extern "C" {
16894    pub fn g_variant_is_object_path(string: *const gchar) -> gboolean;
16895}
16896extern "C" {
16897    pub fn g_variant_new_signature(signature: *const gchar) -> *mut GVariant;
16898}
16899extern "C" {
16900    pub fn g_variant_is_signature(string: *const gchar) -> gboolean;
16901}
16902extern "C" {
16903    pub fn g_variant_new_variant(value: *mut GVariant) -> *mut GVariant;
16904}
16905extern "C" {
16906    pub fn g_variant_new_strv(strv: *const *const gchar, length: gssize) -> *mut GVariant;
16907}
16908extern "C" {
16909    pub fn g_variant_new_objv(strv: *const *const gchar, length: gssize) -> *mut GVariant;
16910}
16911extern "C" {
16912    pub fn g_variant_new_bytestring(string: *const gchar) -> *mut GVariant;
16913}
16914extern "C" {
16915    pub fn g_variant_new_bytestring_array(
16916        strv: *const *const gchar,
16917        length: gssize,
16918    ) -> *mut GVariant;
16919}
16920extern "C" {
16921    pub fn g_variant_new_fixed_array(
16922        element_type: *const GVariantType,
16923        elements: gconstpointer,
16924        n_elements: gsize,
16925        element_size: gsize,
16926    ) -> *mut GVariant;
16927}
16928extern "C" {
16929    pub fn g_variant_get_boolean(value: *mut GVariant) -> gboolean;
16930}
16931extern "C" {
16932    pub fn g_variant_get_byte(value: *mut GVariant) -> guchar;
16933}
16934extern "C" {
16935    pub fn g_variant_get_int16(value: *mut GVariant) -> gint16;
16936}
16937extern "C" {
16938    pub fn g_variant_get_uint16(value: *mut GVariant) -> guint16;
16939}
16940extern "C" {
16941    pub fn g_variant_get_int32(value: *mut GVariant) -> gint32;
16942}
16943extern "C" {
16944    pub fn g_variant_get_uint32(value: *mut GVariant) -> guint32;
16945}
16946extern "C" {
16947    pub fn g_variant_get_int64(value: *mut GVariant) -> gint64;
16948}
16949extern "C" {
16950    pub fn g_variant_get_uint64(value: *mut GVariant) -> guint64;
16951}
16952extern "C" {
16953    pub fn g_variant_get_handle(value: *mut GVariant) -> gint32;
16954}
16955extern "C" {
16956    pub fn g_variant_get_double(value: *mut GVariant) -> gdouble;
16957}
16958extern "C" {
16959    pub fn g_variant_get_variant(value: *mut GVariant) -> *mut GVariant;
16960}
16961extern "C" {
16962    pub fn g_variant_get_string(value: *mut GVariant, length: *mut gsize) -> *const gchar;
16963}
16964extern "C" {
16965    pub fn g_variant_dup_string(value: *mut GVariant, length: *mut gsize) -> *mut gchar;
16966}
16967extern "C" {
16968    pub fn g_variant_get_strv(value: *mut GVariant, length: *mut gsize) -> *mut *const gchar;
16969}
16970extern "C" {
16971    pub fn g_variant_dup_strv(value: *mut GVariant, length: *mut gsize) -> *mut *mut gchar;
16972}
16973extern "C" {
16974    pub fn g_variant_get_objv(value: *mut GVariant, length: *mut gsize) -> *mut *const gchar;
16975}
16976extern "C" {
16977    pub fn g_variant_dup_objv(value: *mut GVariant, length: *mut gsize) -> *mut *mut gchar;
16978}
16979extern "C" {
16980    pub fn g_variant_get_bytestring(value: *mut GVariant) -> *const gchar;
16981}
16982extern "C" {
16983    pub fn g_variant_dup_bytestring(value: *mut GVariant, length: *mut gsize) -> *mut gchar;
16984}
16985extern "C" {
16986    pub fn g_variant_get_bytestring_array(
16987        value: *mut GVariant,
16988        length: *mut gsize,
16989    ) -> *mut *const gchar;
16990}
16991extern "C" {
16992    pub fn g_variant_dup_bytestring_array(
16993        value: *mut GVariant,
16994        length: *mut gsize,
16995    ) -> *mut *mut gchar;
16996}
16997extern "C" {
16998    pub fn g_variant_new_maybe(
16999        child_type: *const GVariantType,
17000        child: *mut GVariant,
17001    ) -> *mut GVariant;
17002}
17003extern "C" {
17004    pub fn g_variant_new_array(
17005        child_type: *const GVariantType,
17006        children: *const *mut GVariant,
17007        n_children: gsize,
17008    ) -> *mut GVariant;
17009}
17010extern "C" {
17011    pub fn g_variant_new_tuple(children: *const *mut GVariant, n_children: gsize) -> *mut GVariant;
17012}
17013extern "C" {
17014    pub fn g_variant_new_dict_entry(key: *mut GVariant, value: *mut GVariant) -> *mut GVariant;
17015}
17016extern "C" {
17017    pub fn g_variant_get_maybe(value: *mut GVariant) -> *mut GVariant;
17018}
17019extern "C" {
17020    pub fn g_variant_n_children(value: *mut GVariant) -> gsize;
17021}
17022extern "C" {
17023    pub fn g_variant_get_child(
17024        value: *mut GVariant,
17025        index_: gsize,
17026        format_string: *const gchar,
17027        ...
17028    );
17029}
17030extern "C" {
17031    pub fn g_variant_get_child_value(value: *mut GVariant, index_: gsize) -> *mut GVariant;
17032}
17033extern "C" {
17034    pub fn g_variant_lookup(
17035        dictionary: *mut GVariant,
17036        key: *const gchar,
17037        format_string: *const gchar,
17038        ...
17039    ) -> gboolean;
17040}
17041extern "C" {
17042    pub fn g_variant_lookup_value(
17043        dictionary: *mut GVariant,
17044        key: *const gchar,
17045        expected_type: *const GVariantType,
17046    ) -> *mut GVariant;
17047}
17048extern "C" {
17049    pub fn g_variant_get_fixed_array(
17050        value: *mut GVariant,
17051        n_elements: *mut gsize,
17052        element_size: gsize,
17053    ) -> gconstpointer;
17054}
17055extern "C" {
17056    pub fn g_variant_get_size(value: *mut GVariant) -> gsize;
17057}
17058extern "C" {
17059    pub fn g_variant_get_data(value: *mut GVariant) -> gconstpointer;
17060}
17061extern "C" {
17062    pub fn g_variant_get_data_as_bytes(value: *mut GVariant) -> *mut GBytes;
17063}
17064extern "C" {
17065    pub fn g_variant_store(value: *mut GVariant, data: gpointer);
17066}
17067extern "C" {
17068    pub fn g_variant_print(value: *mut GVariant, type_annotate: gboolean) -> *mut gchar;
17069}
17070extern "C" {
17071    pub fn g_variant_print_string(
17072        value: *mut GVariant,
17073        string: *mut GString,
17074        type_annotate: gboolean,
17075    ) -> *mut GString;
17076}
17077extern "C" {
17078    pub fn g_variant_hash(value: gconstpointer) -> guint;
17079}
17080extern "C" {
17081    pub fn g_variant_equal(one: gconstpointer, two: gconstpointer) -> gboolean;
17082}
17083extern "C" {
17084    pub fn g_variant_get_normal_form(value: *mut GVariant) -> *mut GVariant;
17085}
17086extern "C" {
17087    pub fn g_variant_is_normal_form(value: *mut GVariant) -> gboolean;
17088}
17089extern "C" {
17090    pub fn g_variant_byteswap(value: *mut GVariant) -> *mut GVariant;
17091}
17092extern "C" {
17093    pub fn g_variant_new_from_bytes(
17094        type_: *const GVariantType,
17095        bytes: *mut GBytes,
17096        trusted: gboolean,
17097    ) -> *mut GVariant;
17098}
17099extern "C" {
17100    pub fn g_variant_new_from_data(
17101        type_: *const GVariantType,
17102        data: gconstpointer,
17103        size: gsize,
17104        trusted: gboolean,
17105        notify: GDestroyNotify,
17106        user_data: gpointer,
17107    ) -> *mut GVariant;
17108}
17109pub type GVariantIter = _GVariantIter;
17110#[repr(C)]
17111#[derive(Debug, Copy, Clone)]
17112pub struct _GVariantIter {
17113    pub x: [gsize; 16usize],
17114}
17115#[test]
17116fn bindgen_test_layout__GVariantIter() {
17117    assert_eq!(
17118        ::std::mem::size_of::<_GVariantIter>(),
17119        128usize,
17120        concat!("Size of: ", stringify!(_GVariantIter))
17121    );
17122    assert_eq!(
17123        ::std::mem::align_of::<_GVariantIter>(),
17124        8usize,
17125        concat!("Alignment of ", stringify!(_GVariantIter))
17126    );
17127    assert_eq!(
17128        unsafe { &(*(::std::ptr::null::<_GVariantIter>())).x as *const _ as usize },
17129        0usize,
17130        concat!(
17131            "Offset of field: ",
17132            stringify!(_GVariantIter),
17133            "::",
17134            stringify!(x)
17135        )
17136    );
17137}
17138extern "C" {
17139    pub fn g_variant_iter_new(value: *mut GVariant) -> *mut GVariantIter;
17140}
17141extern "C" {
17142    pub fn g_variant_iter_init(iter: *mut GVariantIter, value: *mut GVariant) -> gsize;
17143}
17144extern "C" {
17145    pub fn g_variant_iter_copy(iter: *mut GVariantIter) -> *mut GVariantIter;
17146}
17147extern "C" {
17148    pub fn g_variant_iter_n_children(iter: *mut GVariantIter) -> gsize;
17149}
17150extern "C" {
17151    pub fn g_variant_iter_free(iter: *mut GVariantIter);
17152}
17153extern "C" {
17154    pub fn g_variant_iter_next_value(iter: *mut GVariantIter) -> *mut GVariant;
17155}
17156extern "C" {
17157    pub fn g_variant_iter_next(
17158        iter: *mut GVariantIter,
17159        format_string: *const gchar,
17160        ...
17161    ) -> gboolean;
17162}
17163extern "C" {
17164    pub fn g_variant_iter_loop(
17165        iter: *mut GVariantIter,
17166        format_string: *const gchar,
17167        ...
17168    ) -> gboolean;
17169}
17170pub type GVariantBuilder = _GVariantBuilder;
17171#[repr(C)]
17172#[derive(Copy, Clone)]
17173pub struct _GVariantBuilder {
17174    pub u: _GVariantBuilder__bindgen_ty_1,
17175}
17176#[repr(C)]
17177#[derive(Copy, Clone)]
17178pub union _GVariantBuilder__bindgen_ty_1 {
17179    pub s: _GVariantBuilder__bindgen_ty_1__bindgen_ty_1,
17180    pub x: [gsize; 16usize],
17181    _bindgen_union_align: [u64; 16usize],
17182}
17183#[repr(C)]
17184#[derive(Debug, Copy, Clone)]
17185pub struct _GVariantBuilder__bindgen_ty_1__bindgen_ty_1 {
17186    pub partial_magic: gsize,
17187    pub type_: *const GVariantType,
17188    pub y: [gsize; 14usize],
17189}
17190#[test]
17191fn bindgen_test_layout__GVariantBuilder__bindgen_ty_1__bindgen_ty_1() {
17192    assert_eq!(
17193        ::std::mem::size_of::<_GVariantBuilder__bindgen_ty_1__bindgen_ty_1>(),
17194        128usize,
17195        concat!(
17196            "Size of: ",
17197            stringify!(_GVariantBuilder__bindgen_ty_1__bindgen_ty_1)
17198        )
17199    );
17200    assert_eq!(
17201        ::std::mem::align_of::<_GVariantBuilder__bindgen_ty_1__bindgen_ty_1>(),
17202        8usize,
17203        concat!(
17204            "Alignment of ",
17205            stringify!(_GVariantBuilder__bindgen_ty_1__bindgen_ty_1)
17206        )
17207    );
17208    assert_eq!(
17209        unsafe {
17210            &(*(::std::ptr::null::<_GVariantBuilder__bindgen_ty_1__bindgen_ty_1>())).partial_magic
17211                as *const _ as usize
17212        },
17213        0usize,
17214        concat!(
17215            "Offset of field: ",
17216            stringify!(_GVariantBuilder__bindgen_ty_1__bindgen_ty_1),
17217            "::",
17218            stringify!(partial_magic)
17219        )
17220    );
17221    assert_eq!(
17222        unsafe {
17223            &(*(::std::ptr::null::<_GVariantBuilder__bindgen_ty_1__bindgen_ty_1>())).type_
17224                as *const _ as usize
17225        },
17226        8usize,
17227        concat!(
17228            "Offset of field: ",
17229            stringify!(_GVariantBuilder__bindgen_ty_1__bindgen_ty_1),
17230            "::",
17231            stringify!(type_)
17232        )
17233    );
17234    assert_eq!(
17235        unsafe {
17236            &(*(::std::ptr::null::<_GVariantBuilder__bindgen_ty_1__bindgen_ty_1>())).y as *const _
17237                as usize
17238        },
17239        16usize,
17240        concat!(
17241            "Offset of field: ",
17242            stringify!(_GVariantBuilder__bindgen_ty_1__bindgen_ty_1),
17243            "::",
17244            stringify!(y)
17245        )
17246    );
17247}
17248#[test]
17249fn bindgen_test_layout__GVariantBuilder__bindgen_ty_1() {
17250    assert_eq!(
17251        ::std::mem::size_of::<_GVariantBuilder__bindgen_ty_1>(),
17252        128usize,
17253        concat!("Size of: ", stringify!(_GVariantBuilder__bindgen_ty_1))
17254    );
17255    assert_eq!(
17256        ::std::mem::align_of::<_GVariantBuilder__bindgen_ty_1>(),
17257        8usize,
17258        concat!("Alignment of ", stringify!(_GVariantBuilder__bindgen_ty_1))
17259    );
17260    assert_eq!(
17261        unsafe {
17262            &(*(::std::ptr::null::<_GVariantBuilder__bindgen_ty_1>())).s as *const _ as usize
17263        },
17264        0usize,
17265        concat!(
17266            "Offset of field: ",
17267            stringify!(_GVariantBuilder__bindgen_ty_1),
17268            "::",
17269            stringify!(s)
17270        )
17271    );
17272    assert_eq!(
17273        unsafe {
17274            &(*(::std::ptr::null::<_GVariantBuilder__bindgen_ty_1>())).x as *const _ as usize
17275        },
17276        0usize,
17277        concat!(
17278            "Offset of field: ",
17279            stringify!(_GVariantBuilder__bindgen_ty_1),
17280            "::",
17281            stringify!(x)
17282        )
17283    );
17284}
17285#[test]
17286fn bindgen_test_layout__GVariantBuilder() {
17287    assert_eq!(
17288        ::std::mem::size_of::<_GVariantBuilder>(),
17289        128usize,
17290        concat!("Size of: ", stringify!(_GVariantBuilder))
17291    );
17292    assert_eq!(
17293        ::std::mem::align_of::<_GVariantBuilder>(),
17294        8usize,
17295        concat!("Alignment of ", stringify!(_GVariantBuilder))
17296    );
17297    assert_eq!(
17298        unsafe { &(*(::std::ptr::null::<_GVariantBuilder>())).u as *const _ as usize },
17299        0usize,
17300        concat!(
17301            "Offset of field: ",
17302            stringify!(_GVariantBuilder),
17303            "::",
17304            stringify!(u)
17305        )
17306    );
17307}
17308pub const GVariantParseError_G_VARIANT_PARSE_ERROR_FAILED: GVariantParseError = 0;
17309pub const GVariantParseError_G_VARIANT_PARSE_ERROR_BASIC_TYPE_EXPECTED: GVariantParseError = 1;
17310pub const GVariantParseError_G_VARIANT_PARSE_ERROR_CANNOT_INFER_TYPE: GVariantParseError = 2;
17311pub const GVariantParseError_G_VARIANT_PARSE_ERROR_DEFINITE_TYPE_EXPECTED: GVariantParseError = 3;
17312pub const GVariantParseError_G_VARIANT_PARSE_ERROR_INPUT_NOT_AT_END: GVariantParseError = 4;
17313pub const GVariantParseError_G_VARIANT_PARSE_ERROR_INVALID_CHARACTER: GVariantParseError = 5;
17314pub const GVariantParseError_G_VARIANT_PARSE_ERROR_INVALID_FORMAT_STRING: GVariantParseError = 6;
17315pub const GVariantParseError_G_VARIANT_PARSE_ERROR_INVALID_OBJECT_PATH: GVariantParseError = 7;
17316pub const GVariantParseError_G_VARIANT_PARSE_ERROR_INVALID_SIGNATURE: GVariantParseError = 8;
17317pub const GVariantParseError_G_VARIANT_PARSE_ERROR_INVALID_TYPE_STRING: GVariantParseError = 9;
17318pub const GVariantParseError_G_VARIANT_PARSE_ERROR_NO_COMMON_TYPE: GVariantParseError = 10;
17319pub const GVariantParseError_G_VARIANT_PARSE_ERROR_NUMBER_OUT_OF_RANGE: GVariantParseError = 11;
17320pub const GVariantParseError_G_VARIANT_PARSE_ERROR_NUMBER_TOO_BIG: GVariantParseError = 12;
17321pub const GVariantParseError_G_VARIANT_PARSE_ERROR_TYPE_ERROR: GVariantParseError = 13;
17322pub const GVariantParseError_G_VARIANT_PARSE_ERROR_UNEXPECTED_TOKEN: GVariantParseError = 14;
17323pub const GVariantParseError_G_VARIANT_PARSE_ERROR_UNKNOWN_KEYWORD: GVariantParseError = 15;
17324pub const GVariantParseError_G_VARIANT_PARSE_ERROR_UNTERMINATED_STRING_CONSTANT:
17325    GVariantParseError = 16;
17326pub const GVariantParseError_G_VARIANT_PARSE_ERROR_VALUE_EXPECTED: GVariantParseError = 17;
17327pub type GVariantParseError = u32;
17328extern "C" {
17329    pub fn g_variant_parser_get_error_quark() -> GQuark;
17330}
17331extern "C" {
17332    pub fn g_variant_parse_error_quark() -> GQuark;
17333}
17334extern "C" {
17335    pub fn g_variant_builder_new(type_: *const GVariantType) -> *mut GVariantBuilder;
17336}
17337extern "C" {
17338    pub fn g_variant_builder_unref(builder: *mut GVariantBuilder);
17339}
17340extern "C" {
17341    pub fn g_variant_builder_ref(builder: *mut GVariantBuilder) -> *mut GVariantBuilder;
17342}
17343extern "C" {
17344    pub fn g_variant_builder_init(builder: *mut GVariantBuilder, type_: *const GVariantType);
17345}
17346extern "C" {
17347    pub fn g_variant_builder_end(builder: *mut GVariantBuilder) -> *mut GVariant;
17348}
17349extern "C" {
17350    pub fn g_variant_builder_clear(builder: *mut GVariantBuilder);
17351}
17352extern "C" {
17353    pub fn g_variant_builder_open(builder: *mut GVariantBuilder, type_: *const GVariantType);
17354}
17355extern "C" {
17356    pub fn g_variant_builder_close(builder: *mut GVariantBuilder);
17357}
17358extern "C" {
17359    pub fn g_variant_builder_add_value(builder: *mut GVariantBuilder, value: *mut GVariant);
17360}
17361extern "C" {
17362    pub fn g_variant_builder_add(builder: *mut GVariantBuilder, format_string: *const gchar, ...);
17363}
17364extern "C" {
17365    pub fn g_variant_builder_add_parsed(builder: *mut GVariantBuilder, format: *const gchar, ...);
17366}
17367extern "C" {
17368    pub fn g_variant_new(format_string: *const gchar, ...) -> *mut GVariant;
17369}
17370extern "C" {
17371    pub fn g_variant_get(value: *mut GVariant, format_string: *const gchar, ...);
17372}
17373extern "C" {
17374    pub fn g_variant_new_va(
17375        format_string: *const gchar,
17376        endptr: *mut *const gchar,
17377        app: *mut va_list,
17378    ) -> *mut GVariant;
17379}
17380extern "C" {
17381    pub fn g_variant_get_va(
17382        value: *mut GVariant,
17383        format_string: *const gchar,
17384        endptr: *mut *const gchar,
17385        app: *mut va_list,
17386    );
17387}
17388extern "C" {
17389    pub fn g_variant_check_format_string(
17390        value: *mut GVariant,
17391        format_string: *const gchar,
17392        copy_only: gboolean,
17393    ) -> gboolean;
17394}
17395extern "C" {
17396    pub fn g_variant_parse(
17397        type_: *const GVariantType,
17398        text: *const gchar,
17399        limit: *const gchar,
17400        endptr: *mut *const gchar,
17401        error: *mut *mut GError,
17402    ) -> *mut GVariant;
17403}
17404extern "C" {
17405    pub fn g_variant_new_parsed(format: *const gchar, ...) -> *mut GVariant;
17406}
17407extern "C" {
17408    pub fn g_variant_new_parsed_va(format: *const gchar, app: *mut va_list) -> *mut GVariant;
17409}
17410extern "C" {
17411    pub fn g_variant_parse_error_print_context(
17412        error: *mut GError,
17413        source_str: *const gchar,
17414    ) -> *mut gchar;
17415}
17416extern "C" {
17417    pub fn g_variant_compare(one: gconstpointer, two: gconstpointer) -> gint;
17418}
17419pub type GVariantDict = _GVariantDict;
17420#[repr(C)]
17421#[derive(Copy, Clone)]
17422pub struct _GVariantDict {
17423    pub u: _GVariantDict__bindgen_ty_1,
17424}
17425#[repr(C)]
17426#[derive(Copy, Clone)]
17427pub union _GVariantDict__bindgen_ty_1 {
17428    pub s: _GVariantDict__bindgen_ty_1__bindgen_ty_1,
17429    pub x: [gsize; 16usize],
17430    _bindgen_union_align: [u64; 16usize],
17431}
17432#[repr(C)]
17433#[derive(Debug, Copy, Clone)]
17434pub struct _GVariantDict__bindgen_ty_1__bindgen_ty_1 {
17435    pub asv: *mut GVariant,
17436    pub partial_magic: gsize,
17437    pub y: [gsize; 14usize],
17438}
17439#[test]
17440fn bindgen_test_layout__GVariantDict__bindgen_ty_1__bindgen_ty_1() {
17441    assert_eq!(
17442        ::std::mem::size_of::<_GVariantDict__bindgen_ty_1__bindgen_ty_1>(),
17443        128usize,
17444        concat!(
17445            "Size of: ",
17446            stringify!(_GVariantDict__bindgen_ty_1__bindgen_ty_1)
17447        )
17448    );
17449    assert_eq!(
17450        ::std::mem::align_of::<_GVariantDict__bindgen_ty_1__bindgen_ty_1>(),
17451        8usize,
17452        concat!(
17453            "Alignment of ",
17454            stringify!(_GVariantDict__bindgen_ty_1__bindgen_ty_1)
17455        )
17456    );
17457    assert_eq!(
17458        unsafe {
17459            &(*(::std::ptr::null::<_GVariantDict__bindgen_ty_1__bindgen_ty_1>())).asv as *const _
17460                as usize
17461        },
17462        0usize,
17463        concat!(
17464            "Offset of field: ",
17465            stringify!(_GVariantDict__bindgen_ty_1__bindgen_ty_1),
17466            "::",
17467            stringify!(asv)
17468        )
17469    );
17470    assert_eq!(
17471        unsafe {
17472            &(*(::std::ptr::null::<_GVariantDict__bindgen_ty_1__bindgen_ty_1>())).partial_magic
17473                as *const _ as usize
17474        },
17475        8usize,
17476        concat!(
17477            "Offset of field: ",
17478            stringify!(_GVariantDict__bindgen_ty_1__bindgen_ty_1),
17479            "::",
17480            stringify!(partial_magic)
17481        )
17482    );
17483    assert_eq!(
17484        unsafe {
17485            &(*(::std::ptr::null::<_GVariantDict__bindgen_ty_1__bindgen_ty_1>())).y as *const _
17486                as usize
17487        },
17488        16usize,
17489        concat!(
17490            "Offset of field: ",
17491            stringify!(_GVariantDict__bindgen_ty_1__bindgen_ty_1),
17492            "::",
17493            stringify!(y)
17494        )
17495    );
17496}
17497#[test]
17498fn bindgen_test_layout__GVariantDict__bindgen_ty_1() {
17499    assert_eq!(
17500        ::std::mem::size_of::<_GVariantDict__bindgen_ty_1>(),
17501        128usize,
17502        concat!("Size of: ", stringify!(_GVariantDict__bindgen_ty_1))
17503    );
17504    assert_eq!(
17505        ::std::mem::align_of::<_GVariantDict__bindgen_ty_1>(),
17506        8usize,
17507        concat!("Alignment of ", stringify!(_GVariantDict__bindgen_ty_1))
17508    );
17509    assert_eq!(
17510        unsafe { &(*(::std::ptr::null::<_GVariantDict__bindgen_ty_1>())).s as *const _ as usize },
17511        0usize,
17512        concat!(
17513            "Offset of field: ",
17514            stringify!(_GVariantDict__bindgen_ty_1),
17515            "::",
17516            stringify!(s)
17517        )
17518    );
17519    assert_eq!(
17520        unsafe { &(*(::std::ptr::null::<_GVariantDict__bindgen_ty_1>())).x as *const _ as usize },
17521        0usize,
17522        concat!(
17523            "Offset of field: ",
17524            stringify!(_GVariantDict__bindgen_ty_1),
17525            "::",
17526            stringify!(x)
17527        )
17528    );
17529}
17530#[test]
17531fn bindgen_test_layout__GVariantDict() {
17532    assert_eq!(
17533        ::std::mem::size_of::<_GVariantDict>(),
17534        128usize,
17535        concat!("Size of: ", stringify!(_GVariantDict))
17536    );
17537    assert_eq!(
17538        ::std::mem::align_of::<_GVariantDict>(),
17539        8usize,
17540        concat!("Alignment of ", stringify!(_GVariantDict))
17541    );
17542    assert_eq!(
17543        unsafe { &(*(::std::ptr::null::<_GVariantDict>())).u as *const _ as usize },
17544        0usize,
17545        concat!(
17546            "Offset of field: ",
17547            stringify!(_GVariantDict),
17548            "::",
17549            stringify!(u)
17550        )
17551    );
17552}
17553extern "C" {
17554    pub fn g_variant_dict_new(from_asv: *mut GVariant) -> *mut GVariantDict;
17555}
17556extern "C" {
17557    pub fn g_variant_dict_init(dict: *mut GVariantDict, from_asv: *mut GVariant);
17558}
17559extern "C" {
17560    pub fn g_variant_dict_lookup(
17561        dict: *mut GVariantDict,
17562        key: *const gchar,
17563        format_string: *const gchar,
17564        ...
17565    ) -> gboolean;
17566}
17567extern "C" {
17568    pub fn g_variant_dict_lookup_value(
17569        dict: *mut GVariantDict,
17570        key: *const gchar,
17571        expected_type: *const GVariantType,
17572    ) -> *mut GVariant;
17573}
17574extern "C" {
17575    pub fn g_variant_dict_contains(dict: *mut GVariantDict, key: *const gchar) -> gboolean;
17576}
17577extern "C" {
17578    pub fn g_variant_dict_insert(
17579        dict: *mut GVariantDict,
17580        key: *const gchar,
17581        format_string: *const gchar,
17582        ...
17583    );
17584}
17585extern "C" {
17586    pub fn g_variant_dict_insert_value(
17587        dict: *mut GVariantDict,
17588        key: *const gchar,
17589        value: *mut GVariant,
17590    );
17591}
17592extern "C" {
17593    pub fn g_variant_dict_remove(dict: *mut GVariantDict, key: *const gchar) -> gboolean;
17594}
17595extern "C" {
17596    pub fn g_variant_dict_clear(dict: *mut GVariantDict);
17597}
17598extern "C" {
17599    pub fn g_variant_dict_end(dict: *mut GVariantDict) -> *mut GVariant;
17600}
17601extern "C" {
17602    pub fn g_variant_dict_ref(dict: *mut GVariantDict) -> *mut GVariantDict;
17603}
17604extern "C" {
17605    pub fn g_variant_dict_unref(dict: *mut GVariantDict);
17606}
17607extern "C" {
17608    pub fn g_printf_string_upper_bound(format: *const gchar, args: *mut __va_list_tag) -> gsize;
17609}
17610pub const GLogLevelFlags_G_LOG_FLAG_RECURSION: GLogLevelFlags = 1;
17611pub const GLogLevelFlags_G_LOG_FLAG_FATAL: GLogLevelFlags = 2;
17612pub const GLogLevelFlags_G_LOG_LEVEL_ERROR: GLogLevelFlags = 4;
17613pub const GLogLevelFlags_G_LOG_LEVEL_CRITICAL: GLogLevelFlags = 8;
17614pub const GLogLevelFlags_G_LOG_LEVEL_WARNING: GLogLevelFlags = 16;
17615pub const GLogLevelFlags_G_LOG_LEVEL_MESSAGE: GLogLevelFlags = 32;
17616pub const GLogLevelFlags_G_LOG_LEVEL_INFO: GLogLevelFlags = 64;
17617pub const GLogLevelFlags_G_LOG_LEVEL_DEBUG: GLogLevelFlags = 128;
17618pub const GLogLevelFlags_G_LOG_LEVEL_MASK: GLogLevelFlags = -4;
17619pub type GLogLevelFlags = i32;
17620pub type GLogFunc = ::std::option::Option<
17621    unsafe extern "C" fn(
17622        log_domain: *const gchar,
17623        log_level: GLogLevelFlags,
17624        message: *const gchar,
17625        user_data: gpointer,
17626    ),
17627>;
17628extern "C" {
17629    pub fn g_log_set_handler(
17630        log_domain: *const gchar,
17631        log_levels: GLogLevelFlags,
17632        log_func: GLogFunc,
17633        user_data: gpointer,
17634    ) -> guint;
17635}
17636extern "C" {
17637    pub fn g_log_set_handler_full(
17638        log_domain: *const gchar,
17639        log_levels: GLogLevelFlags,
17640        log_func: GLogFunc,
17641        user_data: gpointer,
17642        destroy: GDestroyNotify,
17643    ) -> guint;
17644}
17645extern "C" {
17646    pub fn g_log_remove_handler(log_domain: *const gchar, handler_id: guint);
17647}
17648extern "C" {
17649    pub fn g_log_default_handler(
17650        log_domain: *const gchar,
17651        log_level: GLogLevelFlags,
17652        message: *const gchar,
17653        unused_data: gpointer,
17654    );
17655}
17656extern "C" {
17657    pub fn g_log_set_default_handler(log_func: GLogFunc, user_data: gpointer) -> GLogFunc;
17658}
17659extern "C" {
17660    pub fn g_log(log_domain: *const gchar, log_level: GLogLevelFlags, format: *const gchar, ...);
17661}
17662extern "C" {
17663    pub fn g_logv(
17664        log_domain: *const gchar,
17665        log_level: GLogLevelFlags,
17666        format: *const gchar,
17667        args: *mut __va_list_tag,
17668    );
17669}
17670extern "C" {
17671    pub fn g_log_set_fatal_mask(
17672        log_domain: *const gchar,
17673        fatal_mask: GLogLevelFlags,
17674    ) -> GLogLevelFlags;
17675}
17676extern "C" {
17677    pub fn g_log_set_always_fatal(fatal_mask: GLogLevelFlags) -> GLogLevelFlags;
17678}
17679pub const GLogWriterOutput_G_LOG_WRITER_HANDLED: GLogWriterOutput = 1;
17680pub const GLogWriterOutput_G_LOG_WRITER_UNHANDLED: GLogWriterOutput = 0;
17681#[doc = " GLogWriterOutput:"]
17682#[doc = " @G_LOG_WRITER_HANDLED: Log writer has handled the log entry."]
17683#[doc = " @G_LOG_WRITER_UNHANDLED: Log writer could not handle the log entry."]
17684#[doc = ""]
17685#[doc = " Return values from #GLogWriterFuncs to indicate whether the given log entry"]
17686#[doc = " was successfully handled by the writer, or whether there was an error in"]
17687#[doc = " handling it (and hence a fallback writer should be used)."]
17688#[doc = ""]
17689#[doc = " If a #GLogWriterFunc ignores a log entry, it should return"]
17690#[doc = " %G_LOG_WRITER_HANDLED."]
17691#[doc = ""]
17692#[doc = " Since: 2.50"]
17693pub type GLogWriterOutput = u32;
17694#[doc = " GLogField:"]
17695#[doc = " @key: field name (UTF-8 string)"]
17696#[doc = " @value: field value (arbitrary bytes)"]
17697#[doc = " @length: length of @value, in bytes, or -1 if it is nul-terminated"]
17698#[doc = ""]
17699#[doc = " Structure representing a single field in a structured log entry. See"]
17700#[doc = " g_log_structured() for details."]
17701#[doc = ""]
17702#[doc = " Log fields may contain arbitrary values, including binary with embedded nul"]
17703#[doc = " bytes. If the field contains a string, the string must be UTF-8 encoded and"]
17704#[doc = " have a trailing nul byte. Otherwise, @length must be set to a non-negative"]
17705#[doc = " value."]
17706#[doc = ""]
17707#[doc = " Since: 2.50"]
17708pub type GLogField = _GLogField;
17709#[repr(C)]
17710#[derive(Debug, Copy, Clone)]
17711pub struct _GLogField {
17712    pub key: *const gchar,
17713    pub value: gconstpointer,
17714    pub length: gssize,
17715}
17716#[test]
17717fn bindgen_test_layout__GLogField() {
17718    assert_eq!(
17719        ::std::mem::size_of::<_GLogField>(),
17720        24usize,
17721        concat!("Size of: ", stringify!(_GLogField))
17722    );
17723    assert_eq!(
17724        ::std::mem::align_of::<_GLogField>(),
17725        8usize,
17726        concat!("Alignment of ", stringify!(_GLogField))
17727    );
17728    assert_eq!(
17729        unsafe { &(*(::std::ptr::null::<_GLogField>())).key as *const _ as usize },
17730        0usize,
17731        concat!(
17732            "Offset of field: ",
17733            stringify!(_GLogField),
17734            "::",
17735            stringify!(key)
17736        )
17737    );
17738    assert_eq!(
17739        unsafe { &(*(::std::ptr::null::<_GLogField>())).value as *const _ as usize },
17740        8usize,
17741        concat!(
17742            "Offset of field: ",
17743            stringify!(_GLogField),
17744            "::",
17745            stringify!(value)
17746        )
17747    );
17748    assert_eq!(
17749        unsafe { &(*(::std::ptr::null::<_GLogField>())).length as *const _ as usize },
17750        16usize,
17751        concat!(
17752            "Offset of field: ",
17753            stringify!(_GLogField),
17754            "::",
17755            stringify!(length)
17756        )
17757    );
17758}
17759#[doc = " GLogWriterFunc:"]
17760#[doc = " @log_level: log level of the message"]
17761#[doc = " @fields: (array length=n_fields): fields forming the message"]
17762#[doc = " @n_fields: number of @fields"]
17763#[doc = " @user_data: user data passed to g_log_set_writer_func()"]
17764#[doc = ""]
17765#[doc = " Writer function for log entries. A log entry is a collection of one or more"]
17766#[doc = " #GLogFields, using the standard [field names from journal"]
17767#[doc = " specification](https://www.freedesktop.org/software/systemd/man/systemd.journal-fields.html)."]
17768#[doc = " See g_log_structured() for more information."]
17769#[doc = ""]
17770#[doc = " Writer functions must ignore fields which they do not recognise, unless they"]
17771#[doc = " can write arbitrary binary output, as field values may be arbitrary binary."]
17772#[doc = ""]
17773#[doc = " @log_level is guaranteed to be included in @fields as the `PRIORITY` field,"]
17774#[doc = " but is provided separately for convenience of deciding whether or where to"]
17775#[doc = " output the log entry."]
17776#[doc = ""]
17777#[doc = " Writer functions should return %G_LOG_WRITER_HANDLED if they handled the log"]
17778#[doc = " message successfully or if they deliberately ignored it. If there was an"]
17779#[doc = " error handling the message (for example, if the writer function is meant to"]
17780#[doc = " send messages to a remote logging server and there is a network error), it"]
17781#[doc = " should return %G_LOG_WRITER_UNHANDLED. This allows writer functions to be"]
17782#[doc = " chained and fall back to simpler handlers in case of failure."]
17783#[doc = ""]
17784#[doc = " Returns: %G_LOG_WRITER_HANDLED if the log entry was handled successfully;"]
17785#[doc = "    %G_LOG_WRITER_UNHANDLED otherwise"]
17786#[doc = " Since: 2.50"]
17787pub type GLogWriterFunc = ::std::option::Option<
17788    unsafe extern "C" fn(
17789        log_level: GLogLevelFlags,
17790        fields: *const GLogField,
17791        n_fields: gsize,
17792        user_data: gpointer,
17793    ) -> GLogWriterOutput,
17794>;
17795extern "C" {
17796    pub fn g_log_structured(log_domain: *const gchar, log_level: GLogLevelFlags, ...);
17797}
17798extern "C" {
17799    pub fn g_log_structured_array(
17800        log_level: GLogLevelFlags,
17801        fields: *const GLogField,
17802        n_fields: gsize,
17803    );
17804}
17805extern "C" {
17806    pub fn g_log_variant(
17807        log_domain: *const gchar,
17808        log_level: GLogLevelFlags,
17809        fields: *mut GVariant,
17810    );
17811}
17812extern "C" {
17813    pub fn g_log_set_writer_func(
17814        func: GLogWriterFunc,
17815        user_data: gpointer,
17816        user_data_free: GDestroyNotify,
17817    );
17818}
17819extern "C" {
17820    pub fn g_log_writer_supports_color(output_fd: gint) -> gboolean;
17821}
17822extern "C" {
17823    pub fn g_log_writer_is_journald(output_fd: gint) -> gboolean;
17824}
17825extern "C" {
17826    pub fn g_log_writer_format_fields(
17827        log_level: GLogLevelFlags,
17828        fields: *const GLogField,
17829        n_fields: gsize,
17830        use_color: gboolean,
17831    ) -> *mut gchar;
17832}
17833extern "C" {
17834    pub fn g_log_writer_journald(
17835        log_level: GLogLevelFlags,
17836        fields: *const GLogField,
17837        n_fields: gsize,
17838        user_data: gpointer,
17839    ) -> GLogWriterOutput;
17840}
17841extern "C" {
17842    pub fn g_log_writer_standard_streams(
17843        log_level: GLogLevelFlags,
17844        fields: *const GLogField,
17845        n_fields: gsize,
17846        user_data: gpointer,
17847    ) -> GLogWriterOutput;
17848}
17849extern "C" {
17850    pub fn g_log_writer_default(
17851        log_level: GLogLevelFlags,
17852        fields: *const GLogField,
17853        n_fields: gsize,
17854        user_data: gpointer,
17855    ) -> GLogWriterOutput;
17856}
17857extern "C" {
17858    pub fn _g_log_fallback_handler(
17859        log_domain: *const gchar,
17860        log_level: GLogLevelFlags,
17861        message: *const gchar,
17862        unused_data: gpointer,
17863    );
17864}
17865extern "C" {
17866    pub fn g_return_if_fail_warning(
17867        log_domain: *const ::std::os::raw::c_char,
17868        pretty_function: *const ::std::os::raw::c_char,
17869        expression: *const ::std::os::raw::c_char,
17870    );
17871}
17872extern "C" {
17873    pub fn g_warn_message(
17874        domain: *const ::std::os::raw::c_char,
17875        file: *const ::std::os::raw::c_char,
17876        line: ::std::os::raw::c_int,
17877        func: *const ::std::os::raw::c_char,
17878        warnexpr: *const ::std::os::raw::c_char,
17879    );
17880}
17881extern "C" {
17882    pub fn g_assert_warning(
17883        log_domain: *const ::std::os::raw::c_char,
17884        file: *const ::std::os::raw::c_char,
17885        line: ::std::os::raw::c_int,
17886        pretty_function: *const ::std::os::raw::c_char,
17887        expression: *const ::std::os::raw::c_char,
17888    );
17889}
17890extern "C" {
17891    pub fn g_log_structured_standard(
17892        log_domain: *const gchar,
17893        log_level: GLogLevelFlags,
17894        file: *const gchar,
17895        line: *const gchar,
17896        func: *const gchar,
17897        message_format: *const gchar,
17898        ...
17899    );
17900}
17901#[doc = " GPrintFunc:"]
17902#[doc = " @string: the message to output"]
17903#[doc = ""]
17904#[doc = " Specifies the type of the print handler functions."]
17905#[doc = " These are called with the complete formatted string to output."]
17906pub type GPrintFunc = ::std::option::Option<unsafe extern "C" fn(string: *const gchar)>;
17907extern "C" {
17908    pub fn g_print(format: *const gchar, ...);
17909}
17910extern "C" {
17911    pub fn g_set_print_handler(func: GPrintFunc) -> GPrintFunc;
17912}
17913extern "C" {
17914    pub fn g_printerr(format: *const gchar, ...);
17915}
17916extern "C" {
17917    pub fn g_set_printerr_handler(func: GPrintFunc) -> GPrintFunc;
17918}
17919#[repr(C)]
17920#[derive(Debug, Copy, Clone)]
17921pub struct _GOptionContext {
17922    _unused: [u8; 0],
17923}
17924#[doc = " GOptionContext:"]
17925#[doc = ""]
17926#[doc = " A `GOptionContext` struct defines which options"]
17927#[doc = " are accepted by the commandline option parser. The struct has only private"]
17928#[doc = " fields and should not be directly accessed."]
17929pub type GOptionContext = _GOptionContext;
17930#[repr(C)]
17931#[derive(Debug, Copy, Clone)]
17932pub struct _GOptionGroup {
17933    _unused: [u8; 0],
17934}
17935#[doc = " GOptionGroup:"]
17936#[doc = ""]
17937#[doc = " A `GOptionGroup` struct defines the options in a single"]
17938#[doc = " group. The struct has only private fields and should not be directly accessed."]
17939#[doc = ""]
17940#[doc = " All options in a group share the same translation function. Libraries which"]
17941#[doc = " need to parse commandline options are expected to provide a function for"]
17942#[doc = " getting a `GOptionGroup` holding their options, which"]
17943#[doc = " the application can then add to its #GOptionContext."]
17944pub type GOptionGroup = _GOptionGroup;
17945pub type GOptionEntry = _GOptionEntry;
17946pub const GOptionFlags_G_OPTION_FLAG_NONE: GOptionFlags = 0;
17947pub const GOptionFlags_G_OPTION_FLAG_HIDDEN: GOptionFlags = 1;
17948pub const GOptionFlags_G_OPTION_FLAG_IN_MAIN: GOptionFlags = 2;
17949pub const GOptionFlags_G_OPTION_FLAG_REVERSE: GOptionFlags = 4;
17950pub const GOptionFlags_G_OPTION_FLAG_NO_ARG: GOptionFlags = 8;
17951pub const GOptionFlags_G_OPTION_FLAG_FILENAME: GOptionFlags = 16;
17952pub const GOptionFlags_G_OPTION_FLAG_OPTIONAL_ARG: GOptionFlags = 32;
17953pub const GOptionFlags_G_OPTION_FLAG_NOALIAS: GOptionFlags = 64;
17954#[doc = " GOptionFlags:"]
17955#[doc = " @G_OPTION_FLAG_NONE: No flags. Since: 2.42."]
17956#[doc = " @G_OPTION_FLAG_HIDDEN: The option doesn't appear in `--help` output."]
17957#[doc = " @G_OPTION_FLAG_IN_MAIN: The option appears in the main section of the"]
17958#[doc = "     `--help` output, even if it is defined in a group."]
17959#[doc = " @G_OPTION_FLAG_REVERSE: For options of the %G_OPTION_ARG_NONE kind, this"]
17960#[doc = "     flag indicates that the sense of the option is reversed."]
17961#[doc = " @G_OPTION_FLAG_NO_ARG: For options of the %G_OPTION_ARG_CALLBACK kind,"]
17962#[doc = "     this flag indicates that the callback does not take any argument"]
17963#[doc = "     (like a %G_OPTION_ARG_NONE option). Since 2.8"]
17964#[doc = " @G_OPTION_FLAG_FILENAME: For options of the %G_OPTION_ARG_CALLBACK"]
17965#[doc = "     kind, this flag indicates that the argument should be passed to the"]
17966#[doc = "     callback in the GLib filename encoding rather than UTF-8. Since 2.8"]
17967#[doc = " @G_OPTION_FLAG_OPTIONAL_ARG: For options of the %G_OPTION_ARG_CALLBACK"]
17968#[doc = "     kind, this flag indicates that the argument supply is optional."]
17969#[doc = "     If no argument is given then data of %GOptionParseFunc will be"]
17970#[doc = "     set to NULL. Since 2.8"]
17971#[doc = " @G_OPTION_FLAG_NOALIAS: This flag turns off the automatic conflict"]
17972#[doc = "     resolution which prefixes long option names with `groupname-` if"]
17973#[doc = "     there is a conflict. This option should only be used in situations"]
17974#[doc = "     where aliasing is necessary to model some legacy commandline interface."]
17975#[doc = "     It is not safe to use this option, unless all option groups are under"]
17976#[doc = "     your direct control. Since 2.8."]
17977#[doc = ""]
17978#[doc = " Flags which modify individual options."]
17979pub type GOptionFlags = u32;
17980pub const GOptionArg_G_OPTION_ARG_NONE: GOptionArg = 0;
17981pub const GOptionArg_G_OPTION_ARG_STRING: GOptionArg = 1;
17982pub const GOptionArg_G_OPTION_ARG_INT: GOptionArg = 2;
17983pub const GOptionArg_G_OPTION_ARG_CALLBACK: GOptionArg = 3;
17984pub const GOptionArg_G_OPTION_ARG_FILENAME: GOptionArg = 4;
17985pub const GOptionArg_G_OPTION_ARG_STRING_ARRAY: GOptionArg = 5;
17986pub const GOptionArg_G_OPTION_ARG_FILENAME_ARRAY: GOptionArg = 6;
17987pub const GOptionArg_G_OPTION_ARG_DOUBLE: GOptionArg = 7;
17988pub const GOptionArg_G_OPTION_ARG_INT64: GOptionArg = 8;
17989#[doc = " GOptionArg:"]
17990#[doc = " @G_OPTION_ARG_NONE: No extra argument. This is useful for simple flags."]
17991#[doc = " @G_OPTION_ARG_STRING: The option takes a string argument."]
17992#[doc = " @G_OPTION_ARG_INT: The option takes an integer argument."]
17993#[doc = " @G_OPTION_ARG_CALLBACK: The option provides a callback (of type"]
17994#[doc = "     #GOptionArgFunc) to parse the extra argument."]
17995#[doc = " @G_OPTION_ARG_FILENAME: The option takes a filename as argument."]
17996#[doc = " @G_OPTION_ARG_STRING_ARRAY: The option takes a string argument, multiple"]
17997#[doc = "     uses of the option are collected into an array of strings."]
17998#[doc = " @G_OPTION_ARG_FILENAME_ARRAY: The option takes a filename as argument,"]
17999#[doc = "     multiple uses of the option are collected into an array of strings."]
18000#[doc = " @G_OPTION_ARG_DOUBLE: The option takes a double argument. The argument"]
18001#[doc = "     can be formatted either for the user's locale or for the \"C\" locale."]
18002#[doc = "     Since 2.12"]
18003#[doc = " @G_OPTION_ARG_INT64: The option takes a 64-bit integer. Like"]
18004#[doc = "     %G_OPTION_ARG_INT but for larger numbers. The number can be in"]
18005#[doc = "     decimal base, or in hexadecimal (when prefixed with `0x`, for"]
18006#[doc = "     example, `0xffffffff`). Since 2.12"]
18007#[doc = ""]
18008#[doc = " The #GOptionArg enum values determine which type of extra argument the"]
18009#[doc = " options expect to find. If an option expects an extra argument, it can"]
18010#[doc = " be specified in several ways; with a short option: `-x arg`, with a long"]
18011#[doc = " option: `--name arg` or combined in a single argument: `--name=arg`."]
18012pub type GOptionArg = u32;
18013#[doc = " GOptionArgFunc:"]
18014#[doc = " @option_name: The name of the option being parsed. This will be either a"]
18015#[doc = "  single dash followed by a single letter (for a short name) or two dashes"]
18016#[doc = "  followed by a long option name."]
18017#[doc = " @value: The value to be parsed."]
18018#[doc = " @data: User data added to the #GOptionGroup containing the option when it"]
18019#[doc = "  was created with g_option_group_new()"]
18020#[doc = " @error: A return location for errors. The error code %G_OPTION_ERROR_FAILED"]
18021#[doc = "  is intended to be used for errors in #GOptionArgFunc callbacks."]
18022#[doc = ""]
18023#[doc = " The type of function to be passed as callback for %G_OPTION_ARG_CALLBACK"]
18024#[doc = " options."]
18025#[doc = ""]
18026#[doc = " Returns: %TRUE if the option was successfully parsed, %FALSE if an error"]
18027#[doc = "  occurred, in which case @error should be set with g_set_error()"]
18028pub type GOptionArgFunc = ::std::option::Option<
18029    unsafe extern "C" fn(
18030        option_name: *const gchar,
18031        value: *const gchar,
18032        data: gpointer,
18033        error: *mut *mut GError,
18034    ) -> gboolean,
18035>;
18036#[doc = " GOptionParseFunc:"]
18037#[doc = " @context: The active #GOptionContext"]
18038#[doc = " @group: The group to which the function belongs"]
18039#[doc = " @data: User data added to the #GOptionGroup containing the option when it"]
18040#[doc = "  was created with g_option_group_new()"]
18041#[doc = " @error: A return location for error details"]
18042#[doc = ""]
18043#[doc = " The type of function that can be called before and after parsing."]
18044#[doc = ""]
18045#[doc = " Returns: %TRUE if the function completed successfully, %FALSE if an error"]
18046#[doc = "  occurred, in which case @error should be set with g_set_error()"]
18047pub type GOptionParseFunc = ::std::option::Option<
18048    unsafe extern "C" fn(
18049        context: *mut GOptionContext,
18050        group: *mut GOptionGroup,
18051        data: gpointer,
18052        error: *mut *mut GError,
18053    ) -> gboolean,
18054>;
18055#[doc = " GOptionErrorFunc:"]
18056#[doc = " @context: The active #GOptionContext"]
18057#[doc = " @group: The group to which the function belongs"]
18058#[doc = " @data: User data added to the #GOptionGroup containing the option when it"]
18059#[doc = "  was created with g_option_group_new()"]
18060#[doc = " @error: The #GError containing details about the parse error"]
18061#[doc = ""]
18062#[doc = " The type of function to be used as callback when a parse error occurs."]
18063pub type GOptionErrorFunc = ::std::option::Option<
18064    unsafe extern "C" fn(
18065        context: *mut GOptionContext,
18066        group: *mut GOptionGroup,
18067        data: gpointer,
18068        error: *mut *mut GError,
18069    ),
18070>;
18071pub const GOptionError_G_OPTION_ERROR_UNKNOWN_OPTION: GOptionError = 0;
18072pub const GOptionError_G_OPTION_ERROR_BAD_VALUE: GOptionError = 1;
18073pub const GOptionError_G_OPTION_ERROR_FAILED: GOptionError = 2;
18074#[doc = " GOptionError:"]
18075#[doc = " @G_OPTION_ERROR_UNKNOWN_OPTION: An option was not known to the parser."]
18076#[doc = "  This error will only be reported, if the parser hasn't been instructed"]
18077#[doc = "  to ignore unknown options, see g_option_context_set_ignore_unknown_options()."]
18078#[doc = " @G_OPTION_ERROR_BAD_VALUE: A value couldn't be parsed."]
18079#[doc = " @G_OPTION_ERROR_FAILED: A #GOptionArgFunc callback failed."]
18080#[doc = ""]
18081#[doc = " Error codes returned by option parsing."]
18082pub type GOptionError = u32;
18083extern "C" {
18084    pub fn g_option_error_quark() -> GQuark;
18085}
18086#[doc = " GOptionEntry:"]
18087#[doc = " @long_name: The long name of an option can be used to specify it"]
18088#[doc = "     in a commandline as `--long_name`. Every option must have a"]
18089#[doc = "     long name. To resolve conflicts if multiple option groups contain"]
18090#[doc = "     the same long name, it is also possible to specify the option as"]
18091#[doc = "     `--groupname-long_name`."]
18092#[doc = " @short_name: If an option has a short name, it can be specified"]
18093#[doc = "     `-short_name` in a commandline. @short_name must be  a printable"]
18094#[doc = "     ASCII character different from '-', or zero if the option has no"]
18095#[doc = "     short name."]
18096#[doc = " @flags: Flags from #GOptionFlags"]
18097#[doc = " @arg: The type of the option, as a #GOptionArg"]
18098#[doc = " @arg_data: If the @arg type is %G_OPTION_ARG_CALLBACK, then @arg_data"]
18099#[doc = "     must point to a #GOptionArgFunc callback function, which will be"]
18100#[doc = "     called to handle the extra argument. Otherwise, @arg_data is a"]
18101#[doc = "     pointer to a location to store the value, the required type of"]
18102#[doc = "     the location depends on the @arg type:"]
18103#[doc = "     - %G_OPTION_ARG_NONE: %gboolean"]
18104#[doc = "     - %G_OPTION_ARG_STRING: %gchar*"]
18105#[doc = "     - %G_OPTION_ARG_INT: %gint"]
18106#[doc = "     - %G_OPTION_ARG_FILENAME: %gchar*"]
18107#[doc = "     - %G_OPTION_ARG_STRING_ARRAY: %gchar**"]
18108#[doc = "     - %G_OPTION_ARG_FILENAME_ARRAY: %gchar**"]
18109#[doc = "     - %G_OPTION_ARG_DOUBLE: %gdouble"]
18110#[doc = "     If @arg type is %G_OPTION_ARG_STRING or %G_OPTION_ARG_FILENAME,"]
18111#[doc = "     the location will contain a newly allocated string if the option"]
18112#[doc = "     was given. That string needs to be freed by the callee using g_free()."]
18113#[doc = "     Likewise if @arg type is %G_OPTION_ARG_STRING_ARRAY or"]
18114#[doc = "     %G_OPTION_ARG_FILENAME_ARRAY, the data should be freed using g_strfreev()."]
18115#[doc = " @description: the description for the option in `--help`"]
18116#[doc = "     output. The @description is translated using the @translate_func"]
18117#[doc = "     of the group, see g_option_group_set_translation_domain()."]
18118#[doc = " @arg_description: The placeholder to use for the extra argument parsed"]
18119#[doc = "     by the option in `--help` output. The @arg_description is translated"]
18120#[doc = "     using the @translate_func of the group, see"]
18121#[doc = "     g_option_group_set_translation_domain()."]
18122#[doc = ""]
18123#[doc = " A GOptionEntry struct defines a single option. To have an effect, they"]
18124#[doc = " must be added to a #GOptionGroup with g_option_context_add_main_entries()"]
18125#[doc = " or g_option_group_add_entries()."]
18126#[repr(C)]
18127#[derive(Debug, Copy, Clone)]
18128pub struct _GOptionEntry {
18129    pub long_name: *const gchar,
18130    pub short_name: gchar,
18131    pub flags: gint,
18132    pub arg: GOptionArg,
18133    pub arg_data: gpointer,
18134    pub description: *const gchar,
18135    pub arg_description: *const gchar,
18136}
18137#[test]
18138fn bindgen_test_layout__GOptionEntry() {
18139    assert_eq!(
18140        ::std::mem::size_of::<_GOptionEntry>(),
18141        48usize,
18142        concat!("Size of: ", stringify!(_GOptionEntry))
18143    );
18144    assert_eq!(
18145        ::std::mem::align_of::<_GOptionEntry>(),
18146        8usize,
18147        concat!("Alignment of ", stringify!(_GOptionEntry))
18148    );
18149    assert_eq!(
18150        unsafe { &(*(::std::ptr::null::<_GOptionEntry>())).long_name as *const _ as usize },
18151        0usize,
18152        concat!(
18153            "Offset of field: ",
18154            stringify!(_GOptionEntry),
18155            "::",
18156            stringify!(long_name)
18157        )
18158    );
18159    assert_eq!(
18160        unsafe { &(*(::std::ptr::null::<_GOptionEntry>())).short_name as *const _ as usize },
18161        8usize,
18162        concat!(
18163            "Offset of field: ",
18164            stringify!(_GOptionEntry),
18165            "::",
18166            stringify!(short_name)
18167        )
18168    );
18169    assert_eq!(
18170        unsafe { &(*(::std::ptr::null::<_GOptionEntry>())).flags as *const _ as usize },
18171        12usize,
18172        concat!(
18173            "Offset of field: ",
18174            stringify!(_GOptionEntry),
18175            "::",
18176            stringify!(flags)
18177        )
18178    );
18179    assert_eq!(
18180        unsafe { &(*(::std::ptr::null::<_GOptionEntry>())).arg as *const _ as usize },
18181        16usize,
18182        concat!(
18183            "Offset of field: ",
18184            stringify!(_GOptionEntry),
18185            "::",
18186            stringify!(arg)
18187        )
18188    );
18189    assert_eq!(
18190        unsafe { &(*(::std::ptr::null::<_GOptionEntry>())).arg_data as *const _ as usize },
18191        24usize,
18192        concat!(
18193            "Offset of field: ",
18194            stringify!(_GOptionEntry),
18195            "::",
18196            stringify!(arg_data)
18197        )
18198    );
18199    assert_eq!(
18200        unsafe { &(*(::std::ptr::null::<_GOptionEntry>())).description as *const _ as usize },
18201        32usize,
18202        concat!(
18203            "Offset of field: ",
18204            stringify!(_GOptionEntry),
18205            "::",
18206            stringify!(description)
18207        )
18208    );
18209    assert_eq!(
18210        unsafe { &(*(::std::ptr::null::<_GOptionEntry>())).arg_description as *const _ as usize },
18211        40usize,
18212        concat!(
18213            "Offset of field: ",
18214            stringify!(_GOptionEntry),
18215            "::",
18216            stringify!(arg_description)
18217        )
18218    );
18219}
18220extern "C" {
18221    pub fn g_option_context_new(parameter_string: *const gchar) -> *mut GOptionContext;
18222}
18223extern "C" {
18224    pub fn g_option_context_set_summary(context: *mut GOptionContext, summary: *const gchar);
18225}
18226extern "C" {
18227    pub fn g_option_context_get_summary(context: *mut GOptionContext) -> *const gchar;
18228}
18229extern "C" {
18230    pub fn g_option_context_set_description(
18231        context: *mut GOptionContext,
18232        description: *const gchar,
18233    );
18234}
18235extern "C" {
18236    pub fn g_option_context_get_description(context: *mut GOptionContext) -> *const gchar;
18237}
18238extern "C" {
18239    pub fn g_option_context_free(context: *mut GOptionContext);
18240}
18241extern "C" {
18242    pub fn g_option_context_set_help_enabled(context: *mut GOptionContext, help_enabled: gboolean);
18243}
18244extern "C" {
18245    pub fn g_option_context_get_help_enabled(context: *mut GOptionContext) -> gboolean;
18246}
18247extern "C" {
18248    pub fn g_option_context_set_ignore_unknown_options(
18249        context: *mut GOptionContext,
18250        ignore_unknown: gboolean,
18251    );
18252}
18253extern "C" {
18254    pub fn g_option_context_get_ignore_unknown_options(context: *mut GOptionContext) -> gboolean;
18255}
18256extern "C" {
18257    pub fn g_option_context_set_strict_posix(context: *mut GOptionContext, strict_posix: gboolean);
18258}
18259extern "C" {
18260    pub fn g_option_context_get_strict_posix(context: *mut GOptionContext) -> gboolean;
18261}
18262extern "C" {
18263    pub fn g_option_context_add_main_entries(
18264        context: *mut GOptionContext,
18265        entries: *const GOptionEntry,
18266        translation_domain: *const gchar,
18267    );
18268}
18269extern "C" {
18270    pub fn g_option_context_parse(
18271        context: *mut GOptionContext,
18272        argc: *mut gint,
18273        argv: *mut *mut *mut gchar,
18274        error: *mut *mut GError,
18275    ) -> gboolean;
18276}
18277extern "C" {
18278    pub fn g_option_context_parse_strv(
18279        context: *mut GOptionContext,
18280        arguments: *mut *mut *mut gchar,
18281        error: *mut *mut GError,
18282    ) -> gboolean;
18283}
18284extern "C" {
18285    pub fn g_option_context_set_translate_func(
18286        context: *mut GOptionContext,
18287        func: GTranslateFunc,
18288        data: gpointer,
18289        destroy_notify: GDestroyNotify,
18290    );
18291}
18292extern "C" {
18293    pub fn g_option_context_set_translation_domain(
18294        context: *mut GOptionContext,
18295        domain: *const gchar,
18296    );
18297}
18298extern "C" {
18299    pub fn g_option_context_add_group(context: *mut GOptionContext, group: *mut GOptionGroup);
18300}
18301extern "C" {
18302    pub fn g_option_context_set_main_group(context: *mut GOptionContext, group: *mut GOptionGroup);
18303}
18304extern "C" {
18305    pub fn g_option_context_get_main_group(context: *mut GOptionContext) -> *mut GOptionGroup;
18306}
18307extern "C" {
18308    pub fn g_option_context_get_help(
18309        context: *mut GOptionContext,
18310        main_help: gboolean,
18311        group: *mut GOptionGroup,
18312    ) -> *mut gchar;
18313}
18314extern "C" {
18315    pub fn g_option_group_new(
18316        name: *const gchar,
18317        description: *const gchar,
18318        help_description: *const gchar,
18319        user_data: gpointer,
18320        destroy: GDestroyNotify,
18321    ) -> *mut GOptionGroup;
18322}
18323extern "C" {
18324    pub fn g_option_group_set_parse_hooks(
18325        group: *mut GOptionGroup,
18326        pre_parse_func: GOptionParseFunc,
18327        post_parse_func: GOptionParseFunc,
18328    );
18329}
18330extern "C" {
18331    pub fn g_option_group_set_error_hook(group: *mut GOptionGroup, error_func: GOptionErrorFunc);
18332}
18333extern "C" {
18334    pub fn g_option_group_free(group: *mut GOptionGroup);
18335}
18336extern "C" {
18337    pub fn g_option_group_ref(group: *mut GOptionGroup) -> *mut GOptionGroup;
18338}
18339extern "C" {
18340    pub fn g_option_group_unref(group: *mut GOptionGroup);
18341}
18342extern "C" {
18343    pub fn g_option_group_add_entries(group: *mut GOptionGroup, entries: *const GOptionEntry);
18344}
18345extern "C" {
18346    pub fn g_option_group_set_translate_func(
18347        group: *mut GOptionGroup,
18348        func: GTranslateFunc,
18349        data: gpointer,
18350        destroy_notify: GDestroyNotify,
18351    );
18352}
18353extern "C" {
18354    pub fn g_option_group_set_translation_domain(group: *mut GOptionGroup, domain: *const gchar);
18355}
18356#[repr(C)]
18357#[derive(Debug, Copy, Clone)]
18358pub struct _GPatternSpec {
18359    _unused: [u8; 0],
18360}
18361pub type GPatternSpec = _GPatternSpec;
18362extern "C" {
18363    pub fn g_pattern_spec_new(pattern: *const gchar) -> *mut GPatternSpec;
18364}
18365extern "C" {
18366    pub fn g_pattern_spec_free(pspec: *mut GPatternSpec);
18367}
18368extern "C" {
18369    pub fn g_pattern_spec_equal(pspec1: *mut GPatternSpec, pspec2: *mut GPatternSpec) -> gboolean;
18370}
18371extern "C" {
18372    pub fn g_pattern_match(
18373        pspec: *mut GPatternSpec,
18374        string_length: guint,
18375        string: *const gchar,
18376        string_reversed: *const gchar,
18377    ) -> gboolean;
18378}
18379extern "C" {
18380    pub fn g_pattern_match_string(pspec: *mut GPatternSpec, string: *const gchar) -> gboolean;
18381}
18382extern "C" {
18383    pub fn g_pattern_match_simple(pattern: *const gchar, string: *const gchar) -> gboolean;
18384}
18385extern "C" {
18386    pub fn g_spaced_primes_closest(num: guint) -> guint;
18387}
18388extern "C" {
18389    pub fn g_qsort_with_data(
18390        pbase: gconstpointer,
18391        total_elems: gint,
18392        size: gsize,
18393        compare_func: GCompareDataFunc,
18394        user_data: gpointer,
18395    );
18396}
18397pub type GQueue = _GQueue;
18398#[doc = " GQueue:"]
18399#[doc = " @head: a pointer to the first element of the queue"]
18400#[doc = " @tail: a pointer to the last element of the queue"]
18401#[doc = " @length: the number of elements in the queue"]
18402#[doc = ""]
18403#[doc = " Contains the public fields of a"]
18404#[doc = " [Queue][glib-Double-ended-Queues]."]
18405#[repr(C)]
18406#[derive(Debug, Copy, Clone)]
18407pub struct _GQueue {
18408    pub head: *mut GList,
18409    pub tail: *mut GList,
18410    pub length: guint,
18411}
18412#[test]
18413fn bindgen_test_layout__GQueue() {
18414    assert_eq!(
18415        ::std::mem::size_of::<_GQueue>(),
18416        24usize,
18417        concat!("Size of: ", stringify!(_GQueue))
18418    );
18419    assert_eq!(
18420        ::std::mem::align_of::<_GQueue>(),
18421        8usize,
18422        concat!("Alignment of ", stringify!(_GQueue))
18423    );
18424    assert_eq!(
18425        unsafe { &(*(::std::ptr::null::<_GQueue>())).head as *const _ as usize },
18426        0usize,
18427        concat!(
18428            "Offset of field: ",
18429            stringify!(_GQueue),
18430            "::",
18431            stringify!(head)
18432        )
18433    );
18434    assert_eq!(
18435        unsafe { &(*(::std::ptr::null::<_GQueue>())).tail as *const _ as usize },
18436        8usize,
18437        concat!(
18438            "Offset of field: ",
18439            stringify!(_GQueue),
18440            "::",
18441            stringify!(tail)
18442        )
18443    );
18444    assert_eq!(
18445        unsafe { &(*(::std::ptr::null::<_GQueue>())).length as *const _ as usize },
18446        16usize,
18447        concat!(
18448            "Offset of field: ",
18449            stringify!(_GQueue),
18450            "::",
18451            stringify!(length)
18452        )
18453    );
18454}
18455extern "C" {
18456    pub fn g_queue_new() -> *mut GQueue;
18457}
18458extern "C" {
18459    pub fn g_queue_free(queue: *mut GQueue);
18460}
18461extern "C" {
18462    pub fn g_queue_free_full(queue: *mut GQueue, free_func: GDestroyNotify);
18463}
18464extern "C" {
18465    pub fn g_queue_init(queue: *mut GQueue);
18466}
18467extern "C" {
18468    pub fn g_queue_clear(queue: *mut GQueue);
18469}
18470extern "C" {
18471    pub fn g_queue_is_empty(queue: *mut GQueue) -> gboolean;
18472}
18473extern "C" {
18474    pub fn g_queue_get_length(queue: *mut GQueue) -> guint;
18475}
18476extern "C" {
18477    pub fn g_queue_reverse(queue: *mut GQueue);
18478}
18479extern "C" {
18480    pub fn g_queue_copy(queue: *mut GQueue) -> *mut GQueue;
18481}
18482extern "C" {
18483    pub fn g_queue_foreach(queue: *mut GQueue, func: GFunc, user_data: gpointer);
18484}
18485extern "C" {
18486    pub fn g_queue_find(queue: *mut GQueue, data: gconstpointer) -> *mut GList;
18487}
18488extern "C" {
18489    pub fn g_queue_find_custom(
18490        queue: *mut GQueue,
18491        data: gconstpointer,
18492        func: GCompareFunc,
18493    ) -> *mut GList;
18494}
18495extern "C" {
18496    pub fn g_queue_sort(queue: *mut GQueue, compare_func: GCompareDataFunc, user_data: gpointer);
18497}
18498extern "C" {
18499    pub fn g_queue_push_head(queue: *mut GQueue, data: gpointer);
18500}
18501extern "C" {
18502    pub fn g_queue_push_tail(queue: *mut GQueue, data: gpointer);
18503}
18504extern "C" {
18505    pub fn g_queue_push_nth(queue: *mut GQueue, data: gpointer, n: gint);
18506}
18507extern "C" {
18508    pub fn g_queue_pop_head(queue: *mut GQueue) -> gpointer;
18509}
18510extern "C" {
18511    pub fn g_queue_pop_tail(queue: *mut GQueue) -> gpointer;
18512}
18513extern "C" {
18514    pub fn g_queue_pop_nth(queue: *mut GQueue, n: guint) -> gpointer;
18515}
18516extern "C" {
18517    pub fn g_queue_peek_head(queue: *mut GQueue) -> gpointer;
18518}
18519extern "C" {
18520    pub fn g_queue_peek_tail(queue: *mut GQueue) -> gpointer;
18521}
18522extern "C" {
18523    pub fn g_queue_peek_nth(queue: *mut GQueue, n: guint) -> gpointer;
18524}
18525extern "C" {
18526    pub fn g_queue_index(queue: *mut GQueue, data: gconstpointer) -> gint;
18527}
18528extern "C" {
18529    pub fn g_queue_remove(queue: *mut GQueue, data: gconstpointer) -> gboolean;
18530}
18531extern "C" {
18532    pub fn g_queue_remove_all(queue: *mut GQueue, data: gconstpointer) -> guint;
18533}
18534extern "C" {
18535    pub fn g_queue_insert_before(queue: *mut GQueue, sibling: *mut GList, data: gpointer);
18536}
18537extern "C" {
18538    pub fn g_queue_insert_after(queue: *mut GQueue, sibling: *mut GList, data: gpointer);
18539}
18540extern "C" {
18541    pub fn g_queue_insert_sorted(
18542        queue: *mut GQueue,
18543        data: gpointer,
18544        func: GCompareDataFunc,
18545        user_data: gpointer,
18546    );
18547}
18548extern "C" {
18549    pub fn g_queue_push_head_link(queue: *mut GQueue, link_: *mut GList);
18550}
18551extern "C" {
18552    pub fn g_queue_push_tail_link(queue: *mut GQueue, link_: *mut GList);
18553}
18554extern "C" {
18555    pub fn g_queue_push_nth_link(queue: *mut GQueue, n: gint, link_: *mut GList);
18556}
18557extern "C" {
18558    pub fn g_queue_pop_head_link(queue: *mut GQueue) -> *mut GList;
18559}
18560extern "C" {
18561    pub fn g_queue_pop_tail_link(queue: *mut GQueue) -> *mut GList;
18562}
18563extern "C" {
18564    pub fn g_queue_pop_nth_link(queue: *mut GQueue, n: guint) -> *mut GList;
18565}
18566extern "C" {
18567    pub fn g_queue_peek_head_link(queue: *mut GQueue) -> *mut GList;
18568}
18569extern "C" {
18570    pub fn g_queue_peek_tail_link(queue: *mut GQueue) -> *mut GList;
18571}
18572extern "C" {
18573    pub fn g_queue_peek_nth_link(queue: *mut GQueue, n: guint) -> *mut GList;
18574}
18575extern "C" {
18576    pub fn g_queue_link_index(queue: *mut GQueue, link_: *mut GList) -> gint;
18577}
18578extern "C" {
18579    pub fn g_queue_unlink(queue: *mut GQueue, link_: *mut GList);
18580}
18581extern "C" {
18582    pub fn g_queue_delete_link(queue: *mut GQueue, link_: *mut GList);
18583}
18584#[repr(C)]
18585#[derive(Debug, Copy, Clone)]
18586pub struct _GRand {
18587    _unused: [u8; 0],
18588}
18589pub type GRand = _GRand;
18590extern "C" {
18591    pub fn g_rand_new_with_seed(seed: guint32) -> *mut GRand;
18592}
18593extern "C" {
18594    pub fn g_rand_new_with_seed_array(seed: *const guint32, seed_length: guint) -> *mut GRand;
18595}
18596extern "C" {
18597    pub fn g_rand_new() -> *mut GRand;
18598}
18599extern "C" {
18600    pub fn g_rand_free(rand_: *mut GRand);
18601}
18602extern "C" {
18603    pub fn g_rand_copy(rand_: *mut GRand) -> *mut GRand;
18604}
18605extern "C" {
18606    pub fn g_rand_set_seed(rand_: *mut GRand, seed: guint32);
18607}
18608extern "C" {
18609    pub fn g_rand_set_seed_array(rand_: *mut GRand, seed: *const guint32, seed_length: guint);
18610}
18611extern "C" {
18612    pub fn g_rand_int(rand_: *mut GRand) -> guint32;
18613}
18614extern "C" {
18615    pub fn g_rand_int_range(rand_: *mut GRand, begin: gint32, end: gint32) -> gint32;
18616}
18617extern "C" {
18618    pub fn g_rand_double(rand_: *mut GRand) -> gdouble;
18619}
18620extern "C" {
18621    pub fn g_rand_double_range(rand_: *mut GRand, begin: gdouble, end: gdouble) -> gdouble;
18622}
18623extern "C" {
18624    pub fn g_random_set_seed(seed: guint32);
18625}
18626extern "C" {
18627    pub fn g_random_int() -> guint32;
18628}
18629extern "C" {
18630    pub fn g_random_int_range(begin: gint32, end: gint32) -> gint32;
18631}
18632extern "C" {
18633    pub fn g_random_double() -> gdouble;
18634}
18635extern "C" {
18636    pub fn g_random_double_range(begin: gdouble, end: gdouble) -> gdouble;
18637}
18638pub const GRegexError_G_REGEX_ERROR_COMPILE: GRegexError = 0;
18639pub const GRegexError_G_REGEX_ERROR_OPTIMIZE: GRegexError = 1;
18640pub const GRegexError_G_REGEX_ERROR_REPLACE: GRegexError = 2;
18641pub const GRegexError_G_REGEX_ERROR_MATCH: GRegexError = 3;
18642pub const GRegexError_G_REGEX_ERROR_INTERNAL: GRegexError = 4;
18643pub const GRegexError_G_REGEX_ERROR_STRAY_BACKSLASH: GRegexError = 101;
18644pub const GRegexError_G_REGEX_ERROR_MISSING_CONTROL_CHAR: GRegexError = 102;
18645pub const GRegexError_G_REGEX_ERROR_UNRECOGNIZED_ESCAPE: GRegexError = 103;
18646pub const GRegexError_G_REGEX_ERROR_QUANTIFIERS_OUT_OF_ORDER: GRegexError = 104;
18647pub const GRegexError_G_REGEX_ERROR_QUANTIFIER_TOO_BIG: GRegexError = 105;
18648pub const GRegexError_G_REGEX_ERROR_UNTERMINATED_CHARACTER_CLASS: GRegexError = 106;
18649pub const GRegexError_G_REGEX_ERROR_INVALID_ESCAPE_IN_CHARACTER_CLASS: GRegexError = 107;
18650pub const GRegexError_G_REGEX_ERROR_RANGE_OUT_OF_ORDER: GRegexError = 108;
18651pub const GRegexError_G_REGEX_ERROR_NOTHING_TO_REPEAT: GRegexError = 109;
18652pub const GRegexError_G_REGEX_ERROR_UNRECOGNIZED_CHARACTER: GRegexError = 112;
18653pub const GRegexError_G_REGEX_ERROR_POSIX_NAMED_CLASS_OUTSIDE_CLASS: GRegexError = 113;
18654pub const GRegexError_G_REGEX_ERROR_UNMATCHED_PARENTHESIS: GRegexError = 114;
18655pub const GRegexError_G_REGEX_ERROR_INEXISTENT_SUBPATTERN_REFERENCE: GRegexError = 115;
18656pub const GRegexError_G_REGEX_ERROR_UNTERMINATED_COMMENT: GRegexError = 118;
18657pub const GRegexError_G_REGEX_ERROR_EXPRESSION_TOO_LARGE: GRegexError = 120;
18658pub const GRegexError_G_REGEX_ERROR_MEMORY_ERROR: GRegexError = 121;
18659pub const GRegexError_G_REGEX_ERROR_VARIABLE_LENGTH_LOOKBEHIND: GRegexError = 125;
18660pub const GRegexError_G_REGEX_ERROR_MALFORMED_CONDITION: GRegexError = 126;
18661pub const GRegexError_G_REGEX_ERROR_TOO_MANY_CONDITIONAL_BRANCHES: GRegexError = 127;
18662pub const GRegexError_G_REGEX_ERROR_ASSERTION_EXPECTED: GRegexError = 128;
18663pub const GRegexError_G_REGEX_ERROR_UNKNOWN_POSIX_CLASS_NAME: GRegexError = 130;
18664pub const GRegexError_G_REGEX_ERROR_POSIX_COLLATING_ELEMENTS_NOT_SUPPORTED: GRegexError = 131;
18665pub const GRegexError_G_REGEX_ERROR_HEX_CODE_TOO_LARGE: GRegexError = 134;
18666pub const GRegexError_G_REGEX_ERROR_INVALID_CONDITION: GRegexError = 135;
18667pub const GRegexError_G_REGEX_ERROR_SINGLE_BYTE_MATCH_IN_LOOKBEHIND: GRegexError = 136;
18668pub const GRegexError_G_REGEX_ERROR_INFINITE_LOOP: GRegexError = 140;
18669pub const GRegexError_G_REGEX_ERROR_MISSING_SUBPATTERN_NAME_TERMINATOR: GRegexError = 142;
18670pub const GRegexError_G_REGEX_ERROR_DUPLICATE_SUBPATTERN_NAME: GRegexError = 143;
18671pub const GRegexError_G_REGEX_ERROR_MALFORMED_PROPERTY: GRegexError = 146;
18672pub const GRegexError_G_REGEX_ERROR_UNKNOWN_PROPERTY: GRegexError = 147;
18673pub const GRegexError_G_REGEX_ERROR_SUBPATTERN_NAME_TOO_LONG: GRegexError = 148;
18674pub const GRegexError_G_REGEX_ERROR_TOO_MANY_SUBPATTERNS: GRegexError = 149;
18675pub const GRegexError_G_REGEX_ERROR_INVALID_OCTAL_VALUE: GRegexError = 151;
18676pub const GRegexError_G_REGEX_ERROR_TOO_MANY_BRANCHES_IN_DEFINE: GRegexError = 154;
18677pub const GRegexError_G_REGEX_ERROR_DEFINE_REPETION: GRegexError = 155;
18678pub const GRegexError_G_REGEX_ERROR_INCONSISTENT_NEWLINE_OPTIONS: GRegexError = 156;
18679pub const GRegexError_G_REGEX_ERROR_MISSING_BACK_REFERENCE: GRegexError = 157;
18680pub const GRegexError_G_REGEX_ERROR_INVALID_RELATIVE_REFERENCE: GRegexError = 158;
18681pub const GRegexError_G_REGEX_ERROR_BACKTRACKING_CONTROL_VERB_ARGUMENT_FORBIDDEN: GRegexError = 159;
18682pub const GRegexError_G_REGEX_ERROR_UNKNOWN_BACKTRACKING_CONTROL_VERB: GRegexError = 160;
18683pub const GRegexError_G_REGEX_ERROR_NUMBER_TOO_BIG: GRegexError = 161;
18684pub const GRegexError_G_REGEX_ERROR_MISSING_SUBPATTERN_NAME: GRegexError = 162;
18685pub const GRegexError_G_REGEX_ERROR_MISSING_DIGIT: GRegexError = 163;
18686pub const GRegexError_G_REGEX_ERROR_INVALID_DATA_CHARACTER: GRegexError = 164;
18687pub const GRegexError_G_REGEX_ERROR_EXTRA_SUBPATTERN_NAME: GRegexError = 165;
18688pub const GRegexError_G_REGEX_ERROR_BACKTRACKING_CONTROL_VERB_ARGUMENT_REQUIRED: GRegexError = 166;
18689pub const GRegexError_G_REGEX_ERROR_INVALID_CONTROL_CHAR: GRegexError = 168;
18690pub const GRegexError_G_REGEX_ERROR_MISSING_NAME: GRegexError = 169;
18691pub const GRegexError_G_REGEX_ERROR_NOT_SUPPORTED_IN_CLASS: GRegexError = 171;
18692pub const GRegexError_G_REGEX_ERROR_TOO_MANY_FORWARD_REFERENCES: GRegexError = 172;
18693pub const GRegexError_G_REGEX_ERROR_NAME_TOO_LONG: GRegexError = 175;
18694pub const GRegexError_G_REGEX_ERROR_CHARACTER_VALUE_TOO_LARGE: GRegexError = 176;
18695#[doc = " GRegexError:"]
18696#[doc = " @G_REGEX_ERROR_COMPILE: Compilation of the regular expression failed."]
18697#[doc = " @G_REGEX_ERROR_OPTIMIZE: Optimization of the regular expression failed."]
18698#[doc = " @G_REGEX_ERROR_REPLACE: Replacement failed due to an ill-formed replacement"]
18699#[doc = "     string."]
18700#[doc = " @G_REGEX_ERROR_MATCH: The match process failed."]
18701#[doc = " @G_REGEX_ERROR_INTERNAL: Internal error of the regular expression engine."]
18702#[doc = "     Since 2.16"]
18703#[doc = " @G_REGEX_ERROR_STRAY_BACKSLASH: \"\\\\\" at end of pattern. Since 2.16"]
18704#[doc = " @G_REGEX_ERROR_MISSING_CONTROL_CHAR: \"\\\\c\" at end of pattern. Since 2.16"]
18705#[doc = " @G_REGEX_ERROR_UNRECOGNIZED_ESCAPE: Unrecognized character follows \"\\\\\"."]
18706#[doc = "     Since 2.16"]
18707#[doc = " @G_REGEX_ERROR_QUANTIFIERS_OUT_OF_ORDER: Numbers out of order in \"{}\""]
18708#[doc = "     quantifier. Since 2.16"]
18709#[doc = " @G_REGEX_ERROR_QUANTIFIER_TOO_BIG: Number too big in \"{}\" quantifier."]
18710#[doc = "     Since 2.16"]
18711#[doc = " @G_REGEX_ERROR_UNTERMINATED_CHARACTER_CLASS: Missing terminating \"]\" for"]
18712#[doc = "     character class. Since 2.16"]
18713#[doc = " @G_REGEX_ERROR_INVALID_ESCAPE_IN_CHARACTER_CLASS: Invalid escape sequence"]
18714#[doc = "     in character class. Since 2.16"]
18715#[doc = " @G_REGEX_ERROR_RANGE_OUT_OF_ORDER: Range out of order in character class."]
18716#[doc = "     Since 2.16"]
18717#[doc = " @G_REGEX_ERROR_NOTHING_TO_REPEAT: Nothing to repeat. Since 2.16"]
18718#[doc = " @G_REGEX_ERROR_UNRECOGNIZED_CHARACTER: Unrecognized character after \"(?\","]
18719#[doc = "     \"(?<\" or \"(?P\". Since 2.16"]
18720#[doc = " @G_REGEX_ERROR_POSIX_NAMED_CLASS_OUTSIDE_CLASS: POSIX named classes are"]
18721#[doc = "     supported only within a class. Since 2.16"]
18722#[doc = " @G_REGEX_ERROR_UNMATCHED_PARENTHESIS: Missing terminating \")\" or \")\""]
18723#[doc = "     without opening \"(\". Since 2.16"]
18724#[doc = " @G_REGEX_ERROR_INEXISTENT_SUBPATTERN_REFERENCE: Reference to non-existent"]
18725#[doc = "     subpattern. Since 2.16"]
18726#[doc = " @G_REGEX_ERROR_UNTERMINATED_COMMENT: Missing terminating \")\" after comment."]
18727#[doc = "     Since 2.16"]
18728#[doc = " @G_REGEX_ERROR_EXPRESSION_TOO_LARGE: Regular expression too large."]
18729#[doc = "     Since 2.16"]
18730#[doc = " @G_REGEX_ERROR_MEMORY_ERROR: Failed to get memory. Since 2.16"]
18731#[doc = " @G_REGEX_ERROR_VARIABLE_LENGTH_LOOKBEHIND: Lookbehind assertion is not"]
18732#[doc = "     fixed length. Since 2.16"]
18733#[doc = " @G_REGEX_ERROR_MALFORMED_CONDITION: Malformed number or name after \"(?(\"."]
18734#[doc = "     Since 2.16"]
18735#[doc = " @G_REGEX_ERROR_TOO_MANY_CONDITIONAL_BRANCHES: Conditional group contains"]
18736#[doc = "     more than two branches. Since 2.16"]
18737#[doc = " @G_REGEX_ERROR_ASSERTION_EXPECTED: Assertion expected after \"(?(\"."]
18738#[doc = "     Since 2.16"]
18739#[doc = " @G_REGEX_ERROR_UNKNOWN_POSIX_CLASS_NAME: Unknown POSIX class name."]
18740#[doc = "     Since 2.16"]
18741#[doc = " @G_REGEX_ERROR_POSIX_COLLATING_ELEMENTS_NOT_SUPPORTED: POSIX collating"]
18742#[doc = "     elements are not supported. Since 2.16"]
18743#[doc = " @G_REGEX_ERROR_HEX_CODE_TOO_LARGE: Character value in \"\\\\x{...}\" sequence"]
18744#[doc = "     is too large. Since 2.16"]
18745#[doc = " @G_REGEX_ERROR_INVALID_CONDITION: Invalid condition \"(?(0)\". Since 2.16"]
18746#[doc = " @G_REGEX_ERROR_SINGLE_BYTE_MATCH_IN_LOOKBEHIND: \\\\C not allowed in"]
18747#[doc = "     lookbehind assertion. Since 2.16"]
18748#[doc = " @G_REGEX_ERROR_INFINITE_LOOP: Recursive call could loop indefinitely."]
18749#[doc = "     Since 2.16"]
18750#[doc = " @G_REGEX_ERROR_MISSING_SUBPATTERN_NAME_TERMINATOR: Missing terminator"]
18751#[doc = "     in subpattern name. Since 2.16"]
18752#[doc = " @G_REGEX_ERROR_DUPLICATE_SUBPATTERN_NAME: Two named subpatterns have"]
18753#[doc = "     the same name. Since 2.16"]
18754#[doc = " @G_REGEX_ERROR_MALFORMED_PROPERTY: Malformed \"\\\\P\" or \"\\\\p\" sequence."]
18755#[doc = "     Since 2.16"]
18756#[doc = " @G_REGEX_ERROR_UNKNOWN_PROPERTY: Unknown property name after \"\\\\P\" or"]
18757#[doc = "     \"\\\\p\". Since 2.16"]
18758#[doc = " @G_REGEX_ERROR_SUBPATTERN_NAME_TOO_LONG: Subpattern name is too long"]
18759#[doc = "     (maximum 32 characters). Since 2.16"]
18760#[doc = " @G_REGEX_ERROR_TOO_MANY_SUBPATTERNS: Too many named subpatterns (maximum"]
18761#[doc = "     10,000). Since 2.16"]
18762#[doc = " @G_REGEX_ERROR_INVALID_OCTAL_VALUE: Octal value is greater than \"\\\\377\"."]
18763#[doc = "     Since 2.16"]
18764#[doc = " @G_REGEX_ERROR_TOO_MANY_BRANCHES_IN_DEFINE: \"DEFINE\" group contains more"]
18765#[doc = "     than one branch. Since 2.16"]
18766#[doc = " @G_REGEX_ERROR_DEFINE_REPETION: Repeating a \"DEFINE\" group is not allowed."]
18767#[doc = "     This error is never raised. Since: 2.16 Deprecated: 2.34"]
18768#[doc = " @G_REGEX_ERROR_INCONSISTENT_NEWLINE_OPTIONS: Inconsistent newline options."]
18769#[doc = "     Since 2.16"]
18770#[doc = " @G_REGEX_ERROR_MISSING_BACK_REFERENCE: \"\\\\g\" is not followed by a braced,"]
18771#[doc = "      angle-bracketed, or quoted name or number, or by a plain number. Since: 2.16"]
18772#[doc = " @G_REGEX_ERROR_INVALID_RELATIVE_REFERENCE: relative reference must not be zero. Since: 2.34"]
18773#[doc = " @G_REGEX_ERROR_BACKTRACKING_CONTROL_VERB_ARGUMENT_FORBIDDEN: the backtracing"]
18774#[doc = "     control verb used does not allow an argument. Since: 2.34"]
18775#[doc = " @G_REGEX_ERROR_UNKNOWN_BACKTRACKING_CONTROL_VERB: unknown backtracing"]
18776#[doc = "     control verb. Since: 2.34"]
18777#[doc = " @G_REGEX_ERROR_NUMBER_TOO_BIG: number is too big in escape sequence. Since: 2.34"]
18778#[doc = " @G_REGEX_ERROR_MISSING_SUBPATTERN_NAME: Missing subpattern name. Since: 2.34"]
18779#[doc = " @G_REGEX_ERROR_MISSING_DIGIT: Missing digit. Since 2.34"]
18780#[doc = " @G_REGEX_ERROR_INVALID_DATA_CHARACTER: In JavaScript compatibility mode,"]
18781#[doc = "     \"[\" is an invalid data character. Since: 2.34"]
18782#[doc = " @G_REGEX_ERROR_EXTRA_SUBPATTERN_NAME: different names for subpatterns of the"]
18783#[doc = "     same number are not allowed. Since: 2.34"]
18784#[doc = " @G_REGEX_ERROR_BACKTRACKING_CONTROL_VERB_ARGUMENT_REQUIRED: the backtracing control"]
18785#[doc = "     verb requires an argument. Since: 2.34"]
18786#[doc = " @G_REGEX_ERROR_INVALID_CONTROL_CHAR: \"\\\\c\" must be followed by an ASCII"]
18787#[doc = "     character. Since: 2.34"]
18788#[doc = " @G_REGEX_ERROR_MISSING_NAME: \"\\\\k\" is not followed by a braced, angle-bracketed, or"]
18789#[doc = "     quoted name. Since: 2.34"]
18790#[doc = " @G_REGEX_ERROR_NOT_SUPPORTED_IN_CLASS: \"\\\\N\" is not supported in a class. Since: 2.34"]
18791#[doc = " @G_REGEX_ERROR_TOO_MANY_FORWARD_REFERENCES: too many forward references. Since: 2.34"]
18792#[doc = " @G_REGEX_ERROR_NAME_TOO_LONG: the name is too long in \"(*MARK)\", \"(*PRUNE)\","]
18793#[doc = "     \"(*SKIP)\", or \"(*THEN)\". Since: 2.34"]
18794#[doc = " @G_REGEX_ERROR_CHARACTER_VALUE_TOO_LARGE: the character value in the \\\\u sequence is"]
18795#[doc = "     too large. Since: 2.34"]
18796#[doc = ""]
18797#[doc = " Error codes returned by regular expressions functions."]
18798#[doc = ""]
18799#[doc = " Since: 2.14"]
18800pub type GRegexError = u32;
18801extern "C" {
18802    pub fn g_regex_error_quark() -> GQuark;
18803}
18804pub const GRegexCompileFlags_G_REGEX_CASELESS: GRegexCompileFlags = 1;
18805pub const GRegexCompileFlags_G_REGEX_MULTILINE: GRegexCompileFlags = 2;
18806pub const GRegexCompileFlags_G_REGEX_DOTALL: GRegexCompileFlags = 4;
18807pub const GRegexCompileFlags_G_REGEX_EXTENDED: GRegexCompileFlags = 8;
18808pub const GRegexCompileFlags_G_REGEX_ANCHORED: GRegexCompileFlags = 16;
18809pub const GRegexCompileFlags_G_REGEX_DOLLAR_ENDONLY: GRegexCompileFlags = 32;
18810pub const GRegexCompileFlags_G_REGEX_UNGREEDY: GRegexCompileFlags = 512;
18811pub const GRegexCompileFlags_G_REGEX_RAW: GRegexCompileFlags = 2048;
18812pub const GRegexCompileFlags_G_REGEX_NO_AUTO_CAPTURE: GRegexCompileFlags = 4096;
18813pub const GRegexCompileFlags_G_REGEX_OPTIMIZE: GRegexCompileFlags = 8192;
18814pub const GRegexCompileFlags_G_REGEX_FIRSTLINE: GRegexCompileFlags = 262144;
18815pub const GRegexCompileFlags_G_REGEX_DUPNAMES: GRegexCompileFlags = 524288;
18816pub const GRegexCompileFlags_G_REGEX_NEWLINE_CR: GRegexCompileFlags = 1048576;
18817pub const GRegexCompileFlags_G_REGEX_NEWLINE_LF: GRegexCompileFlags = 2097152;
18818pub const GRegexCompileFlags_G_REGEX_NEWLINE_CRLF: GRegexCompileFlags = 3145728;
18819pub const GRegexCompileFlags_G_REGEX_NEWLINE_ANYCRLF: GRegexCompileFlags = 5242880;
18820pub const GRegexCompileFlags_G_REGEX_BSR_ANYCRLF: GRegexCompileFlags = 8388608;
18821pub const GRegexCompileFlags_G_REGEX_JAVASCRIPT_COMPAT: GRegexCompileFlags = 33554432;
18822#[doc = " GRegexCompileFlags:"]
18823#[doc = " @G_REGEX_CASELESS: Letters in the pattern match both upper- and"]
18824#[doc = "     lowercase letters. This option can be changed within a pattern"]
18825#[doc = "     by a \"(?i)\" option setting."]
18826#[doc = " @G_REGEX_MULTILINE: By default, GRegex treats the strings as consisting"]
18827#[doc = "     of a single line of characters (even if it actually contains"]
18828#[doc = "     newlines). The \"start of line\" metacharacter (\"^\") matches only"]
18829#[doc = "     at the start of the string, while the \"end of line\" metacharacter"]
18830#[doc = "     (\"$\") matches only at the end of the string, or before a terminating"]
18831#[doc = "     newline (unless #G_REGEX_DOLLAR_ENDONLY is set). When"]
18832#[doc = "     #G_REGEX_MULTILINE is set, the \"start of line\" and \"end of line\""]
18833#[doc = "     constructs match immediately following or immediately before any"]
18834#[doc = "     newline in the string, respectively, as well as at the very start"]
18835#[doc = "     and end. This can be changed within a pattern by a \"(?m)\" option"]
18836#[doc = "     setting."]
18837#[doc = " @G_REGEX_DOTALL: A dot metacharacter (\".\") in the pattern matches all"]
18838#[doc = "     characters, including newlines. Without it, newlines are excluded."]
18839#[doc = "     This option can be changed within a pattern by a (\"?s\") option setting."]
18840#[doc = " @G_REGEX_EXTENDED: Whitespace data characters in the pattern are"]
18841#[doc = "     totally ignored except when escaped or inside a character class."]
18842#[doc = "     Whitespace does not include the VT character (code 11). In addition,"]
18843#[doc = "     characters between an unescaped \"#\" outside a character class and"]
18844#[doc = "     the next newline character, inclusive, are also ignored. This can"]
18845#[doc = "     be changed within a pattern by a \"(?x)\" option setting."]
18846#[doc = " @G_REGEX_ANCHORED: The pattern is forced to be \"anchored\", that is,"]
18847#[doc = "     it is constrained to match only at the first matching point in the"]
18848#[doc = "     string that is being searched. This effect can also be achieved by"]
18849#[doc = "     appropriate constructs in the pattern itself such as the \"^\""]
18850#[doc = "     metacharacter."]
18851#[doc = " @G_REGEX_DOLLAR_ENDONLY: A dollar metacharacter (\"$\") in the pattern"]
18852#[doc = "     matches only at the end of the string. Without this option, a"]
18853#[doc = "     dollar also matches immediately before the final character if"]
18854#[doc = "     it is a newline (but not before any other newlines). This option"]
18855#[doc = "     is ignored if #G_REGEX_MULTILINE is set."]
18856#[doc = " @G_REGEX_UNGREEDY: Inverts the \"greediness\" of the quantifiers so that"]
18857#[doc = "     they are not greedy by default, but become greedy if followed by \"?\"."]
18858#[doc = "     It can also be set by a \"(?U)\" option setting within the pattern."]
18859#[doc = " @G_REGEX_RAW: Usually strings must be valid UTF-8 strings, using this"]
18860#[doc = "     flag they are considered as a raw sequence of bytes."]
18861#[doc = " @G_REGEX_NO_AUTO_CAPTURE: Disables the use of numbered capturing"]
18862#[doc = "     parentheses in the pattern. Any opening parenthesis that is not"]
18863#[doc = "     followed by \"?\" behaves as if it were followed by \"?:\" but named"]
18864#[doc = "     parentheses can still be used for capturing (and they acquire numbers"]
18865#[doc = "     in the usual way)."]
18866#[doc = " @G_REGEX_OPTIMIZE: Optimize the regular expression. If the pattern will"]
18867#[doc = "     be used many times, then it may be worth the effort to optimize it"]
18868#[doc = "     to improve the speed of matches."]
18869#[doc = " @G_REGEX_FIRSTLINE: Limits an unanchored pattern to match before (or at) the"]
18870#[doc = "     first newline. Since: 2.34"]
18871#[doc = " @G_REGEX_DUPNAMES: Names used to identify capturing subpatterns need not"]
18872#[doc = "     be unique. This can be helpful for certain types of pattern when it"]
18873#[doc = "     is known that only one instance of the named subpattern can ever be"]
18874#[doc = "     matched."]
18875#[doc = " @G_REGEX_NEWLINE_CR: Usually any newline character or character sequence is"]
18876#[doc = "     recognized. If this option is set, the only recognized newline character"]
18877#[doc = "     is '\\r'."]
18878#[doc = " @G_REGEX_NEWLINE_LF: Usually any newline character or character sequence is"]
18879#[doc = "     recognized. If this option is set, the only recognized newline character"]
18880#[doc = "     is '\\n'."]
18881#[doc = " @G_REGEX_NEWLINE_CRLF: Usually any newline character or character sequence is"]
18882#[doc = "     recognized. If this option is set, the only recognized newline character"]
18883#[doc = "     sequence is '\\r\\n'."]
18884#[doc = " @G_REGEX_NEWLINE_ANYCRLF: Usually any newline character or character sequence"]
18885#[doc = "     is recognized. If this option is set, the only recognized newline character"]
18886#[doc = "     sequences are '\\r', '\\n', and '\\r\\n'. Since: 2.34"]
18887#[doc = " @G_REGEX_BSR_ANYCRLF: Usually any newline character or character sequence"]
18888#[doc = "     is recognised. If this option is set, then \"\\R\" only recognizes the newline"]
18889#[doc = "    characters '\\r', '\\n' and '\\r\\n'. Since: 2.34"]
18890#[doc = " @G_REGEX_JAVASCRIPT_COMPAT: Changes behaviour so that it is compatible with"]
18891#[doc = "     JavaScript rather than PCRE. Since: 2.34"]
18892#[doc = ""]
18893#[doc = " Flags specifying compile-time options."]
18894#[doc = ""]
18895#[doc = " Since: 2.14"]
18896pub type GRegexCompileFlags = u32;
18897pub const GRegexMatchFlags_G_REGEX_MATCH_ANCHORED: GRegexMatchFlags = 16;
18898pub const GRegexMatchFlags_G_REGEX_MATCH_NOTBOL: GRegexMatchFlags = 128;
18899pub const GRegexMatchFlags_G_REGEX_MATCH_NOTEOL: GRegexMatchFlags = 256;
18900pub const GRegexMatchFlags_G_REGEX_MATCH_NOTEMPTY: GRegexMatchFlags = 1024;
18901pub const GRegexMatchFlags_G_REGEX_MATCH_PARTIAL: GRegexMatchFlags = 32768;
18902pub const GRegexMatchFlags_G_REGEX_MATCH_NEWLINE_CR: GRegexMatchFlags = 1048576;
18903pub const GRegexMatchFlags_G_REGEX_MATCH_NEWLINE_LF: GRegexMatchFlags = 2097152;
18904pub const GRegexMatchFlags_G_REGEX_MATCH_NEWLINE_CRLF: GRegexMatchFlags = 3145728;
18905pub const GRegexMatchFlags_G_REGEX_MATCH_NEWLINE_ANY: GRegexMatchFlags = 4194304;
18906pub const GRegexMatchFlags_G_REGEX_MATCH_NEWLINE_ANYCRLF: GRegexMatchFlags = 5242880;
18907pub const GRegexMatchFlags_G_REGEX_MATCH_BSR_ANYCRLF: GRegexMatchFlags = 8388608;
18908pub const GRegexMatchFlags_G_REGEX_MATCH_BSR_ANY: GRegexMatchFlags = 16777216;
18909pub const GRegexMatchFlags_G_REGEX_MATCH_PARTIAL_SOFT: GRegexMatchFlags = 32768;
18910pub const GRegexMatchFlags_G_REGEX_MATCH_PARTIAL_HARD: GRegexMatchFlags = 134217728;
18911pub const GRegexMatchFlags_G_REGEX_MATCH_NOTEMPTY_ATSTART: GRegexMatchFlags = 268435456;
18912#[doc = " GRegexMatchFlags:"]
18913#[doc = " @G_REGEX_MATCH_ANCHORED: The pattern is forced to be \"anchored\", that is,"]
18914#[doc = "     it is constrained to match only at the first matching point in the"]
18915#[doc = "     string that is being searched. This effect can also be achieved by"]
18916#[doc = "     appropriate constructs in the pattern itself such as the \"^\""]
18917#[doc = "     metacharacter."]
18918#[doc = " @G_REGEX_MATCH_NOTBOL: Specifies that first character of the string is"]
18919#[doc = "     not the beginning of a line, so the circumflex metacharacter should"]
18920#[doc = "     not match before it. Setting this without #G_REGEX_MULTILINE (at"]
18921#[doc = "     compile time) causes circumflex never to match. This option affects"]
18922#[doc = "     only the behaviour of the circumflex metacharacter, it does not"]
18923#[doc = "     affect \"\\A\"."]
18924#[doc = " @G_REGEX_MATCH_NOTEOL: Specifies that the end of the subject string is"]
18925#[doc = "     not the end of a line, so the dollar metacharacter should not match"]
18926#[doc = "     it nor (except in multiline mode) a newline immediately before it."]
18927#[doc = "     Setting this without #G_REGEX_MULTILINE (at compile time) causes"]
18928#[doc = "     dollar never to match. This option affects only the behaviour of"]
18929#[doc = "     the dollar metacharacter, it does not affect \"\\Z\" or \"\\z\"."]
18930#[doc = " @G_REGEX_MATCH_NOTEMPTY: An empty string is not considered to be a valid"]
18931#[doc = "     match if this option is set. If there are alternatives in the pattern,"]
18932#[doc = "     they are tried. If all the alternatives match the empty string, the"]
18933#[doc = "     entire match fails. For example, if the pattern \"a?b?\" is applied to"]
18934#[doc = "     a string not beginning with \"a\" or \"b\", it matches the empty string"]
18935#[doc = "     at the start of the string. With this flag set, this match is not"]
18936#[doc = "     valid, so GRegex searches further into the string for occurrences"]
18937#[doc = "     of \"a\" or \"b\"."]
18938#[doc = " @G_REGEX_MATCH_PARTIAL: Turns on the partial matching feature, for more"]
18939#[doc = "     documentation on partial matching see g_match_info_is_partial_match()."]
18940#[doc = " @G_REGEX_MATCH_NEWLINE_CR: Overrides the newline definition set when"]
18941#[doc = "     creating a new #GRegex, setting the '\\r' character as line terminator."]
18942#[doc = " @G_REGEX_MATCH_NEWLINE_LF: Overrides the newline definition set when"]
18943#[doc = "     creating a new #GRegex, setting the '\\n' character as line terminator."]
18944#[doc = " @G_REGEX_MATCH_NEWLINE_CRLF: Overrides the newline definition set when"]
18945#[doc = "     creating a new #GRegex, setting the '\\r\\n' characters sequence as line terminator."]
18946#[doc = " @G_REGEX_MATCH_NEWLINE_ANY: Overrides the newline definition set when"]
18947#[doc = "     creating a new #GRegex, any Unicode newline sequence"]
18948#[doc = "     is recognised as a newline. These are '\\r', '\\n' and '\\rn', and the"]
18949#[doc = "     single characters U+000B LINE TABULATION, U+000C FORM FEED (FF),"]
18950#[doc = "     U+0085 NEXT LINE (NEL), U+2028 LINE SEPARATOR and"]
18951#[doc = "     U+2029 PARAGRAPH SEPARATOR."]
18952#[doc = " @G_REGEX_MATCH_NEWLINE_ANYCRLF: Overrides the newline definition set when"]
18953#[doc = "     creating a new #GRegex; any '\\r', '\\n', or '\\r\\n' character sequence"]
18954#[doc = "     is recognized as a newline. Since: 2.34"]
18955#[doc = " @G_REGEX_MATCH_BSR_ANYCRLF: Overrides the newline definition for \"\\R\" set when"]
18956#[doc = "     creating a new #GRegex; only '\\r', '\\n', or '\\r\\n' character sequences"]
18957#[doc = "     are recognized as a newline by \"\\R\". Since: 2.34"]
18958#[doc = " @G_REGEX_MATCH_BSR_ANY: Overrides the newline definition for \"\\R\" set when"]
18959#[doc = "     creating a new #GRegex; any Unicode newline character or character sequence"]
18960#[doc = "     are recognized as a newline by \"\\R\". These are '\\r', '\\n' and '\\rn', and the"]
18961#[doc = "     single characters U+000B LINE TABULATION, U+000C FORM FEED (FF),"]
18962#[doc = "     U+0085 NEXT LINE (NEL), U+2028 LINE SEPARATOR and"]
18963#[doc = "     U+2029 PARAGRAPH SEPARATOR. Since: 2.34"]
18964#[doc = " @G_REGEX_MATCH_PARTIAL_SOFT: An alias for #G_REGEX_MATCH_PARTIAL. Since: 2.34"]
18965#[doc = " @G_REGEX_MATCH_PARTIAL_HARD: Turns on the partial matching feature. In contrast to"]
18966#[doc = "     to #G_REGEX_MATCH_PARTIAL_SOFT, this stops matching as soon as a partial match"]
18967#[doc = "     is found, without continuing to search for a possible complete match. See"]
18968#[doc = "     g_match_info_is_partial_match() for more information. Since: 2.34"]
18969#[doc = " @G_REGEX_MATCH_NOTEMPTY_ATSTART: Like #G_REGEX_MATCH_NOTEMPTY, but only applied to"]
18970#[doc = "     the start of the matched string. For anchored"]
18971#[doc = "     patterns this can only happen for pattern containing \"\\K\". Since: 2.34"]
18972#[doc = ""]
18973#[doc = " Flags specifying match-time options."]
18974#[doc = ""]
18975#[doc = " Since: 2.14"]
18976pub type GRegexMatchFlags = u32;
18977#[repr(C)]
18978#[derive(Debug, Copy, Clone)]
18979pub struct _GRegex {
18980    _unused: [u8; 0],
18981}
18982#[doc = " GRegex:"]
18983#[doc = ""]
18984#[doc = " A GRegex is the \"compiled\" form of a regular expression pattern."]
18985#[doc = " This structure is opaque and its fields cannot be accessed directly."]
18986#[doc = ""]
18987#[doc = " Since: 2.14"]
18988pub type GRegex = _GRegex;
18989#[repr(C)]
18990#[derive(Debug, Copy, Clone)]
18991pub struct _GMatchInfo {
18992    _unused: [u8; 0],
18993}
18994#[doc = " GMatchInfo:"]
18995#[doc = ""]
18996#[doc = " A GMatchInfo is an opaque struct used to return information about"]
18997#[doc = " matches."]
18998pub type GMatchInfo = _GMatchInfo;
18999#[doc = " GRegexEvalCallback:"]
19000#[doc = " @match_info: the #GMatchInfo generated by the match."]
19001#[doc = "     Use g_match_info_get_regex() and g_match_info_get_string() if you"]
19002#[doc = "     need the #GRegex or the matched string."]
19003#[doc = " @result: a #GString containing the new string"]
19004#[doc = " @user_data: user data passed to g_regex_replace_eval()"]
19005#[doc = ""]
19006#[doc = " Specifies the type of the function passed to g_regex_replace_eval()."]
19007#[doc = " It is called for each occurrence of the pattern in the string passed"]
19008#[doc = " to g_regex_replace_eval(), and it should append the replacement to"]
19009#[doc = " @result."]
19010#[doc = ""]
19011#[doc = " Returns: %FALSE to continue the replacement process, %TRUE to stop it"]
19012#[doc = ""]
19013#[doc = " Since: 2.14"]
19014pub type GRegexEvalCallback = ::std::option::Option<
19015    unsafe extern "C" fn(
19016        match_info: *const GMatchInfo,
19017        result: *mut GString,
19018        user_data: gpointer,
19019    ) -> gboolean,
19020>;
19021extern "C" {
19022    pub fn g_regex_new(
19023        pattern: *const gchar,
19024        compile_options: GRegexCompileFlags,
19025        match_options: GRegexMatchFlags,
19026        error: *mut *mut GError,
19027    ) -> *mut GRegex;
19028}
19029extern "C" {
19030    pub fn g_regex_ref(regex: *mut GRegex) -> *mut GRegex;
19031}
19032extern "C" {
19033    pub fn g_regex_unref(regex: *mut GRegex);
19034}
19035extern "C" {
19036    pub fn g_regex_get_pattern(regex: *const GRegex) -> *const gchar;
19037}
19038extern "C" {
19039    pub fn g_regex_get_max_backref(regex: *const GRegex) -> gint;
19040}
19041extern "C" {
19042    pub fn g_regex_get_capture_count(regex: *const GRegex) -> gint;
19043}
19044extern "C" {
19045    pub fn g_regex_get_has_cr_or_lf(regex: *const GRegex) -> gboolean;
19046}
19047extern "C" {
19048    pub fn g_regex_get_max_lookbehind(regex: *const GRegex) -> gint;
19049}
19050extern "C" {
19051    pub fn g_regex_get_string_number(regex: *const GRegex, name: *const gchar) -> gint;
19052}
19053extern "C" {
19054    pub fn g_regex_escape_string(string: *const gchar, length: gint) -> *mut gchar;
19055}
19056extern "C" {
19057    pub fn g_regex_escape_nul(string: *const gchar, length: gint) -> *mut gchar;
19058}
19059extern "C" {
19060    pub fn g_regex_get_compile_flags(regex: *const GRegex) -> GRegexCompileFlags;
19061}
19062extern "C" {
19063    pub fn g_regex_get_match_flags(regex: *const GRegex) -> GRegexMatchFlags;
19064}
19065extern "C" {
19066    pub fn g_regex_match_simple(
19067        pattern: *const gchar,
19068        string: *const gchar,
19069        compile_options: GRegexCompileFlags,
19070        match_options: GRegexMatchFlags,
19071    ) -> gboolean;
19072}
19073extern "C" {
19074    pub fn g_regex_match(
19075        regex: *const GRegex,
19076        string: *const gchar,
19077        match_options: GRegexMatchFlags,
19078        match_info: *mut *mut GMatchInfo,
19079    ) -> gboolean;
19080}
19081extern "C" {
19082    pub fn g_regex_match_full(
19083        regex: *const GRegex,
19084        string: *const gchar,
19085        string_len: gssize,
19086        start_position: gint,
19087        match_options: GRegexMatchFlags,
19088        match_info: *mut *mut GMatchInfo,
19089        error: *mut *mut GError,
19090    ) -> gboolean;
19091}
19092extern "C" {
19093    pub fn g_regex_match_all(
19094        regex: *const GRegex,
19095        string: *const gchar,
19096        match_options: GRegexMatchFlags,
19097        match_info: *mut *mut GMatchInfo,
19098    ) -> gboolean;
19099}
19100extern "C" {
19101    pub fn g_regex_match_all_full(
19102        regex: *const GRegex,
19103        string: *const gchar,
19104        string_len: gssize,
19105        start_position: gint,
19106        match_options: GRegexMatchFlags,
19107        match_info: *mut *mut GMatchInfo,
19108        error: *mut *mut GError,
19109    ) -> gboolean;
19110}
19111extern "C" {
19112    pub fn g_regex_split_simple(
19113        pattern: *const gchar,
19114        string: *const gchar,
19115        compile_options: GRegexCompileFlags,
19116        match_options: GRegexMatchFlags,
19117    ) -> *mut *mut gchar;
19118}
19119extern "C" {
19120    pub fn g_regex_split(
19121        regex: *const GRegex,
19122        string: *const gchar,
19123        match_options: GRegexMatchFlags,
19124    ) -> *mut *mut gchar;
19125}
19126extern "C" {
19127    pub fn g_regex_split_full(
19128        regex: *const GRegex,
19129        string: *const gchar,
19130        string_len: gssize,
19131        start_position: gint,
19132        match_options: GRegexMatchFlags,
19133        max_tokens: gint,
19134        error: *mut *mut GError,
19135    ) -> *mut *mut gchar;
19136}
19137extern "C" {
19138    pub fn g_regex_replace(
19139        regex: *const GRegex,
19140        string: *const gchar,
19141        string_len: gssize,
19142        start_position: gint,
19143        replacement: *const gchar,
19144        match_options: GRegexMatchFlags,
19145        error: *mut *mut GError,
19146    ) -> *mut gchar;
19147}
19148extern "C" {
19149    pub fn g_regex_replace_literal(
19150        regex: *const GRegex,
19151        string: *const gchar,
19152        string_len: gssize,
19153        start_position: gint,
19154        replacement: *const gchar,
19155        match_options: GRegexMatchFlags,
19156        error: *mut *mut GError,
19157    ) -> *mut gchar;
19158}
19159extern "C" {
19160    pub fn g_regex_replace_eval(
19161        regex: *const GRegex,
19162        string: *const gchar,
19163        string_len: gssize,
19164        start_position: gint,
19165        match_options: GRegexMatchFlags,
19166        eval: GRegexEvalCallback,
19167        user_data: gpointer,
19168        error: *mut *mut GError,
19169    ) -> *mut gchar;
19170}
19171extern "C" {
19172    pub fn g_regex_check_replacement(
19173        replacement: *const gchar,
19174        has_references: *mut gboolean,
19175        error: *mut *mut GError,
19176    ) -> gboolean;
19177}
19178extern "C" {
19179    pub fn g_match_info_get_regex(match_info: *const GMatchInfo) -> *mut GRegex;
19180}
19181extern "C" {
19182    pub fn g_match_info_get_string(match_info: *const GMatchInfo) -> *const gchar;
19183}
19184extern "C" {
19185    pub fn g_match_info_ref(match_info: *mut GMatchInfo) -> *mut GMatchInfo;
19186}
19187extern "C" {
19188    pub fn g_match_info_unref(match_info: *mut GMatchInfo);
19189}
19190extern "C" {
19191    pub fn g_match_info_free(match_info: *mut GMatchInfo);
19192}
19193extern "C" {
19194    pub fn g_match_info_next(match_info: *mut GMatchInfo, error: *mut *mut GError) -> gboolean;
19195}
19196extern "C" {
19197    pub fn g_match_info_matches(match_info: *const GMatchInfo) -> gboolean;
19198}
19199extern "C" {
19200    pub fn g_match_info_get_match_count(match_info: *const GMatchInfo) -> gint;
19201}
19202extern "C" {
19203    pub fn g_match_info_is_partial_match(match_info: *const GMatchInfo) -> gboolean;
19204}
19205extern "C" {
19206    pub fn g_match_info_expand_references(
19207        match_info: *const GMatchInfo,
19208        string_to_expand: *const gchar,
19209        error: *mut *mut GError,
19210    ) -> *mut gchar;
19211}
19212extern "C" {
19213    pub fn g_match_info_fetch(match_info: *const GMatchInfo, match_num: gint) -> *mut gchar;
19214}
19215extern "C" {
19216    pub fn g_match_info_fetch_pos(
19217        match_info: *const GMatchInfo,
19218        match_num: gint,
19219        start_pos: *mut gint,
19220        end_pos: *mut gint,
19221    ) -> gboolean;
19222}
19223extern "C" {
19224    pub fn g_match_info_fetch_named(
19225        match_info: *const GMatchInfo,
19226        name: *const gchar,
19227    ) -> *mut gchar;
19228}
19229extern "C" {
19230    pub fn g_match_info_fetch_named_pos(
19231        match_info: *const GMatchInfo,
19232        name: *const gchar,
19233        start_pos: *mut gint,
19234        end_pos: *mut gint,
19235    ) -> gboolean;
19236}
19237extern "C" {
19238    pub fn g_match_info_fetch_all(match_info: *const GMatchInfo) -> *mut *mut gchar;
19239}
19240pub type GScanner = _GScanner;
19241pub type GScannerConfig = _GScannerConfig;
19242pub type GTokenValue = _GTokenValue;
19243pub type GScannerMsgFunc = ::std::option::Option<
19244    unsafe extern "C" fn(scanner: *mut GScanner, message: *mut gchar, error: gboolean),
19245>;
19246pub const GErrorType_G_ERR_UNKNOWN: GErrorType = 0;
19247pub const GErrorType_G_ERR_UNEXP_EOF: GErrorType = 1;
19248pub const GErrorType_G_ERR_UNEXP_EOF_IN_STRING: GErrorType = 2;
19249pub const GErrorType_G_ERR_UNEXP_EOF_IN_COMMENT: GErrorType = 3;
19250pub const GErrorType_G_ERR_NON_DIGIT_IN_CONST: GErrorType = 4;
19251pub const GErrorType_G_ERR_DIGIT_RADIX: GErrorType = 5;
19252pub const GErrorType_G_ERR_FLOAT_RADIX: GErrorType = 6;
19253pub const GErrorType_G_ERR_FLOAT_MALFORMED: GErrorType = 7;
19254pub type GErrorType = u32;
19255pub const GTokenType_G_TOKEN_EOF: GTokenType = 0;
19256pub const GTokenType_G_TOKEN_LEFT_PAREN: GTokenType = 40;
19257pub const GTokenType_G_TOKEN_RIGHT_PAREN: GTokenType = 41;
19258pub const GTokenType_G_TOKEN_LEFT_CURLY: GTokenType = 123;
19259pub const GTokenType_G_TOKEN_RIGHT_CURLY: GTokenType = 125;
19260pub const GTokenType_G_TOKEN_LEFT_BRACE: GTokenType = 91;
19261pub const GTokenType_G_TOKEN_RIGHT_BRACE: GTokenType = 93;
19262pub const GTokenType_G_TOKEN_EQUAL_SIGN: GTokenType = 61;
19263pub const GTokenType_G_TOKEN_COMMA: GTokenType = 44;
19264pub const GTokenType_G_TOKEN_NONE: GTokenType = 256;
19265pub const GTokenType_G_TOKEN_ERROR: GTokenType = 257;
19266pub const GTokenType_G_TOKEN_CHAR: GTokenType = 258;
19267pub const GTokenType_G_TOKEN_BINARY: GTokenType = 259;
19268pub const GTokenType_G_TOKEN_OCTAL: GTokenType = 260;
19269pub const GTokenType_G_TOKEN_INT: GTokenType = 261;
19270pub const GTokenType_G_TOKEN_HEX: GTokenType = 262;
19271pub const GTokenType_G_TOKEN_FLOAT: GTokenType = 263;
19272pub const GTokenType_G_TOKEN_STRING: GTokenType = 264;
19273pub const GTokenType_G_TOKEN_SYMBOL: GTokenType = 265;
19274pub const GTokenType_G_TOKEN_IDENTIFIER: GTokenType = 266;
19275pub const GTokenType_G_TOKEN_IDENTIFIER_NULL: GTokenType = 267;
19276pub const GTokenType_G_TOKEN_COMMENT_SINGLE: GTokenType = 268;
19277pub const GTokenType_G_TOKEN_COMMENT_MULTI: GTokenType = 269;
19278pub const GTokenType_G_TOKEN_LAST: GTokenType = 270;
19279pub type GTokenType = u32;
19280#[repr(C)]
19281#[derive(Copy, Clone)]
19282pub union _GTokenValue {
19283    pub v_symbol: gpointer,
19284    pub v_identifier: *mut gchar,
19285    pub v_binary: gulong,
19286    pub v_octal: gulong,
19287    pub v_int: gulong,
19288    pub v_int64: guint64,
19289    pub v_float: gdouble,
19290    pub v_hex: gulong,
19291    pub v_string: *mut gchar,
19292    pub v_comment: *mut gchar,
19293    pub v_char: guchar,
19294    pub v_error: guint,
19295    _bindgen_union_align: u64,
19296}
19297#[test]
19298fn bindgen_test_layout__GTokenValue() {
19299    assert_eq!(
19300        ::std::mem::size_of::<_GTokenValue>(),
19301        8usize,
19302        concat!("Size of: ", stringify!(_GTokenValue))
19303    );
19304    assert_eq!(
19305        ::std::mem::align_of::<_GTokenValue>(),
19306        8usize,
19307        concat!("Alignment of ", stringify!(_GTokenValue))
19308    );
19309    assert_eq!(
19310        unsafe { &(*(::std::ptr::null::<_GTokenValue>())).v_symbol as *const _ as usize },
19311        0usize,
19312        concat!(
19313            "Offset of field: ",
19314            stringify!(_GTokenValue),
19315            "::",
19316            stringify!(v_symbol)
19317        )
19318    );
19319    assert_eq!(
19320        unsafe { &(*(::std::ptr::null::<_GTokenValue>())).v_identifier as *const _ as usize },
19321        0usize,
19322        concat!(
19323            "Offset of field: ",
19324            stringify!(_GTokenValue),
19325            "::",
19326            stringify!(v_identifier)
19327        )
19328    );
19329    assert_eq!(
19330        unsafe { &(*(::std::ptr::null::<_GTokenValue>())).v_binary as *const _ as usize },
19331        0usize,
19332        concat!(
19333            "Offset of field: ",
19334            stringify!(_GTokenValue),
19335            "::",
19336            stringify!(v_binary)
19337        )
19338    );
19339    assert_eq!(
19340        unsafe { &(*(::std::ptr::null::<_GTokenValue>())).v_octal as *const _ as usize },
19341        0usize,
19342        concat!(
19343            "Offset of field: ",
19344            stringify!(_GTokenValue),
19345            "::",
19346            stringify!(v_octal)
19347        )
19348    );
19349    assert_eq!(
19350        unsafe { &(*(::std::ptr::null::<_GTokenValue>())).v_int as *const _ as usize },
19351        0usize,
19352        concat!(
19353            "Offset of field: ",
19354            stringify!(_GTokenValue),
19355            "::",
19356            stringify!(v_int)
19357        )
19358    );
19359    assert_eq!(
19360        unsafe { &(*(::std::ptr::null::<_GTokenValue>())).v_int64 as *const _ as usize },
19361        0usize,
19362        concat!(
19363            "Offset of field: ",
19364            stringify!(_GTokenValue),
19365            "::",
19366            stringify!(v_int64)
19367        )
19368    );
19369    assert_eq!(
19370        unsafe { &(*(::std::ptr::null::<_GTokenValue>())).v_float as *const _ as usize },
19371        0usize,
19372        concat!(
19373            "Offset of field: ",
19374            stringify!(_GTokenValue),
19375            "::",
19376            stringify!(v_float)
19377        )
19378    );
19379    assert_eq!(
19380        unsafe { &(*(::std::ptr::null::<_GTokenValue>())).v_hex as *const _ as usize },
19381        0usize,
19382        concat!(
19383            "Offset of field: ",
19384            stringify!(_GTokenValue),
19385            "::",
19386            stringify!(v_hex)
19387        )
19388    );
19389    assert_eq!(
19390        unsafe { &(*(::std::ptr::null::<_GTokenValue>())).v_string as *const _ as usize },
19391        0usize,
19392        concat!(
19393            "Offset of field: ",
19394            stringify!(_GTokenValue),
19395            "::",
19396            stringify!(v_string)
19397        )
19398    );
19399    assert_eq!(
19400        unsafe { &(*(::std::ptr::null::<_GTokenValue>())).v_comment as *const _ as usize },
19401        0usize,
19402        concat!(
19403            "Offset of field: ",
19404            stringify!(_GTokenValue),
19405            "::",
19406            stringify!(v_comment)
19407        )
19408    );
19409    assert_eq!(
19410        unsafe { &(*(::std::ptr::null::<_GTokenValue>())).v_char as *const _ as usize },
19411        0usize,
19412        concat!(
19413            "Offset of field: ",
19414            stringify!(_GTokenValue),
19415            "::",
19416            stringify!(v_char)
19417        )
19418    );
19419    assert_eq!(
19420        unsafe { &(*(::std::ptr::null::<_GTokenValue>())).v_error as *const _ as usize },
19421        0usize,
19422        concat!(
19423            "Offset of field: ",
19424            stringify!(_GTokenValue),
19425            "::",
19426            stringify!(v_error)
19427        )
19428    );
19429}
19430#[repr(C)]
19431#[derive(Debug, Copy, Clone)]
19432pub struct _GScannerConfig {
19433    pub cset_skip_characters: *mut gchar,
19434    pub cset_identifier_first: *mut gchar,
19435    pub cset_identifier_nth: *mut gchar,
19436    pub cpair_comment_single: *mut gchar,
19437    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 3usize], u8>,
19438    pub padding_dummy: guint,
19439}
19440#[test]
19441fn bindgen_test_layout__GScannerConfig() {
19442    assert_eq!(
19443        ::std::mem::size_of::<_GScannerConfig>(),
19444        40usize,
19445        concat!("Size of: ", stringify!(_GScannerConfig))
19446    );
19447    assert_eq!(
19448        ::std::mem::align_of::<_GScannerConfig>(),
19449        8usize,
19450        concat!("Alignment of ", stringify!(_GScannerConfig))
19451    );
19452    assert_eq!(
19453        unsafe {
19454            &(*(::std::ptr::null::<_GScannerConfig>())).cset_skip_characters as *const _ as usize
19455        },
19456        0usize,
19457        concat!(
19458            "Offset of field: ",
19459            stringify!(_GScannerConfig),
19460            "::",
19461            stringify!(cset_skip_characters)
19462        )
19463    );
19464    assert_eq!(
19465        unsafe {
19466            &(*(::std::ptr::null::<_GScannerConfig>())).cset_identifier_first as *const _ as usize
19467        },
19468        8usize,
19469        concat!(
19470            "Offset of field: ",
19471            stringify!(_GScannerConfig),
19472            "::",
19473            stringify!(cset_identifier_first)
19474        )
19475    );
19476    assert_eq!(
19477        unsafe {
19478            &(*(::std::ptr::null::<_GScannerConfig>())).cset_identifier_nth as *const _ as usize
19479        },
19480        16usize,
19481        concat!(
19482            "Offset of field: ",
19483            stringify!(_GScannerConfig),
19484            "::",
19485            stringify!(cset_identifier_nth)
19486        )
19487    );
19488    assert_eq!(
19489        unsafe {
19490            &(*(::std::ptr::null::<_GScannerConfig>())).cpair_comment_single as *const _ as usize
19491        },
19492        24usize,
19493        concat!(
19494            "Offset of field: ",
19495            stringify!(_GScannerConfig),
19496            "::",
19497            stringify!(cpair_comment_single)
19498        )
19499    );
19500    assert_eq!(
19501        unsafe { &(*(::std::ptr::null::<_GScannerConfig>())).padding_dummy as *const _ as usize },
19502        36usize,
19503        concat!(
19504            "Offset of field: ",
19505            stringify!(_GScannerConfig),
19506            "::",
19507            stringify!(padding_dummy)
19508        )
19509    );
19510}
19511impl _GScannerConfig {
19512    #[inline]
19513    pub fn case_sensitive(&self) -> guint {
19514        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
19515    }
19516    #[inline]
19517    pub fn set_case_sensitive(&mut self, val: guint) {
19518        unsafe {
19519            let val: u32 = ::std::mem::transmute(val);
19520            self._bitfield_1.set(0usize, 1u8, val as u64)
19521        }
19522    }
19523    #[inline]
19524    pub fn skip_comment_multi(&self) -> guint {
19525        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
19526    }
19527    #[inline]
19528    pub fn set_skip_comment_multi(&mut self, val: guint) {
19529        unsafe {
19530            let val: u32 = ::std::mem::transmute(val);
19531            self._bitfield_1.set(1usize, 1u8, val as u64)
19532        }
19533    }
19534    #[inline]
19535    pub fn skip_comment_single(&self) -> guint {
19536        unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
19537    }
19538    #[inline]
19539    pub fn set_skip_comment_single(&mut self, val: guint) {
19540        unsafe {
19541            let val: u32 = ::std::mem::transmute(val);
19542            self._bitfield_1.set(2usize, 1u8, val as u64)
19543        }
19544    }
19545    #[inline]
19546    pub fn scan_comment_multi(&self) -> guint {
19547        unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
19548    }
19549    #[inline]
19550    pub fn set_scan_comment_multi(&mut self, val: guint) {
19551        unsafe {
19552            let val: u32 = ::std::mem::transmute(val);
19553            self._bitfield_1.set(3usize, 1u8, val as u64)
19554        }
19555    }
19556    #[inline]
19557    pub fn scan_identifier(&self) -> guint {
19558        unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) }
19559    }
19560    #[inline]
19561    pub fn set_scan_identifier(&mut self, val: guint) {
19562        unsafe {
19563            let val: u32 = ::std::mem::transmute(val);
19564            self._bitfield_1.set(4usize, 1u8, val as u64)
19565        }
19566    }
19567    #[inline]
19568    pub fn scan_identifier_1char(&self) -> guint {
19569        unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) }
19570    }
19571    #[inline]
19572    pub fn set_scan_identifier_1char(&mut self, val: guint) {
19573        unsafe {
19574            let val: u32 = ::std::mem::transmute(val);
19575            self._bitfield_1.set(5usize, 1u8, val as u64)
19576        }
19577    }
19578    #[inline]
19579    pub fn scan_identifier_NULL(&self) -> guint {
19580        unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) }
19581    }
19582    #[inline]
19583    pub fn set_scan_identifier_NULL(&mut self, val: guint) {
19584        unsafe {
19585            let val: u32 = ::std::mem::transmute(val);
19586            self._bitfield_1.set(6usize, 1u8, val as u64)
19587        }
19588    }
19589    #[inline]
19590    pub fn scan_symbols(&self) -> guint {
19591        unsafe { ::std::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) }
19592    }
19593    #[inline]
19594    pub fn set_scan_symbols(&mut self, val: guint) {
19595        unsafe {
19596            let val: u32 = ::std::mem::transmute(val);
19597            self._bitfield_1.set(7usize, 1u8, val as u64)
19598        }
19599    }
19600    #[inline]
19601    pub fn scan_binary(&self) -> guint {
19602        unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u32) }
19603    }
19604    #[inline]
19605    pub fn set_scan_binary(&mut self, val: guint) {
19606        unsafe {
19607            let val: u32 = ::std::mem::transmute(val);
19608            self._bitfield_1.set(8usize, 1u8, val as u64)
19609        }
19610    }
19611    #[inline]
19612    pub fn scan_octal(&self) -> guint {
19613        unsafe { ::std::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u32) }
19614    }
19615    #[inline]
19616    pub fn set_scan_octal(&mut self, val: guint) {
19617        unsafe {
19618            let val: u32 = ::std::mem::transmute(val);
19619            self._bitfield_1.set(9usize, 1u8, val as u64)
19620        }
19621    }
19622    #[inline]
19623    pub fn scan_float(&self) -> guint {
19624        unsafe { ::std::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u32) }
19625    }
19626    #[inline]
19627    pub fn set_scan_float(&mut self, val: guint) {
19628        unsafe {
19629            let val: u32 = ::std::mem::transmute(val);
19630            self._bitfield_1.set(10usize, 1u8, val as u64)
19631        }
19632    }
19633    #[inline]
19634    pub fn scan_hex(&self) -> guint {
19635        unsafe { ::std::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u32) }
19636    }
19637    #[inline]
19638    pub fn set_scan_hex(&mut self, val: guint) {
19639        unsafe {
19640            let val: u32 = ::std::mem::transmute(val);
19641            self._bitfield_1.set(11usize, 1u8, val as u64)
19642        }
19643    }
19644    #[inline]
19645    pub fn scan_hex_dollar(&self) -> guint {
19646        unsafe { ::std::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u32) }
19647    }
19648    #[inline]
19649    pub fn set_scan_hex_dollar(&mut self, val: guint) {
19650        unsafe {
19651            let val: u32 = ::std::mem::transmute(val);
19652            self._bitfield_1.set(12usize, 1u8, val as u64)
19653        }
19654    }
19655    #[inline]
19656    pub fn scan_string_sq(&self) -> guint {
19657        unsafe { ::std::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u32) }
19658    }
19659    #[inline]
19660    pub fn set_scan_string_sq(&mut self, val: guint) {
19661        unsafe {
19662            let val: u32 = ::std::mem::transmute(val);
19663            self._bitfield_1.set(13usize, 1u8, val as u64)
19664        }
19665    }
19666    #[inline]
19667    pub fn scan_string_dq(&self) -> guint {
19668        unsafe { ::std::mem::transmute(self._bitfield_1.get(14usize, 1u8) as u32) }
19669    }
19670    #[inline]
19671    pub fn set_scan_string_dq(&mut self, val: guint) {
19672        unsafe {
19673            let val: u32 = ::std::mem::transmute(val);
19674            self._bitfield_1.set(14usize, 1u8, val as u64)
19675        }
19676    }
19677    #[inline]
19678    pub fn numbers_2_int(&self) -> guint {
19679        unsafe { ::std::mem::transmute(self._bitfield_1.get(15usize, 1u8) as u32) }
19680    }
19681    #[inline]
19682    pub fn set_numbers_2_int(&mut self, val: guint) {
19683        unsafe {
19684            let val: u32 = ::std::mem::transmute(val);
19685            self._bitfield_1.set(15usize, 1u8, val as u64)
19686        }
19687    }
19688    #[inline]
19689    pub fn int_2_float(&self) -> guint {
19690        unsafe { ::std::mem::transmute(self._bitfield_1.get(16usize, 1u8) as u32) }
19691    }
19692    #[inline]
19693    pub fn set_int_2_float(&mut self, val: guint) {
19694        unsafe {
19695            let val: u32 = ::std::mem::transmute(val);
19696            self._bitfield_1.set(16usize, 1u8, val as u64)
19697        }
19698    }
19699    #[inline]
19700    pub fn identifier_2_string(&self) -> guint {
19701        unsafe { ::std::mem::transmute(self._bitfield_1.get(17usize, 1u8) as u32) }
19702    }
19703    #[inline]
19704    pub fn set_identifier_2_string(&mut self, val: guint) {
19705        unsafe {
19706            let val: u32 = ::std::mem::transmute(val);
19707            self._bitfield_1.set(17usize, 1u8, val as u64)
19708        }
19709    }
19710    #[inline]
19711    pub fn char_2_token(&self) -> guint {
19712        unsafe { ::std::mem::transmute(self._bitfield_1.get(18usize, 1u8) as u32) }
19713    }
19714    #[inline]
19715    pub fn set_char_2_token(&mut self, val: guint) {
19716        unsafe {
19717            let val: u32 = ::std::mem::transmute(val);
19718            self._bitfield_1.set(18usize, 1u8, val as u64)
19719        }
19720    }
19721    #[inline]
19722    pub fn symbol_2_token(&self) -> guint {
19723        unsafe { ::std::mem::transmute(self._bitfield_1.get(19usize, 1u8) as u32) }
19724    }
19725    #[inline]
19726    pub fn set_symbol_2_token(&mut self, val: guint) {
19727        unsafe {
19728            let val: u32 = ::std::mem::transmute(val);
19729            self._bitfield_1.set(19usize, 1u8, val as u64)
19730        }
19731    }
19732    #[inline]
19733    pub fn scope_0_fallback(&self) -> guint {
19734        unsafe { ::std::mem::transmute(self._bitfield_1.get(20usize, 1u8) as u32) }
19735    }
19736    #[inline]
19737    pub fn set_scope_0_fallback(&mut self, val: guint) {
19738        unsafe {
19739            let val: u32 = ::std::mem::transmute(val);
19740            self._bitfield_1.set(20usize, 1u8, val as u64)
19741        }
19742    }
19743    #[inline]
19744    pub fn store_int64(&self) -> guint {
19745        unsafe { ::std::mem::transmute(self._bitfield_1.get(21usize, 1u8) as u32) }
19746    }
19747    #[inline]
19748    pub fn set_store_int64(&mut self, val: guint) {
19749        unsafe {
19750            let val: u32 = ::std::mem::transmute(val);
19751            self._bitfield_1.set(21usize, 1u8, val as u64)
19752        }
19753    }
19754    #[inline]
19755    pub fn new_bitfield_1(
19756        case_sensitive: guint,
19757        skip_comment_multi: guint,
19758        skip_comment_single: guint,
19759        scan_comment_multi: guint,
19760        scan_identifier: guint,
19761        scan_identifier_1char: guint,
19762        scan_identifier_NULL: guint,
19763        scan_symbols: guint,
19764        scan_binary: guint,
19765        scan_octal: guint,
19766        scan_float: guint,
19767        scan_hex: guint,
19768        scan_hex_dollar: guint,
19769        scan_string_sq: guint,
19770        scan_string_dq: guint,
19771        numbers_2_int: guint,
19772        int_2_float: guint,
19773        identifier_2_string: guint,
19774        char_2_token: guint,
19775        symbol_2_token: guint,
19776        scope_0_fallback: guint,
19777        store_int64: guint,
19778    ) -> __BindgenBitfieldUnit<[u8; 3usize], u8> {
19779        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 3usize], u8> =
19780            Default::default();
19781        __bindgen_bitfield_unit.set(0usize, 1u8, {
19782            let case_sensitive: u32 = unsafe { ::std::mem::transmute(case_sensitive) };
19783            case_sensitive as u64
19784        });
19785        __bindgen_bitfield_unit.set(1usize, 1u8, {
19786            let skip_comment_multi: u32 = unsafe { ::std::mem::transmute(skip_comment_multi) };
19787            skip_comment_multi as u64
19788        });
19789        __bindgen_bitfield_unit.set(2usize, 1u8, {
19790            let skip_comment_single: u32 = unsafe { ::std::mem::transmute(skip_comment_single) };
19791            skip_comment_single as u64
19792        });
19793        __bindgen_bitfield_unit.set(3usize, 1u8, {
19794            let scan_comment_multi: u32 = unsafe { ::std::mem::transmute(scan_comment_multi) };
19795            scan_comment_multi as u64
19796        });
19797        __bindgen_bitfield_unit.set(4usize, 1u8, {
19798            let scan_identifier: u32 = unsafe { ::std::mem::transmute(scan_identifier) };
19799            scan_identifier as u64
19800        });
19801        __bindgen_bitfield_unit.set(5usize, 1u8, {
19802            let scan_identifier_1char: u32 =
19803                unsafe { ::std::mem::transmute(scan_identifier_1char) };
19804            scan_identifier_1char as u64
19805        });
19806        __bindgen_bitfield_unit.set(6usize, 1u8, {
19807            let scan_identifier_NULL: u32 = unsafe { ::std::mem::transmute(scan_identifier_NULL) };
19808            scan_identifier_NULL as u64
19809        });
19810        __bindgen_bitfield_unit.set(7usize, 1u8, {
19811            let scan_symbols: u32 = unsafe { ::std::mem::transmute(scan_symbols) };
19812            scan_symbols as u64
19813        });
19814        __bindgen_bitfield_unit.set(8usize, 1u8, {
19815            let scan_binary: u32 = unsafe { ::std::mem::transmute(scan_binary) };
19816            scan_binary as u64
19817        });
19818        __bindgen_bitfield_unit.set(9usize, 1u8, {
19819            let scan_octal: u32 = unsafe { ::std::mem::transmute(scan_octal) };
19820            scan_octal as u64
19821        });
19822        __bindgen_bitfield_unit.set(10usize, 1u8, {
19823            let scan_float: u32 = unsafe { ::std::mem::transmute(scan_float) };
19824            scan_float as u64
19825        });
19826        __bindgen_bitfield_unit.set(11usize, 1u8, {
19827            let scan_hex: u32 = unsafe { ::std::mem::transmute(scan_hex) };
19828            scan_hex as u64
19829        });
19830        __bindgen_bitfield_unit.set(12usize, 1u8, {
19831            let scan_hex_dollar: u32 = unsafe { ::std::mem::transmute(scan_hex_dollar) };
19832            scan_hex_dollar as u64
19833        });
19834        __bindgen_bitfield_unit.set(13usize, 1u8, {
19835            let scan_string_sq: u32 = unsafe { ::std::mem::transmute(scan_string_sq) };
19836            scan_string_sq as u64
19837        });
19838        __bindgen_bitfield_unit.set(14usize, 1u8, {
19839            let scan_string_dq: u32 = unsafe { ::std::mem::transmute(scan_string_dq) };
19840            scan_string_dq as u64
19841        });
19842        __bindgen_bitfield_unit.set(15usize, 1u8, {
19843            let numbers_2_int: u32 = unsafe { ::std::mem::transmute(numbers_2_int) };
19844            numbers_2_int as u64
19845        });
19846        __bindgen_bitfield_unit.set(16usize, 1u8, {
19847            let int_2_float: u32 = unsafe { ::std::mem::transmute(int_2_float) };
19848            int_2_float as u64
19849        });
19850        __bindgen_bitfield_unit.set(17usize, 1u8, {
19851            let identifier_2_string: u32 = unsafe { ::std::mem::transmute(identifier_2_string) };
19852            identifier_2_string as u64
19853        });
19854        __bindgen_bitfield_unit.set(18usize, 1u8, {
19855            let char_2_token: u32 = unsafe { ::std::mem::transmute(char_2_token) };
19856            char_2_token as u64
19857        });
19858        __bindgen_bitfield_unit.set(19usize, 1u8, {
19859            let symbol_2_token: u32 = unsafe { ::std::mem::transmute(symbol_2_token) };
19860            symbol_2_token as u64
19861        });
19862        __bindgen_bitfield_unit.set(20usize, 1u8, {
19863            let scope_0_fallback: u32 = unsafe { ::std::mem::transmute(scope_0_fallback) };
19864            scope_0_fallback as u64
19865        });
19866        __bindgen_bitfield_unit.set(21usize, 1u8, {
19867            let store_int64: u32 = unsafe { ::std::mem::transmute(store_int64) };
19868            store_int64 as u64
19869        });
19870        __bindgen_bitfield_unit
19871    }
19872}
19873#[repr(C)]
19874#[derive(Copy, Clone)]
19875pub struct _GScanner {
19876    pub user_data: gpointer,
19877    pub max_parse_errors: guint,
19878    pub parse_errors: guint,
19879    pub input_name: *const gchar,
19880    pub qdata: *mut GData,
19881    pub config: *mut GScannerConfig,
19882    pub token: GTokenType,
19883    pub value: GTokenValue,
19884    pub line: guint,
19885    pub position: guint,
19886    pub next_token: GTokenType,
19887    pub next_value: GTokenValue,
19888    pub next_line: guint,
19889    pub next_position: guint,
19890    pub symbol_table: *mut GHashTable,
19891    pub input_fd: gint,
19892    pub text: *const gchar,
19893    pub text_end: *const gchar,
19894    pub buffer: *mut gchar,
19895    pub scope_id: guint,
19896    pub msg_handler: GScannerMsgFunc,
19897}
19898#[test]
19899fn bindgen_test_layout__GScanner() {
19900    assert_eq!(
19901        ::std::mem::size_of::<_GScanner>(),
19902        144usize,
19903        concat!("Size of: ", stringify!(_GScanner))
19904    );
19905    assert_eq!(
19906        ::std::mem::align_of::<_GScanner>(),
19907        8usize,
19908        concat!("Alignment of ", stringify!(_GScanner))
19909    );
19910    assert_eq!(
19911        unsafe { &(*(::std::ptr::null::<_GScanner>())).user_data as *const _ as usize },
19912        0usize,
19913        concat!(
19914            "Offset of field: ",
19915            stringify!(_GScanner),
19916            "::",
19917            stringify!(user_data)
19918        )
19919    );
19920    assert_eq!(
19921        unsafe { &(*(::std::ptr::null::<_GScanner>())).max_parse_errors as *const _ as usize },
19922        8usize,
19923        concat!(
19924            "Offset of field: ",
19925            stringify!(_GScanner),
19926            "::",
19927            stringify!(max_parse_errors)
19928        )
19929    );
19930    assert_eq!(
19931        unsafe { &(*(::std::ptr::null::<_GScanner>())).parse_errors as *const _ as usize },
19932        12usize,
19933        concat!(
19934            "Offset of field: ",
19935            stringify!(_GScanner),
19936            "::",
19937            stringify!(parse_errors)
19938        )
19939    );
19940    assert_eq!(
19941        unsafe { &(*(::std::ptr::null::<_GScanner>())).input_name as *const _ as usize },
19942        16usize,
19943        concat!(
19944            "Offset of field: ",
19945            stringify!(_GScanner),
19946            "::",
19947            stringify!(input_name)
19948        )
19949    );
19950    assert_eq!(
19951        unsafe { &(*(::std::ptr::null::<_GScanner>())).qdata as *const _ as usize },
19952        24usize,
19953        concat!(
19954            "Offset of field: ",
19955            stringify!(_GScanner),
19956            "::",
19957            stringify!(qdata)
19958        )
19959    );
19960    assert_eq!(
19961        unsafe { &(*(::std::ptr::null::<_GScanner>())).config as *const _ as usize },
19962        32usize,
19963        concat!(
19964            "Offset of field: ",
19965            stringify!(_GScanner),
19966            "::",
19967            stringify!(config)
19968        )
19969    );
19970    assert_eq!(
19971        unsafe { &(*(::std::ptr::null::<_GScanner>())).token as *const _ as usize },
19972        40usize,
19973        concat!(
19974            "Offset of field: ",
19975            stringify!(_GScanner),
19976            "::",
19977            stringify!(token)
19978        )
19979    );
19980    assert_eq!(
19981        unsafe { &(*(::std::ptr::null::<_GScanner>())).value as *const _ as usize },
19982        48usize,
19983        concat!(
19984            "Offset of field: ",
19985            stringify!(_GScanner),
19986            "::",
19987            stringify!(value)
19988        )
19989    );
19990    assert_eq!(
19991        unsafe { &(*(::std::ptr::null::<_GScanner>())).line as *const _ as usize },
19992        56usize,
19993        concat!(
19994            "Offset of field: ",
19995            stringify!(_GScanner),
19996            "::",
19997            stringify!(line)
19998        )
19999    );
20000    assert_eq!(
20001        unsafe { &(*(::std::ptr::null::<_GScanner>())).position as *const _ as usize },
20002        60usize,
20003        concat!(
20004            "Offset of field: ",
20005            stringify!(_GScanner),
20006            "::",
20007            stringify!(position)
20008        )
20009    );
20010    assert_eq!(
20011        unsafe { &(*(::std::ptr::null::<_GScanner>())).next_token as *const _ as usize },
20012        64usize,
20013        concat!(
20014            "Offset of field: ",
20015            stringify!(_GScanner),
20016            "::",
20017            stringify!(next_token)
20018        )
20019    );
20020    assert_eq!(
20021        unsafe { &(*(::std::ptr::null::<_GScanner>())).next_value as *const _ as usize },
20022        72usize,
20023        concat!(
20024            "Offset of field: ",
20025            stringify!(_GScanner),
20026            "::",
20027            stringify!(next_value)
20028        )
20029    );
20030    assert_eq!(
20031        unsafe { &(*(::std::ptr::null::<_GScanner>())).next_line as *const _ as usize },
20032        80usize,
20033        concat!(
20034            "Offset of field: ",
20035            stringify!(_GScanner),
20036            "::",
20037            stringify!(next_line)
20038        )
20039    );
20040    assert_eq!(
20041        unsafe { &(*(::std::ptr::null::<_GScanner>())).next_position as *const _ as usize },
20042        84usize,
20043        concat!(
20044            "Offset of field: ",
20045            stringify!(_GScanner),
20046            "::",
20047            stringify!(next_position)
20048        )
20049    );
20050    assert_eq!(
20051        unsafe { &(*(::std::ptr::null::<_GScanner>())).symbol_table as *const _ as usize },
20052        88usize,
20053        concat!(
20054            "Offset of field: ",
20055            stringify!(_GScanner),
20056            "::",
20057            stringify!(symbol_table)
20058        )
20059    );
20060    assert_eq!(
20061        unsafe { &(*(::std::ptr::null::<_GScanner>())).input_fd as *const _ as usize },
20062        96usize,
20063        concat!(
20064            "Offset of field: ",
20065            stringify!(_GScanner),
20066            "::",
20067            stringify!(input_fd)
20068        )
20069    );
20070    assert_eq!(
20071        unsafe { &(*(::std::ptr::null::<_GScanner>())).text as *const _ as usize },
20072        104usize,
20073        concat!(
20074            "Offset of field: ",
20075            stringify!(_GScanner),
20076            "::",
20077            stringify!(text)
20078        )
20079    );
20080    assert_eq!(
20081        unsafe { &(*(::std::ptr::null::<_GScanner>())).text_end as *const _ as usize },
20082        112usize,
20083        concat!(
20084            "Offset of field: ",
20085            stringify!(_GScanner),
20086            "::",
20087            stringify!(text_end)
20088        )
20089    );
20090    assert_eq!(
20091        unsafe { &(*(::std::ptr::null::<_GScanner>())).buffer as *const _ as usize },
20092        120usize,
20093        concat!(
20094            "Offset of field: ",
20095            stringify!(_GScanner),
20096            "::",
20097            stringify!(buffer)
20098        )
20099    );
20100    assert_eq!(
20101        unsafe { &(*(::std::ptr::null::<_GScanner>())).scope_id as *const _ as usize },
20102        128usize,
20103        concat!(
20104            "Offset of field: ",
20105            stringify!(_GScanner),
20106            "::",
20107            stringify!(scope_id)
20108        )
20109    );
20110    assert_eq!(
20111        unsafe { &(*(::std::ptr::null::<_GScanner>())).msg_handler as *const _ as usize },
20112        136usize,
20113        concat!(
20114            "Offset of field: ",
20115            stringify!(_GScanner),
20116            "::",
20117            stringify!(msg_handler)
20118        )
20119    );
20120}
20121extern "C" {
20122    pub fn g_scanner_new(config_templ: *const GScannerConfig) -> *mut GScanner;
20123}
20124extern "C" {
20125    pub fn g_scanner_destroy(scanner: *mut GScanner);
20126}
20127extern "C" {
20128    pub fn g_scanner_input_file(scanner: *mut GScanner, input_fd: gint);
20129}
20130extern "C" {
20131    pub fn g_scanner_sync_file_offset(scanner: *mut GScanner);
20132}
20133extern "C" {
20134    pub fn g_scanner_input_text(scanner: *mut GScanner, text: *const gchar, text_len: guint);
20135}
20136extern "C" {
20137    pub fn g_scanner_get_next_token(scanner: *mut GScanner) -> GTokenType;
20138}
20139extern "C" {
20140    pub fn g_scanner_peek_next_token(scanner: *mut GScanner) -> GTokenType;
20141}
20142extern "C" {
20143    pub fn g_scanner_cur_token(scanner: *mut GScanner) -> GTokenType;
20144}
20145extern "C" {
20146    pub fn g_scanner_cur_value(scanner: *mut GScanner) -> GTokenValue;
20147}
20148extern "C" {
20149    pub fn g_scanner_cur_line(scanner: *mut GScanner) -> guint;
20150}
20151extern "C" {
20152    pub fn g_scanner_cur_position(scanner: *mut GScanner) -> guint;
20153}
20154extern "C" {
20155    pub fn g_scanner_eof(scanner: *mut GScanner) -> gboolean;
20156}
20157extern "C" {
20158    pub fn g_scanner_set_scope(scanner: *mut GScanner, scope_id: guint) -> guint;
20159}
20160extern "C" {
20161    pub fn g_scanner_scope_add_symbol(
20162        scanner: *mut GScanner,
20163        scope_id: guint,
20164        symbol: *const gchar,
20165        value: gpointer,
20166    );
20167}
20168extern "C" {
20169    pub fn g_scanner_scope_remove_symbol(
20170        scanner: *mut GScanner,
20171        scope_id: guint,
20172        symbol: *const gchar,
20173    );
20174}
20175extern "C" {
20176    pub fn g_scanner_scope_lookup_symbol(
20177        scanner: *mut GScanner,
20178        scope_id: guint,
20179        symbol: *const gchar,
20180    ) -> gpointer;
20181}
20182extern "C" {
20183    pub fn g_scanner_scope_foreach_symbol(
20184        scanner: *mut GScanner,
20185        scope_id: guint,
20186        func: GHFunc,
20187        user_data: gpointer,
20188    );
20189}
20190extern "C" {
20191    pub fn g_scanner_lookup_symbol(scanner: *mut GScanner, symbol: *const gchar) -> gpointer;
20192}
20193extern "C" {
20194    pub fn g_scanner_unexp_token(
20195        scanner: *mut GScanner,
20196        expected_token: GTokenType,
20197        identifier_spec: *const gchar,
20198        symbol_spec: *const gchar,
20199        symbol_name: *const gchar,
20200        message: *const gchar,
20201        is_error: gint,
20202    );
20203}
20204extern "C" {
20205    pub fn g_scanner_error(scanner: *mut GScanner, format: *const gchar, ...);
20206}
20207extern "C" {
20208    pub fn g_scanner_warn(scanner: *mut GScanner, format: *const gchar, ...);
20209}
20210#[repr(C)]
20211#[derive(Debug, Copy, Clone)]
20212pub struct _GSequence {
20213    _unused: [u8; 0],
20214}
20215pub type GSequence = _GSequence;
20216#[repr(C)]
20217#[derive(Debug, Copy, Clone)]
20218pub struct _GSequenceNode {
20219    _unused: [u8; 0],
20220}
20221pub type GSequenceIter = _GSequenceNode;
20222pub type GSequenceIterCompareFunc = ::std::option::Option<
20223    unsafe extern "C" fn(a: *mut GSequenceIter, b: *mut GSequenceIter, data: gpointer) -> gint,
20224>;
20225extern "C" {
20226    pub fn g_sequence_new(data_destroy: GDestroyNotify) -> *mut GSequence;
20227}
20228extern "C" {
20229    pub fn g_sequence_free(seq: *mut GSequence);
20230}
20231extern "C" {
20232    pub fn g_sequence_get_length(seq: *mut GSequence) -> gint;
20233}
20234extern "C" {
20235    pub fn g_sequence_foreach(seq: *mut GSequence, func: GFunc, user_data: gpointer);
20236}
20237extern "C" {
20238    pub fn g_sequence_foreach_range(
20239        begin: *mut GSequenceIter,
20240        end: *mut GSequenceIter,
20241        func: GFunc,
20242        user_data: gpointer,
20243    );
20244}
20245extern "C" {
20246    pub fn g_sequence_sort(seq: *mut GSequence, cmp_func: GCompareDataFunc, cmp_data: gpointer);
20247}
20248extern "C" {
20249    pub fn g_sequence_sort_iter(
20250        seq: *mut GSequence,
20251        cmp_func: GSequenceIterCompareFunc,
20252        cmp_data: gpointer,
20253    );
20254}
20255extern "C" {
20256    pub fn g_sequence_is_empty(seq: *mut GSequence) -> gboolean;
20257}
20258extern "C" {
20259    pub fn g_sequence_get_begin_iter(seq: *mut GSequence) -> *mut GSequenceIter;
20260}
20261extern "C" {
20262    pub fn g_sequence_get_end_iter(seq: *mut GSequence) -> *mut GSequenceIter;
20263}
20264extern "C" {
20265    pub fn g_sequence_get_iter_at_pos(seq: *mut GSequence, pos: gint) -> *mut GSequenceIter;
20266}
20267extern "C" {
20268    pub fn g_sequence_append(seq: *mut GSequence, data: gpointer) -> *mut GSequenceIter;
20269}
20270extern "C" {
20271    pub fn g_sequence_prepend(seq: *mut GSequence, data: gpointer) -> *mut GSequenceIter;
20272}
20273extern "C" {
20274    pub fn g_sequence_insert_before(iter: *mut GSequenceIter, data: gpointer)
20275        -> *mut GSequenceIter;
20276}
20277extern "C" {
20278    pub fn g_sequence_move(src: *mut GSequenceIter, dest: *mut GSequenceIter);
20279}
20280extern "C" {
20281    pub fn g_sequence_swap(a: *mut GSequenceIter, b: *mut GSequenceIter);
20282}
20283extern "C" {
20284    pub fn g_sequence_insert_sorted(
20285        seq: *mut GSequence,
20286        data: gpointer,
20287        cmp_func: GCompareDataFunc,
20288        cmp_data: gpointer,
20289    ) -> *mut GSequenceIter;
20290}
20291extern "C" {
20292    pub fn g_sequence_insert_sorted_iter(
20293        seq: *mut GSequence,
20294        data: gpointer,
20295        iter_cmp: GSequenceIterCompareFunc,
20296        cmp_data: gpointer,
20297    ) -> *mut GSequenceIter;
20298}
20299extern "C" {
20300    pub fn g_sequence_sort_changed(
20301        iter: *mut GSequenceIter,
20302        cmp_func: GCompareDataFunc,
20303        cmp_data: gpointer,
20304    );
20305}
20306extern "C" {
20307    pub fn g_sequence_sort_changed_iter(
20308        iter: *mut GSequenceIter,
20309        iter_cmp: GSequenceIterCompareFunc,
20310        cmp_data: gpointer,
20311    );
20312}
20313extern "C" {
20314    pub fn g_sequence_remove(iter: *mut GSequenceIter);
20315}
20316extern "C" {
20317    pub fn g_sequence_remove_range(begin: *mut GSequenceIter, end: *mut GSequenceIter);
20318}
20319extern "C" {
20320    pub fn g_sequence_move_range(
20321        dest: *mut GSequenceIter,
20322        begin: *mut GSequenceIter,
20323        end: *mut GSequenceIter,
20324    );
20325}
20326extern "C" {
20327    pub fn g_sequence_search(
20328        seq: *mut GSequence,
20329        data: gpointer,
20330        cmp_func: GCompareDataFunc,
20331        cmp_data: gpointer,
20332    ) -> *mut GSequenceIter;
20333}
20334extern "C" {
20335    pub fn g_sequence_search_iter(
20336        seq: *mut GSequence,
20337        data: gpointer,
20338        iter_cmp: GSequenceIterCompareFunc,
20339        cmp_data: gpointer,
20340    ) -> *mut GSequenceIter;
20341}
20342extern "C" {
20343    pub fn g_sequence_lookup(
20344        seq: *mut GSequence,
20345        data: gpointer,
20346        cmp_func: GCompareDataFunc,
20347        cmp_data: gpointer,
20348    ) -> *mut GSequenceIter;
20349}
20350extern "C" {
20351    pub fn g_sequence_lookup_iter(
20352        seq: *mut GSequence,
20353        data: gpointer,
20354        iter_cmp: GSequenceIterCompareFunc,
20355        cmp_data: gpointer,
20356    ) -> *mut GSequenceIter;
20357}
20358extern "C" {
20359    pub fn g_sequence_get(iter: *mut GSequenceIter) -> gpointer;
20360}
20361extern "C" {
20362    pub fn g_sequence_set(iter: *mut GSequenceIter, data: gpointer);
20363}
20364extern "C" {
20365    pub fn g_sequence_iter_is_begin(iter: *mut GSequenceIter) -> gboolean;
20366}
20367extern "C" {
20368    pub fn g_sequence_iter_is_end(iter: *mut GSequenceIter) -> gboolean;
20369}
20370extern "C" {
20371    pub fn g_sequence_iter_next(iter: *mut GSequenceIter) -> *mut GSequenceIter;
20372}
20373extern "C" {
20374    pub fn g_sequence_iter_prev(iter: *mut GSequenceIter) -> *mut GSequenceIter;
20375}
20376extern "C" {
20377    pub fn g_sequence_iter_get_position(iter: *mut GSequenceIter) -> gint;
20378}
20379extern "C" {
20380    pub fn g_sequence_iter_move(iter: *mut GSequenceIter, delta: gint) -> *mut GSequenceIter;
20381}
20382extern "C" {
20383    pub fn g_sequence_iter_get_sequence(iter: *mut GSequenceIter) -> *mut GSequence;
20384}
20385extern "C" {
20386    pub fn g_sequence_iter_compare(a: *mut GSequenceIter, b: *mut GSequenceIter) -> gint;
20387}
20388extern "C" {
20389    pub fn g_sequence_range_get_midpoint(
20390        begin: *mut GSequenceIter,
20391        end: *mut GSequenceIter,
20392    ) -> *mut GSequenceIter;
20393}
20394pub const GShellError_G_SHELL_ERROR_BAD_QUOTING: GShellError = 0;
20395pub const GShellError_G_SHELL_ERROR_EMPTY_STRING: GShellError = 1;
20396pub const GShellError_G_SHELL_ERROR_FAILED: GShellError = 2;
20397pub type GShellError = u32;
20398extern "C" {
20399    pub fn g_shell_error_quark() -> GQuark;
20400}
20401extern "C" {
20402    pub fn g_shell_quote(unquoted_string: *const gchar) -> *mut gchar;
20403}
20404extern "C" {
20405    pub fn g_shell_unquote(quoted_string: *const gchar, error: *mut *mut GError) -> *mut gchar;
20406}
20407extern "C" {
20408    pub fn g_shell_parse_argv(
20409        command_line: *const gchar,
20410        argcp: *mut gint,
20411        argvp: *mut *mut *mut gchar,
20412        error: *mut *mut GError,
20413    ) -> gboolean;
20414}
20415extern "C" {
20416    pub fn g_slice_alloc(block_size: gsize) -> gpointer;
20417}
20418extern "C" {
20419    pub fn g_slice_alloc0(block_size: gsize) -> gpointer;
20420}
20421extern "C" {
20422    pub fn g_slice_copy(block_size: gsize, mem_block: gconstpointer) -> gpointer;
20423}
20424extern "C" {
20425    pub fn g_slice_free1(block_size: gsize, mem_block: gpointer);
20426}
20427extern "C" {
20428    pub fn g_slice_free_chain_with_offset(
20429        block_size: gsize,
20430        mem_chain: gpointer,
20431        next_offset: gsize,
20432    );
20433}
20434pub const GSliceConfig_G_SLICE_CONFIG_ALWAYS_MALLOC: GSliceConfig = 1;
20435pub const GSliceConfig_G_SLICE_CONFIG_BYPASS_MAGAZINES: GSliceConfig = 2;
20436pub const GSliceConfig_G_SLICE_CONFIG_WORKING_SET_MSECS: GSliceConfig = 3;
20437pub const GSliceConfig_G_SLICE_CONFIG_COLOR_INCREMENT: GSliceConfig = 4;
20438pub const GSliceConfig_G_SLICE_CONFIG_CHUNK_SIZES: GSliceConfig = 5;
20439pub const GSliceConfig_G_SLICE_CONFIG_CONTENTION_COUNTER: GSliceConfig = 6;
20440pub type GSliceConfig = u32;
20441extern "C" {
20442    pub fn g_slice_set_config(ckey: GSliceConfig, value: gint64);
20443}
20444extern "C" {
20445    pub fn g_slice_get_config(ckey: GSliceConfig) -> gint64;
20446}
20447extern "C" {
20448    pub fn g_slice_get_config_state(
20449        ckey: GSliceConfig,
20450        address: gint64,
20451        n_values: *mut guint,
20452    ) -> *mut gint64;
20453}
20454pub const GSpawnError_G_SPAWN_ERROR_FORK: GSpawnError = 0;
20455pub const GSpawnError_G_SPAWN_ERROR_READ: GSpawnError = 1;
20456pub const GSpawnError_G_SPAWN_ERROR_CHDIR: GSpawnError = 2;
20457pub const GSpawnError_G_SPAWN_ERROR_ACCES: GSpawnError = 3;
20458pub const GSpawnError_G_SPAWN_ERROR_PERM: GSpawnError = 4;
20459pub const GSpawnError_G_SPAWN_ERROR_TOO_BIG: GSpawnError = 5;
20460pub const GSpawnError_G_SPAWN_ERROR_2BIG: GSpawnError = 5;
20461pub const GSpawnError_G_SPAWN_ERROR_NOEXEC: GSpawnError = 6;
20462pub const GSpawnError_G_SPAWN_ERROR_NAMETOOLONG: GSpawnError = 7;
20463pub const GSpawnError_G_SPAWN_ERROR_NOENT: GSpawnError = 8;
20464pub const GSpawnError_G_SPAWN_ERROR_NOMEM: GSpawnError = 9;
20465pub const GSpawnError_G_SPAWN_ERROR_NOTDIR: GSpawnError = 10;
20466pub const GSpawnError_G_SPAWN_ERROR_LOOP: GSpawnError = 11;
20467pub const GSpawnError_G_SPAWN_ERROR_TXTBUSY: GSpawnError = 12;
20468pub const GSpawnError_G_SPAWN_ERROR_IO: GSpawnError = 13;
20469pub const GSpawnError_G_SPAWN_ERROR_NFILE: GSpawnError = 14;
20470pub const GSpawnError_G_SPAWN_ERROR_MFILE: GSpawnError = 15;
20471pub const GSpawnError_G_SPAWN_ERROR_INVAL: GSpawnError = 16;
20472pub const GSpawnError_G_SPAWN_ERROR_ISDIR: GSpawnError = 17;
20473pub const GSpawnError_G_SPAWN_ERROR_LIBBAD: GSpawnError = 18;
20474pub const GSpawnError_G_SPAWN_ERROR_FAILED: GSpawnError = 19;
20475#[doc = " GSpawnError:"]
20476#[doc = " @G_SPAWN_ERROR_FORK: Fork failed due to lack of memory."]
20477#[doc = " @G_SPAWN_ERROR_READ: Read or select on pipes failed."]
20478#[doc = " @G_SPAWN_ERROR_CHDIR: Changing to working directory failed."]
20479#[doc = " @G_SPAWN_ERROR_ACCES: execv() returned `EACCES`"]
20480#[doc = " @G_SPAWN_ERROR_PERM: execv() returned `EPERM`"]
20481#[doc = " @G_SPAWN_ERROR_TOO_BIG: execv() returned `E2BIG`"]
20482#[doc = " @G_SPAWN_ERROR_2BIG: deprecated alias for %G_SPAWN_ERROR_TOO_BIG"]
20483#[doc = " @G_SPAWN_ERROR_NOEXEC: execv() returned `ENOEXEC`"]
20484#[doc = " @G_SPAWN_ERROR_NAMETOOLONG: execv() returned `ENAMETOOLONG`"]
20485#[doc = " @G_SPAWN_ERROR_NOENT: execv() returned `ENOENT`"]
20486#[doc = " @G_SPAWN_ERROR_NOMEM: execv() returned `ENOMEM`"]
20487#[doc = " @G_SPAWN_ERROR_NOTDIR: execv() returned `ENOTDIR`"]
20488#[doc = " @G_SPAWN_ERROR_LOOP: execv() returned `ELOOP`"]
20489#[doc = " @G_SPAWN_ERROR_TXTBUSY: execv() returned `ETXTBUSY`"]
20490#[doc = " @G_SPAWN_ERROR_IO: execv() returned `EIO`"]
20491#[doc = " @G_SPAWN_ERROR_NFILE: execv() returned `ENFILE`"]
20492#[doc = " @G_SPAWN_ERROR_MFILE: execv() returned `EMFILE`"]
20493#[doc = " @G_SPAWN_ERROR_INVAL: execv() returned `EINVAL`"]
20494#[doc = " @G_SPAWN_ERROR_ISDIR: execv() returned `EISDIR`"]
20495#[doc = " @G_SPAWN_ERROR_LIBBAD: execv() returned `ELIBBAD`"]
20496#[doc = " @G_SPAWN_ERROR_FAILED: Some other fatal failure,"]
20497#[doc = "   `error->message` should explain."]
20498#[doc = ""]
20499#[doc = " Error codes returned by spawning processes."]
20500pub type GSpawnError = u32;
20501#[doc = " GSpawnChildSetupFunc:"]
20502#[doc = " @user_data: (closure): user data to pass to the function."]
20503#[doc = ""]
20504#[doc = " Specifies the type of the setup function passed to g_spawn_async(),"]
20505#[doc = " g_spawn_sync() and g_spawn_async_with_pipes(), which can, in very"]
20506#[doc = " limited ways, be used to affect the child's execution."]
20507#[doc = ""]
20508#[doc = " On POSIX platforms, the function is called in the child after GLib"]
20509#[doc = " has performed all the setup it plans to perform, but before calling"]
20510#[doc = " exec(). Actions taken in this function will only affect the child,"]
20511#[doc = " not the parent."]
20512#[doc = ""]
20513#[doc = " On Windows, the function is called in the parent. Its usefulness on"]
20514#[doc = " Windows is thus questionable. In many cases executing the child setup"]
20515#[doc = " function in the parent can have ill effects, and you should be very"]
20516#[doc = " careful when porting software to Windows that uses child setup"]
20517#[doc = " functions."]
20518#[doc = ""]
20519#[doc = " However, even on POSIX, you are extremely limited in what you can"]
20520#[doc = " safely do from a #GSpawnChildSetupFunc, because any mutexes that were"]
20521#[doc = " held by other threads in the parent process at the time of the fork()"]
20522#[doc = " will still be locked in the child process, and they will never be"]
20523#[doc = " unlocked (since the threads that held them don't exist in the child)."]
20524#[doc = " POSIX allows only async-signal-safe functions (see signal(7)) to be"]
20525#[doc = " called in the child between fork() and exec(), which drastically limits"]
20526#[doc = " the usefulness of child setup functions."]
20527#[doc = ""]
20528#[doc = " In particular, it is not safe to call any function which may"]
20529#[doc = " call malloc(), which includes POSIX functions such as setenv()."]
20530#[doc = " If you need to set up the child environment differently from"]
20531#[doc = " the parent, you should use g_get_environ(), g_environ_setenv(),"]
20532#[doc = " and g_environ_unsetenv(), and then pass the complete environment"]
20533#[doc = " list to the `g_spawn...` function."]
20534pub type GSpawnChildSetupFunc = ::std::option::Option<unsafe extern "C" fn(user_data: gpointer)>;
20535pub const GSpawnFlags_G_SPAWN_DEFAULT: GSpawnFlags = 0;
20536pub const GSpawnFlags_G_SPAWN_LEAVE_DESCRIPTORS_OPEN: GSpawnFlags = 1;
20537pub const GSpawnFlags_G_SPAWN_DO_NOT_REAP_CHILD: GSpawnFlags = 2;
20538pub const GSpawnFlags_G_SPAWN_SEARCH_PATH: GSpawnFlags = 4;
20539pub const GSpawnFlags_G_SPAWN_STDOUT_TO_DEV_NULL: GSpawnFlags = 8;
20540pub const GSpawnFlags_G_SPAWN_STDERR_TO_DEV_NULL: GSpawnFlags = 16;
20541pub const GSpawnFlags_G_SPAWN_CHILD_INHERITS_STDIN: GSpawnFlags = 32;
20542pub const GSpawnFlags_G_SPAWN_FILE_AND_ARGV_ZERO: GSpawnFlags = 64;
20543pub const GSpawnFlags_G_SPAWN_SEARCH_PATH_FROM_ENVP: GSpawnFlags = 128;
20544pub const GSpawnFlags_G_SPAWN_CLOEXEC_PIPES: GSpawnFlags = 256;
20545#[doc = " GSpawnFlags:"]
20546#[doc = " @G_SPAWN_DEFAULT: no flags, default behaviour"]
20547#[doc = " @G_SPAWN_LEAVE_DESCRIPTORS_OPEN: the parent's open file descriptors will"]
20548#[doc = "     be inherited by the child; otherwise all descriptors except stdin,"]
20549#[doc = "     stdout and stderr will be closed before calling exec() in the child."]
20550#[doc = " @G_SPAWN_DO_NOT_REAP_CHILD: the child will not be automatically reaped;"]
20551#[doc = "     you must use g_child_watch_add() yourself (or call waitpid() or handle"]
20552#[doc = "     `SIGCHLD` yourself), or the child will become a zombie."]
20553#[doc = " @G_SPAWN_SEARCH_PATH: `argv[0]` need not be an absolute path, it will be"]
20554#[doc = "     looked for in the user's `PATH`."]
20555#[doc = " @G_SPAWN_STDOUT_TO_DEV_NULL: the child's standard output will be discarded,"]
20556#[doc = "     instead of going to the same location as the parent's standard output."]
20557#[doc = " @G_SPAWN_STDERR_TO_DEV_NULL: the child's standard error will be discarded."]
20558#[doc = " @G_SPAWN_CHILD_INHERITS_STDIN: the child will inherit the parent's standard"]
20559#[doc = "     input (by default, the child's standard input is attached to `/dev/null`)."]
20560#[doc = " @G_SPAWN_FILE_AND_ARGV_ZERO: the first element of `argv` is the file to"]
20561#[doc = "     execute, while the remaining elements are the actual argument vector"]
20562#[doc = "     to pass to the file. Normally g_spawn_async_with_pipes() uses `argv[0]`"]
20563#[doc = "     as the file to execute, and passes all of `argv` to the child."]
20564#[doc = " @G_SPAWN_SEARCH_PATH_FROM_ENVP: if `argv[0]` is not an abolute path,"]
20565#[doc = "     it will be looked for in the `PATH` from the passed child environment."]
20566#[doc = "     Since: 2.34"]
20567#[doc = " @G_SPAWN_CLOEXEC_PIPES: create all pipes with the `O_CLOEXEC` flag set."]
20568#[doc = "     Since: 2.40"]
20569#[doc = ""]
20570#[doc = " Flags passed to g_spawn_sync(), g_spawn_async() and g_spawn_async_with_pipes()."]
20571pub type GSpawnFlags = u32;
20572extern "C" {
20573    pub fn g_spawn_error_quark() -> GQuark;
20574}
20575extern "C" {
20576    pub fn g_spawn_exit_error_quark() -> GQuark;
20577}
20578extern "C" {
20579    pub fn g_spawn_async(
20580        working_directory: *const gchar,
20581        argv: *mut *mut gchar,
20582        envp: *mut *mut gchar,
20583        flags: GSpawnFlags,
20584        child_setup: GSpawnChildSetupFunc,
20585        user_data: gpointer,
20586        child_pid: *mut GPid,
20587        error: *mut *mut GError,
20588    ) -> gboolean;
20589}
20590extern "C" {
20591    pub fn g_spawn_async_with_pipes(
20592        working_directory: *const gchar,
20593        argv: *mut *mut gchar,
20594        envp: *mut *mut gchar,
20595        flags: GSpawnFlags,
20596        child_setup: GSpawnChildSetupFunc,
20597        user_data: gpointer,
20598        child_pid: *mut GPid,
20599        standard_input: *mut gint,
20600        standard_output: *mut gint,
20601        standard_error: *mut gint,
20602        error: *mut *mut GError,
20603    ) -> gboolean;
20604}
20605extern "C" {
20606    pub fn g_spawn_sync(
20607        working_directory: *const gchar,
20608        argv: *mut *mut gchar,
20609        envp: *mut *mut gchar,
20610        flags: GSpawnFlags,
20611        child_setup: GSpawnChildSetupFunc,
20612        user_data: gpointer,
20613        standard_output: *mut *mut gchar,
20614        standard_error: *mut *mut gchar,
20615        exit_status: *mut gint,
20616        error: *mut *mut GError,
20617    ) -> gboolean;
20618}
20619extern "C" {
20620    pub fn g_spawn_command_line_sync(
20621        command_line: *const gchar,
20622        standard_output: *mut *mut gchar,
20623        standard_error: *mut *mut gchar,
20624        exit_status: *mut gint,
20625        error: *mut *mut GError,
20626    ) -> gboolean;
20627}
20628extern "C" {
20629    pub fn g_spawn_command_line_async(
20630        command_line: *const gchar,
20631        error: *mut *mut GError,
20632    ) -> gboolean;
20633}
20634extern "C" {
20635    pub fn g_spawn_check_exit_status(exit_status: gint, error: *mut *mut GError) -> gboolean;
20636}
20637extern "C" {
20638    pub fn g_spawn_close_pid(pid: GPid);
20639}
20640pub const GAsciiType_G_ASCII_ALNUM: GAsciiType = 1;
20641pub const GAsciiType_G_ASCII_ALPHA: GAsciiType = 2;
20642pub const GAsciiType_G_ASCII_CNTRL: GAsciiType = 4;
20643pub const GAsciiType_G_ASCII_DIGIT: GAsciiType = 8;
20644pub const GAsciiType_G_ASCII_GRAPH: GAsciiType = 16;
20645pub const GAsciiType_G_ASCII_LOWER: GAsciiType = 32;
20646pub const GAsciiType_G_ASCII_PRINT: GAsciiType = 64;
20647pub const GAsciiType_G_ASCII_PUNCT: GAsciiType = 128;
20648pub const GAsciiType_G_ASCII_SPACE: GAsciiType = 256;
20649pub const GAsciiType_G_ASCII_UPPER: GAsciiType = 512;
20650pub const GAsciiType_G_ASCII_XDIGIT: GAsciiType = 1024;
20651pub type GAsciiType = u32;
20652extern "C" {
20653    pub static g_ascii_table: *const guint16;
20654}
20655extern "C" {
20656    pub fn g_ascii_tolower(c: gchar) -> gchar;
20657}
20658extern "C" {
20659    pub fn g_ascii_toupper(c: gchar) -> gchar;
20660}
20661extern "C" {
20662    pub fn g_ascii_digit_value(c: gchar) -> gint;
20663}
20664extern "C" {
20665    pub fn g_ascii_xdigit_value(c: gchar) -> gint;
20666}
20667extern "C" {
20668    pub fn g_strdelimit(
20669        string: *mut gchar,
20670        delimiters: *const gchar,
20671        new_delimiter: gchar,
20672    ) -> *mut gchar;
20673}
20674extern "C" {
20675    pub fn g_strcanon(
20676        string: *mut gchar,
20677        valid_chars: *const gchar,
20678        substitutor: gchar,
20679    ) -> *mut gchar;
20680}
20681extern "C" {
20682    pub fn g_strerror(errnum: gint) -> *const gchar;
20683}
20684extern "C" {
20685    pub fn g_strsignal(signum: gint) -> *const gchar;
20686}
20687extern "C" {
20688    pub fn g_strreverse(string: *mut gchar) -> *mut gchar;
20689}
20690extern "C" {
20691    pub fn g_strlcpy(dest: *mut gchar, src: *const gchar, dest_size: gsize) -> gsize;
20692}
20693extern "C" {
20694    pub fn g_strlcat(dest: *mut gchar, src: *const gchar, dest_size: gsize) -> gsize;
20695}
20696extern "C" {
20697    pub fn g_strstr_len(
20698        haystack: *const gchar,
20699        haystack_len: gssize,
20700        needle: *const gchar,
20701    ) -> *mut gchar;
20702}
20703extern "C" {
20704    pub fn g_strrstr(haystack: *const gchar, needle: *const gchar) -> *mut gchar;
20705}
20706extern "C" {
20707    pub fn g_strrstr_len(
20708        haystack: *const gchar,
20709        haystack_len: gssize,
20710        needle: *const gchar,
20711    ) -> *mut gchar;
20712}
20713extern "C" {
20714    pub fn g_str_has_suffix(str: *const gchar, suffix: *const gchar) -> gboolean;
20715}
20716extern "C" {
20717    pub fn g_str_has_prefix(str: *const gchar, prefix: *const gchar) -> gboolean;
20718}
20719extern "C" {
20720    pub fn g_strtod(nptr: *const gchar, endptr: *mut *mut gchar) -> gdouble;
20721}
20722extern "C" {
20723    pub fn g_ascii_strtod(nptr: *const gchar, endptr: *mut *mut gchar) -> gdouble;
20724}
20725extern "C" {
20726    pub fn g_ascii_strtoull(nptr: *const gchar, endptr: *mut *mut gchar, base: guint) -> guint64;
20727}
20728extern "C" {
20729    pub fn g_ascii_strtoll(nptr: *const gchar, endptr: *mut *mut gchar, base: guint) -> gint64;
20730}
20731extern "C" {
20732    pub fn g_ascii_dtostr(buffer: *mut gchar, buf_len: gint, d: gdouble) -> *mut gchar;
20733}
20734extern "C" {
20735    pub fn g_ascii_formatd(
20736        buffer: *mut gchar,
20737        buf_len: gint,
20738        format: *const gchar,
20739        d: gdouble,
20740    ) -> *mut gchar;
20741}
20742extern "C" {
20743    pub fn g_strchug(string: *mut gchar) -> *mut gchar;
20744}
20745extern "C" {
20746    pub fn g_strchomp(string: *mut gchar) -> *mut gchar;
20747}
20748extern "C" {
20749    pub fn g_ascii_strcasecmp(s1: *const gchar, s2: *const gchar) -> gint;
20750}
20751extern "C" {
20752    pub fn g_ascii_strncasecmp(s1: *const gchar, s2: *const gchar, n: gsize) -> gint;
20753}
20754extern "C" {
20755    pub fn g_ascii_strdown(str: *const gchar, len: gssize) -> *mut gchar;
20756}
20757extern "C" {
20758    pub fn g_ascii_strup(str: *const gchar, len: gssize) -> *mut gchar;
20759}
20760extern "C" {
20761    pub fn g_str_is_ascii(str: *const gchar) -> gboolean;
20762}
20763extern "C" {
20764    pub fn g_strcasecmp(s1: *const gchar, s2: *const gchar) -> gint;
20765}
20766extern "C" {
20767    pub fn g_strncasecmp(s1: *const gchar, s2: *const gchar, n: guint) -> gint;
20768}
20769extern "C" {
20770    pub fn g_strdown(string: *mut gchar) -> *mut gchar;
20771}
20772extern "C" {
20773    pub fn g_strup(string: *mut gchar) -> *mut gchar;
20774}
20775extern "C" {
20776    pub fn g_strdup(str: *const gchar) -> *mut gchar;
20777}
20778extern "C" {
20779    pub fn g_strdup_printf(format: *const gchar, ...) -> *mut gchar;
20780}
20781extern "C" {
20782    pub fn g_strdup_vprintf(format: *const gchar, args: *mut __va_list_tag) -> *mut gchar;
20783}
20784extern "C" {
20785    pub fn g_strndup(str: *const gchar, n: gsize) -> *mut gchar;
20786}
20787extern "C" {
20788    pub fn g_strnfill(length: gsize, fill_char: gchar) -> *mut gchar;
20789}
20790extern "C" {
20791    pub fn g_strconcat(string1: *const gchar, ...) -> *mut gchar;
20792}
20793extern "C" {
20794    pub fn g_strjoin(separator: *const gchar, ...) -> *mut gchar;
20795}
20796extern "C" {
20797    pub fn g_strcompress(source: *const gchar) -> *mut gchar;
20798}
20799extern "C" {
20800    pub fn g_strescape(source: *const gchar, exceptions: *const gchar) -> *mut gchar;
20801}
20802extern "C" {
20803    pub fn g_memdup(mem: gconstpointer, byte_size: guint) -> gpointer;
20804}
20805pub type GStrv = *mut *mut gchar;
20806extern "C" {
20807    pub fn g_strsplit(
20808        string: *const gchar,
20809        delimiter: *const gchar,
20810        max_tokens: gint,
20811    ) -> *mut *mut gchar;
20812}
20813extern "C" {
20814    pub fn g_strsplit_set(
20815        string: *const gchar,
20816        delimiters: *const gchar,
20817        max_tokens: gint,
20818    ) -> *mut *mut gchar;
20819}
20820extern "C" {
20821    pub fn g_strjoinv(separator: *const gchar, str_array: *mut *mut gchar) -> *mut gchar;
20822}
20823extern "C" {
20824    pub fn g_strfreev(str_array: *mut *mut gchar);
20825}
20826extern "C" {
20827    pub fn g_strdupv(str_array: *mut *mut gchar) -> *mut *mut gchar;
20828}
20829extern "C" {
20830    pub fn g_strv_length(str_array: *mut *mut gchar) -> guint;
20831}
20832extern "C" {
20833    pub fn g_stpcpy(dest: *mut gchar, src: *const ::std::os::raw::c_char) -> *mut gchar;
20834}
20835extern "C" {
20836    pub fn g_str_to_ascii(str: *const gchar, from_locale: *const gchar) -> *mut gchar;
20837}
20838extern "C" {
20839    pub fn g_str_tokenize_and_fold(
20840        string: *const gchar,
20841        translit_locale: *const gchar,
20842        ascii_alternates: *mut *mut *mut gchar,
20843    ) -> *mut *mut gchar;
20844}
20845extern "C" {
20846    pub fn g_str_match_string(
20847        search_term: *const gchar,
20848        potential_hit: *const gchar,
20849        accept_alternates: gboolean,
20850    ) -> gboolean;
20851}
20852extern "C" {
20853    pub fn g_strv_contains(strv: *const *const gchar, str: *const gchar) -> gboolean;
20854}
20855pub const GNumberParserError_G_NUMBER_PARSER_ERROR_INVALID: GNumberParserError = 0;
20856pub const GNumberParserError_G_NUMBER_PARSER_ERROR_OUT_OF_BOUNDS: GNumberParserError = 1;
20857#[doc = " GNumberParserError:"]
20858#[doc = " @G_NUMBER_PARSER_ERROR_INVALID: String was not a valid number."]
20859#[doc = " @G_NUMBER_PARSER_ERROR_OUT_OF_BOUNDS: String was a number, but out of bounds."]
20860#[doc = ""]
20861#[doc = " Error codes returned by functions converting a string to a number."]
20862#[doc = ""]
20863#[doc = " Since: 2.54"]
20864pub type GNumberParserError = u32;
20865extern "C" {
20866    pub fn g_number_parser_error_quark() -> GQuark;
20867}
20868extern "C" {
20869    pub fn g_ascii_string_to_signed(
20870        str: *const gchar,
20871        base: guint,
20872        min: gint64,
20873        max: gint64,
20874        out_num: *mut gint64,
20875        error: *mut *mut GError,
20876    ) -> gboolean;
20877}
20878extern "C" {
20879    pub fn g_ascii_string_to_unsigned(
20880        str: *const gchar,
20881        base: guint,
20882        min: guint64,
20883        max: guint64,
20884        out_num: *mut guint64,
20885        error: *mut *mut GError,
20886    ) -> gboolean;
20887}
20888#[repr(C)]
20889#[derive(Debug, Copy, Clone)]
20890pub struct _GStringChunk {
20891    _unused: [u8; 0],
20892}
20893pub type GStringChunk = _GStringChunk;
20894extern "C" {
20895    pub fn g_string_chunk_new(size: gsize) -> *mut GStringChunk;
20896}
20897extern "C" {
20898    pub fn g_string_chunk_free(chunk: *mut GStringChunk);
20899}
20900extern "C" {
20901    pub fn g_string_chunk_clear(chunk: *mut GStringChunk);
20902}
20903extern "C" {
20904    pub fn g_string_chunk_insert(chunk: *mut GStringChunk, string: *const gchar) -> *mut gchar;
20905}
20906extern "C" {
20907    pub fn g_string_chunk_insert_len(
20908        chunk: *mut GStringChunk,
20909        string: *const gchar,
20910        len: gssize,
20911    ) -> *mut gchar;
20912}
20913extern "C" {
20914    pub fn g_string_chunk_insert_const(
20915        chunk: *mut GStringChunk,
20916        string: *const gchar,
20917    ) -> *mut gchar;
20918}
20919#[repr(C)]
20920#[derive(Debug, Copy, Clone)]
20921pub struct GTestCase {
20922    _unused: [u8; 0],
20923}
20924#[repr(C)]
20925#[derive(Debug, Copy, Clone)]
20926pub struct GTestSuite {
20927    _unused: [u8; 0],
20928}
20929pub type GTestFunc = ::std::option::Option<unsafe extern "C" fn()>;
20930pub type GTestDataFunc = ::std::option::Option<unsafe extern "C" fn(user_data: gconstpointer)>;
20931pub type GTestFixtureFunc =
20932    ::std::option::Option<unsafe extern "C" fn(fixture: gpointer, user_data: gconstpointer)>;
20933extern "C" {
20934    pub fn g_strcmp0(
20935        str1: *const ::std::os::raw::c_char,
20936        str2: *const ::std::os::raw::c_char,
20937    ) -> ::std::os::raw::c_int;
20938}
20939extern "C" {
20940    pub fn g_test_minimized_result(
20941        minimized_quantity: f64,
20942        format: *const ::std::os::raw::c_char,
20943        ...
20944    );
20945}
20946extern "C" {
20947    pub fn g_test_maximized_result(
20948        maximized_quantity: f64,
20949        format: *const ::std::os::raw::c_char,
20950        ...
20951    );
20952}
20953extern "C" {
20954    pub fn g_test_init(
20955        argc: *mut ::std::os::raw::c_int,
20956        argv: *mut *mut *mut ::std::os::raw::c_char,
20957        ...
20958    );
20959}
20960extern "C" {
20961    pub fn g_test_subprocess() -> gboolean;
20962}
20963extern "C" {
20964    pub fn g_test_run() -> ::std::os::raw::c_int;
20965}
20966extern "C" {
20967    pub fn g_test_add_func(testpath: *const ::std::os::raw::c_char, test_func: GTestFunc);
20968}
20969extern "C" {
20970    pub fn g_test_add_data_func(
20971        testpath: *const ::std::os::raw::c_char,
20972        test_data: gconstpointer,
20973        test_func: GTestDataFunc,
20974    );
20975}
20976extern "C" {
20977    pub fn g_test_add_data_func_full(
20978        testpath: *const ::std::os::raw::c_char,
20979        test_data: gpointer,
20980        test_func: GTestDataFunc,
20981        data_free_func: GDestroyNotify,
20982    );
20983}
20984extern "C" {
20985    pub fn g_test_fail();
20986}
20987extern "C" {
20988    pub fn g_test_incomplete(msg: *const gchar);
20989}
20990extern "C" {
20991    pub fn g_test_skip(msg: *const gchar);
20992}
20993extern "C" {
20994    pub fn g_test_failed() -> gboolean;
20995}
20996extern "C" {
20997    pub fn g_test_set_nonfatal_assertions();
20998}
20999extern "C" {
21000    pub fn g_test_message(format: *const ::std::os::raw::c_char, ...);
21001}
21002extern "C" {
21003    pub fn g_test_bug_base(uri_pattern: *const ::std::os::raw::c_char);
21004}
21005extern "C" {
21006    pub fn g_test_bug(bug_uri_snippet: *const ::std::os::raw::c_char);
21007}
21008extern "C" {
21009    pub fn g_test_timer_start();
21010}
21011extern "C" {
21012    pub fn g_test_timer_elapsed() -> f64;
21013}
21014extern "C" {
21015    pub fn g_test_timer_last() -> f64;
21016}
21017extern "C" {
21018    pub fn g_test_queue_free(gfree_pointer: gpointer);
21019}
21020extern "C" {
21021    pub fn g_test_queue_destroy(destroy_func: GDestroyNotify, destroy_data: gpointer);
21022}
21023pub const GTestTrapFlags_G_TEST_TRAP_SILENCE_STDOUT: GTestTrapFlags = 128;
21024pub const GTestTrapFlags_G_TEST_TRAP_SILENCE_STDERR: GTestTrapFlags = 256;
21025pub const GTestTrapFlags_G_TEST_TRAP_INHERIT_STDIN: GTestTrapFlags = 512;
21026pub type GTestTrapFlags = u32;
21027extern "C" {
21028    pub fn g_test_trap_fork(usec_timeout: guint64, test_trap_flags: GTestTrapFlags) -> gboolean;
21029}
21030pub const GTestSubprocessFlags_G_TEST_SUBPROCESS_INHERIT_STDIN: GTestSubprocessFlags = 1;
21031pub const GTestSubprocessFlags_G_TEST_SUBPROCESS_INHERIT_STDOUT: GTestSubprocessFlags = 2;
21032pub const GTestSubprocessFlags_G_TEST_SUBPROCESS_INHERIT_STDERR: GTestSubprocessFlags = 4;
21033pub type GTestSubprocessFlags = u32;
21034extern "C" {
21035    pub fn g_test_trap_subprocess(
21036        test_path: *const ::std::os::raw::c_char,
21037        usec_timeout: guint64,
21038        test_flags: GTestSubprocessFlags,
21039    );
21040}
21041extern "C" {
21042    pub fn g_test_trap_has_passed() -> gboolean;
21043}
21044extern "C" {
21045    pub fn g_test_trap_reached_timeout() -> gboolean;
21046}
21047extern "C" {
21048    pub fn g_test_rand_int() -> gint32;
21049}
21050extern "C" {
21051    pub fn g_test_rand_int_range(begin: gint32, end: gint32) -> gint32;
21052}
21053extern "C" {
21054    pub fn g_test_rand_double() -> f64;
21055}
21056extern "C" {
21057    pub fn g_test_rand_double_range(range_start: f64, range_end: f64) -> f64;
21058}
21059extern "C" {
21060    pub fn g_test_create_case(
21061        test_name: *const ::std::os::raw::c_char,
21062        data_size: gsize,
21063        test_data: gconstpointer,
21064        data_setup: GTestFixtureFunc,
21065        data_test: GTestFixtureFunc,
21066        data_teardown: GTestFixtureFunc,
21067    ) -> *mut GTestCase;
21068}
21069extern "C" {
21070    pub fn g_test_create_suite(suite_name: *const ::std::os::raw::c_char) -> *mut GTestSuite;
21071}
21072extern "C" {
21073    pub fn g_test_get_root() -> *mut GTestSuite;
21074}
21075extern "C" {
21076    pub fn g_test_suite_add(suite: *mut GTestSuite, test_case: *mut GTestCase);
21077}
21078extern "C" {
21079    pub fn g_test_suite_add_suite(suite: *mut GTestSuite, nestedsuite: *mut GTestSuite);
21080}
21081extern "C" {
21082    pub fn g_test_run_suite(suite: *mut GTestSuite) -> ::std::os::raw::c_int;
21083}
21084extern "C" {
21085    pub fn g_test_trap_assertions(
21086        domain: *const ::std::os::raw::c_char,
21087        file: *const ::std::os::raw::c_char,
21088        line: ::std::os::raw::c_int,
21089        func: *const ::std::os::raw::c_char,
21090        assertion_flags: guint64,
21091        pattern: *const ::std::os::raw::c_char,
21092    );
21093}
21094extern "C" {
21095    pub fn g_assertion_message(
21096        domain: *const ::std::os::raw::c_char,
21097        file: *const ::std::os::raw::c_char,
21098        line: ::std::os::raw::c_int,
21099        func: *const ::std::os::raw::c_char,
21100        message: *const ::std::os::raw::c_char,
21101    );
21102}
21103extern "C" {
21104    pub fn g_assertion_message_expr(
21105        domain: *const ::std::os::raw::c_char,
21106        file: *const ::std::os::raw::c_char,
21107        line: ::std::os::raw::c_int,
21108        func: *const ::std::os::raw::c_char,
21109        expr: *const ::std::os::raw::c_char,
21110    );
21111}
21112extern "C" {
21113    pub fn g_assertion_message_cmpstr(
21114        domain: *const ::std::os::raw::c_char,
21115        file: *const ::std::os::raw::c_char,
21116        line: ::std::os::raw::c_int,
21117        func: *const ::std::os::raw::c_char,
21118        expr: *const ::std::os::raw::c_char,
21119        arg1: *const ::std::os::raw::c_char,
21120        cmp: *const ::std::os::raw::c_char,
21121        arg2: *const ::std::os::raw::c_char,
21122    );
21123}
21124extern "C" {
21125    pub fn g_assertion_message_cmpnum(
21126        domain: *const ::std::os::raw::c_char,
21127        file: *const ::std::os::raw::c_char,
21128        line: ::std::os::raw::c_int,
21129        func: *const ::std::os::raw::c_char,
21130        expr: *const ::std::os::raw::c_char,
21131        arg1: u128,
21132        cmp: *const ::std::os::raw::c_char,
21133        arg2: u128,
21134        numtype: ::std::os::raw::c_char,
21135    );
21136}
21137extern "C" {
21138    pub fn g_assertion_message_error(
21139        domain: *const ::std::os::raw::c_char,
21140        file: *const ::std::os::raw::c_char,
21141        line: ::std::os::raw::c_int,
21142        func: *const ::std::os::raw::c_char,
21143        expr: *const ::std::os::raw::c_char,
21144        error: *const GError,
21145        error_domain: GQuark,
21146        error_code: ::std::os::raw::c_int,
21147    );
21148}
21149extern "C" {
21150    pub fn g_test_add_vtable(
21151        testpath: *const ::std::os::raw::c_char,
21152        data_size: gsize,
21153        test_data: gconstpointer,
21154        data_setup: GTestFixtureFunc,
21155        data_test: GTestFixtureFunc,
21156        data_teardown: GTestFixtureFunc,
21157    );
21158}
21159#[repr(C)]
21160#[derive(Debug, Copy, Clone)]
21161pub struct GTestConfig {
21162    pub test_initialized: gboolean,
21163    pub test_quick: gboolean,
21164    pub test_perf: gboolean,
21165    pub test_verbose: gboolean,
21166    pub test_quiet: gboolean,
21167    pub test_undefined: gboolean,
21168}
21169#[test]
21170fn bindgen_test_layout_GTestConfig() {
21171    assert_eq!(
21172        ::std::mem::size_of::<GTestConfig>(),
21173        24usize,
21174        concat!("Size of: ", stringify!(GTestConfig))
21175    );
21176    assert_eq!(
21177        ::std::mem::align_of::<GTestConfig>(),
21178        4usize,
21179        concat!("Alignment of ", stringify!(GTestConfig))
21180    );
21181    assert_eq!(
21182        unsafe { &(*(::std::ptr::null::<GTestConfig>())).test_initialized as *const _ as usize },
21183        0usize,
21184        concat!(
21185            "Offset of field: ",
21186            stringify!(GTestConfig),
21187            "::",
21188            stringify!(test_initialized)
21189        )
21190    );
21191    assert_eq!(
21192        unsafe { &(*(::std::ptr::null::<GTestConfig>())).test_quick as *const _ as usize },
21193        4usize,
21194        concat!(
21195            "Offset of field: ",
21196            stringify!(GTestConfig),
21197            "::",
21198            stringify!(test_quick)
21199        )
21200    );
21201    assert_eq!(
21202        unsafe { &(*(::std::ptr::null::<GTestConfig>())).test_perf as *const _ as usize },
21203        8usize,
21204        concat!(
21205            "Offset of field: ",
21206            stringify!(GTestConfig),
21207            "::",
21208            stringify!(test_perf)
21209        )
21210    );
21211    assert_eq!(
21212        unsafe { &(*(::std::ptr::null::<GTestConfig>())).test_verbose as *const _ as usize },
21213        12usize,
21214        concat!(
21215            "Offset of field: ",
21216            stringify!(GTestConfig),
21217            "::",
21218            stringify!(test_verbose)
21219        )
21220    );
21221    assert_eq!(
21222        unsafe { &(*(::std::ptr::null::<GTestConfig>())).test_quiet as *const _ as usize },
21223        16usize,
21224        concat!(
21225            "Offset of field: ",
21226            stringify!(GTestConfig),
21227            "::",
21228            stringify!(test_quiet)
21229        )
21230    );
21231    assert_eq!(
21232        unsafe { &(*(::std::ptr::null::<GTestConfig>())).test_undefined as *const _ as usize },
21233        20usize,
21234        concat!(
21235            "Offset of field: ",
21236            stringify!(GTestConfig),
21237            "::",
21238            stringify!(test_undefined)
21239        )
21240    );
21241}
21242extern "C" {
21243    pub static g_test_config_vars: *const GTestConfig;
21244}
21245pub const GTestResult_G_TEST_RUN_SUCCESS: GTestResult = 0;
21246pub const GTestResult_G_TEST_RUN_SKIPPED: GTestResult = 1;
21247pub const GTestResult_G_TEST_RUN_FAILURE: GTestResult = 2;
21248pub const GTestResult_G_TEST_RUN_INCOMPLETE: GTestResult = 3;
21249pub type GTestResult = u32;
21250pub const GTestLogType_G_TEST_LOG_NONE: GTestLogType = 0;
21251pub const GTestLogType_G_TEST_LOG_ERROR: GTestLogType = 1;
21252pub const GTestLogType_G_TEST_LOG_START_BINARY: GTestLogType = 2;
21253pub const GTestLogType_G_TEST_LOG_LIST_CASE: GTestLogType = 3;
21254pub const GTestLogType_G_TEST_LOG_SKIP_CASE: GTestLogType = 4;
21255pub const GTestLogType_G_TEST_LOG_START_CASE: GTestLogType = 5;
21256pub const GTestLogType_G_TEST_LOG_STOP_CASE: GTestLogType = 6;
21257pub const GTestLogType_G_TEST_LOG_MIN_RESULT: GTestLogType = 7;
21258pub const GTestLogType_G_TEST_LOG_MAX_RESULT: GTestLogType = 8;
21259pub const GTestLogType_G_TEST_LOG_MESSAGE: GTestLogType = 9;
21260pub const GTestLogType_G_TEST_LOG_START_SUITE: GTestLogType = 10;
21261pub const GTestLogType_G_TEST_LOG_STOP_SUITE: GTestLogType = 11;
21262pub type GTestLogType = u32;
21263#[repr(C)]
21264#[derive(Debug, Copy, Clone)]
21265pub struct GTestLogMsg {
21266    pub log_type: GTestLogType,
21267    pub n_strings: guint,
21268    pub strings: *mut *mut gchar,
21269    pub n_nums: guint,
21270    pub nums: *mut u128,
21271}
21272#[test]
21273fn bindgen_test_layout_GTestLogMsg() {
21274    assert_eq!(
21275        ::std::mem::size_of::<GTestLogMsg>(),
21276        32usize,
21277        concat!("Size of: ", stringify!(GTestLogMsg))
21278    );
21279    assert_eq!(
21280        ::std::mem::align_of::<GTestLogMsg>(),
21281        8usize,
21282        concat!("Alignment of ", stringify!(GTestLogMsg))
21283    );
21284    assert_eq!(
21285        unsafe { &(*(::std::ptr::null::<GTestLogMsg>())).log_type as *const _ as usize },
21286        0usize,
21287        concat!(
21288            "Offset of field: ",
21289            stringify!(GTestLogMsg),
21290            "::",
21291            stringify!(log_type)
21292        )
21293    );
21294    assert_eq!(
21295        unsafe { &(*(::std::ptr::null::<GTestLogMsg>())).n_strings as *const _ as usize },
21296        4usize,
21297        concat!(
21298            "Offset of field: ",
21299            stringify!(GTestLogMsg),
21300            "::",
21301            stringify!(n_strings)
21302        )
21303    );
21304    assert_eq!(
21305        unsafe { &(*(::std::ptr::null::<GTestLogMsg>())).strings as *const _ as usize },
21306        8usize,
21307        concat!(
21308            "Offset of field: ",
21309            stringify!(GTestLogMsg),
21310            "::",
21311            stringify!(strings)
21312        )
21313    );
21314    assert_eq!(
21315        unsafe { &(*(::std::ptr::null::<GTestLogMsg>())).n_nums as *const _ as usize },
21316        16usize,
21317        concat!(
21318            "Offset of field: ",
21319            stringify!(GTestLogMsg),
21320            "::",
21321            stringify!(n_nums)
21322        )
21323    );
21324    assert_eq!(
21325        unsafe { &(*(::std::ptr::null::<GTestLogMsg>())).nums as *const _ as usize },
21326        24usize,
21327        concat!(
21328            "Offset of field: ",
21329            stringify!(GTestLogMsg),
21330            "::",
21331            stringify!(nums)
21332        )
21333    );
21334}
21335#[repr(C)]
21336#[derive(Debug, Copy, Clone)]
21337pub struct GTestLogBuffer {
21338    pub data: *mut GString,
21339    pub msgs: *mut GSList,
21340}
21341#[test]
21342fn bindgen_test_layout_GTestLogBuffer() {
21343    assert_eq!(
21344        ::std::mem::size_of::<GTestLogBuffer>(),
21345        16usize,
21346        concat!("Size of: ", stringify!(GTestLogBuffer))
21347    );
21348    assert_eq!(
21349        ::std::mem::align_of::<GTestLogBuffer>(),
21350        8usize,
21351        concat!("Alignment of ", stringify!(GTestLogBuffer))
21352    );
21353    assert_eq!(
21354        unsafe { &(*(::std::ptr::null::<GTestLogBuffer>())).data as *const _ as usize },
21355        0usize,
21356        concat!(
21357            "Offset of field: ",
21358            stringify!(GTestLogBuffer),
21359            "::",
21360            stringify!(data)
21361        )
21362    );
21363    assert_eq!(
21364        unsafe { &(*(::std::ptr::null::<GTestLogBuffer>())).msgs as *const _ as usize },
21365        8usize,
21366        concat!(
21367            "Offset of field: ",
21368            stringify!(GTestLogBuffer),
21369            "::",
21370            stringify!(msgs)
21371        )
21372    );
21373}
21374extern "C" {
21375    pub fn g_test_log_type_name(log_type: GTestLogType) -> *const ::std::os::raw::c_char;
21376}
21377extern "C" {
21378    pub fn g_test_log_buffer_new() -> *mut GTestLogBuffer;
21379}
21380extern "C" {
21381    pub fn g_test_log_buffer_free(tbuffer: *mut GTestLogBuffer);
21382}
21383extern "C" {
21384    pub fn g_test_log_buffer_push(
21385        tbuffer: *mut GTestLogBuffer,
21386        n_bytes: guint,
21387        bytes: *const guint8,
21388    );
21389}
21390extern "C" {
21391    pub fn g_test_log_buffer_pop(tbuffer: *mut GTestLogBuffer) -> *mut GTestLogMsg;
21392}
21393extern "C" {
21394    pub fn g_test_log_msg_free(tmsg: *mut GTestLogMsg);
21395}
21396#[doc = " GTestLogFatalFunc:"]
21397#[doc = " @log_domain: the log domain of the message"]
21398#[doc = " @log_level: the log level of the message (including the fatal and recursion flags)"]
21399#[doc = " @message: the message to process"]
21400#[doc = " @user_data: user data, set in g_test_log_set_fatal_handler()"]
21401#[doc = ""]
21402#[doc = " Specifies the prototype of fatal log handler functions."]
21403#[doc = ""]
21404#[doc = " Returns: %TRUE if the program should abort, %FALSE otherwise"]
21405#[doc = ""]
21406#[doc = " Since: 2.22"]
21407pub type GTestLogFatalFunc = ::std::option::Option<
21408    unsafe extern "C" fn(
21409        log_domain: *const gchar,
21410        log_level: GLogLevelFlags,
21411        message: *const gchar,
21412        user_data: gpointer,
21413    ) -> gboolean,
21414>;
21415extern "C" {
21416    pub fn g_test_log_set_fatal_handler(log_func: GTestLogFatalFunc, user_data: gpointer);
21417}
21418extern "C" {
21419    pub fn g_test_expect_message(
21420        log_domain: *const gchar,
21421        log_level: GLogLevelFlags,
21422        pattern: *const gchar,
21423    );
21424}
21425extern "C" {
21426    pub fn g_test_assert_expected_messages_internal(
21427        domain: *const ::std::os::raw::c_char,
21428        file: *const ::std::os::raw::c_char,
21429        line: ::std::os::raw::c_int,
21430        func: *const ::std::os::raw::c_char,
21431    );
21432}
21433pub const GTestFileType_G_TEST_DIST: GTestFileType = 0;
21434pub const GTestFileType_G_TEST_BUILT: GTestFileType = 1;
21435pub type GTestFileType = u32;
21436extern "C" {
21437    pub fn g_test_build_filename(
21438        file_type: GTestFileType,
21439        first_path: *const gchar,
21440        ...
21441    ) -> *mut gchar;
21442}
21443extern "C" {
21444    pub fn g_test_get_dir(file_type: GTestFileType) -> *const gchar;
21445}
21446extern "C" {
21447    pub fn g_test_get_filename(
21448        file_type: GTestFileType,
21449        first_path: *const gchar,
21450        ...
21451    ) -> *const gchar;
21452}
21453pub type GThreadPool = _GThreadPool;
21454#[repr(C)]
21455#[derive(Debug, Copy, Clone)]
21456pub struct _GThreadPool {
21457    pub func: GFunc,
21458    pub user_data: gpointer,
21459    pub exclusive: gboolean,
21460}
21461#[test]
21462fn bindgen_test_layout__GThreadPool() {
21463    assert_eq!(
21464        ::std::mem::size_of::<_GThreadPool>(),
21465        24usize,
21466        concat!("Size of: ", stringify!(_GThreadPool))
21467    );
21468    assert_eq!(
21469        ::std::mem::align_of::<_GThreadPool>(),
21470        8usize,
21471        concat!("Alignment of ", stringify!(_GThreadPool))
21472    );
21473    assert_eq!(
21474        unsafe { &(*(::std::ptr::null::<_GThreadPool>())).func as *const _ as usize },
21475        0usize,
21476        concat!(
21477            "Offset of field: ",
21478            stringify!(_GThreadPool),
21479            "::",
21480            stringify!(func)
21481        )
21482    );
21483    assert_eq!(
21484        unsafe { &(*(::std::ptr::null::<_GThreadPool>())).user_data as *const _ as usize },
21485        8usize,
21486        concat!(
21487            "Offset of field: ",
21488            stringify!(_GThreadPool),
21489            "::",
21490            stringify!(user_data)
21491        )
21492    );
21493    assert_eq!(
21494        unsafe { &(*(::std::ptr::null::<_GThreadPool>())).exclusive as *const _ as usize },
21495        16usize,
21496        concat!(
21497            "Offset of field: ",
21498            stringify!(_GThreadPool),
21499            "::",
21500            stringify!(exclusive)
21501        )
21502    );
21503}
21504extern "C" {
21505    pub fn g_thread_pool_new(
21506        func: GFunc,
21507        user_data: gpointer,
21508        max_threads: gint,
21509        exclusive: gboolean,
21510        error: *mut *mut GError,
21511    ) -> *mut GThreadPool;
21512}
21513extern "C" {
21514    pub fn g_thread_pool_free(pool: *mut GThreadPool, immediate: gboolean, wait_: gboolean);
21515}
21516extern "C" {
21517    pub fn g_thread_pool_push(
21518        pool: *mut GThreadPool,
21519        data: gpointer,
21520        error: *mut *mut GError,
21521    ) -> gboolean;
21522}
21523extern "C" {
21524    pub fn g_thread_pool_unprocessed(pool: *mut GThreadPool) -> guint;
21525}
21526extern "C" {
21527    pub fn g_thread_pool_set_sort_function(
21528        pool: *mut GThreadPool,
21529        func: GCompareDataFunc,
21530        user_data: gpointer,
21531    );
21532}
21533extern "C" {
21534    pub fn g_thread_pool_move_to_front(pool: *mut GThreadPool, data: gpointer) -> gboolean;
21535}
21536extern "C" {
21537    pub fn g_thread_pool_set_max_threads(
21538        pool: *mut GThreadPool,
21539        max_threads: gint,
21540        error: *mut *mut GError,
21541    ) -> gboolean;
21542}
21543extern "C" {
21544    pub fn g_thread_pool_get_max_threads(pool: *mut GThreadPool) -> gint;
21545}
21546extern "C" {
21547    pub fn g_thread_pool_get_num_threads(pool: *mut GThreadPool) -> guint;
21548}
21549extern "C" {
21550    pub fn g_thread_pool_set_max_unused_threads(max_threads: gint);
21551}
21552extern "C" {
21553    pub fn g_thread_pool_get_max_unused_threads() -> gint;
21554}
21555extern "C" {
21556    pub fn g_thread_pool_get_num_unused_threads() -> guint;
21557}
21558extern "C" {
21559    pub fn g_thread_pool_stop_unused_threads();
21560}
21561extern "C" {
21562    pub fn g_thread_pool_set_max_idle_time(interval: guint);
21563}
21564extern "C" {
21565    pub fn g_thread_pool_get_max_idle_time() -> guint;
21566}
21567#[repr(C)]
21568#[derive(Debug, Copy, Clone)]
21569pub struct _GTimer {
21570    _unused: [u8; 0],
21571}
21572pub type GTimer = _GTimer;
21573extern "C" {
21574    pub fn g_timer_new() -> *mut GTimer;
21575}
21576extern "C" {
21577    pub fn g_timer_destroy(timer: *mut GTimer);
21578}
21579extern "C" {
21580    pub fn g_timer_start(timer: *mut GTimer);
21581}
21582extern "C" {
21583    pub fn g_timer_stop(timer: *mut GTimer);
21584}
21585extern "C" {
21586    pub fn g_timer_reset(timer: *mut GTimer);
21587}
21588extern "C" {
21589    pub fn g_timer_continue(timer: *mut GTimer);
21590}
21591extern "C" {
21592    pub fn g_timer_elapsed(timer: *mut GTimer, microseconds: *mut gulong) -> gdouble;
21593}
21594extern "C" {
21595    pub fn g_usleep(microseconds: gulong);
21596}
21597extern "C" {
21598    pub fn g_time_val_add(time_: *mut GTimeVal, microseconds: glong);
21599}
21600extern "C" {
21601    pub fn g_time_val_from_iso8601(iso_date: *const gchar, time_: *mut GTimeVal) -> gboolean;
21602}
21603extern "C" {
21604    pub fn g_time_val_to_iso8601(time_: *mut GTimeVal) -> *mut gchar;
21605}
21606pub type GTrashStack = _GTrashStack;
21607#[repr(C)]
21608#[derive(Debug, Copy, Clone)]
21609pub struct _GTrashStack {
21610    pub next: *mut GTrashStack,
21611}
21612#[test]
21613fn bindgen_test_layout__GTrashStack() {
21614    assert_eq!(
21615        ::std::mem::size_of::<_GTrashStack>(),
21616        8usize,
21617        concat!("Size of: ", stringify!(_GTrashStack))
21618    );
21619    assert_eq!(
21620        ::std::mem::align_of::<_GTrashStack>(),
21621        8usize,
21622        concat!("Alignment of ", stringify!(_GTrashStack))
21623    );
21624    assert_eq!(
21625        unsafe { &(*(::std::ptr::null::<_GTrashStack>())).next as *const _ as usize },
21626        0usize,
21627        concat!(
21628            "Offset of field: ",
21629            stringify!(_GTrashStack),
21630            "::",
21631            stringify!(next)
21632        )
21633    );
21634}
21635extern "C" {
21636    pub fn g_trash_stack_push(stack_p: *mut *mut GTrashStack, data_p: gpointer);
21637}
21638extern "C" {
21639    pub fn g_trash_stack_pop(stack_p: *mut *mut GTrashStack) -> gpointer;
21640}
21641extern "C" {
21642    pub fn g_trash_stack_peek(stack_p: *mut *mut GTrashStack) -> gpointer;
21643}
21644extern "C" {
21645    pub fn g_trash_stack_height(stack_p: *mut *mut GTrashStack) -> guint;
21646}
21647#[repr(C)]
21648#[derive(Debug, Copy, Clone)]
21649pub struct _GTree {
21650    _unused: [u8; 0],
21651}
21652pub type GTree = _GTree;
21653pub type GTraverseFunc = ::std::option::Option<
21654    unsafe extern "C" fn(key: gpointer, value: gpointer, data: gpointer) -> gboolean,
21655>;
21656extern "C" {
21657    pub fn g_tree_new(key_compare_func: GCompareFunc) -> *mut GTree;
21658}
21659extern "C" {
21660    pub fn g_tree_new_with_data(
21661        key_compare_func: GCompareDataFunc,
21662        key_compare_data: gpointer,
21663    ) -> *mut GTree;
21664}
21665extern "C" {
21666    pub fn g_tree_new_full(
21667        key_compare_func: GCompareDataFunc,
21668        key_compare_data: gpointer,
21669        key_destroy_func: GDestroyNotify,
21670        value_destroy_func: GDestroyNotify,
21671    ) -> *mut GTree;
21672}
21673extern "C" {
21674    pub fn g_tree_ref(tree: *mut GTree) -> *mut GTree;
21675}
21676extern "C" {
21677    pub fn g_tree_unref(tree: *mut GTree);
21678}
21679extern "C" {
21680    pub fn g_tree_destroy(tree: *mut GTree);
21681}
21682extern "C" {
21683    pub fn g_tree_insert(tree: *mut GTree, key: gpointer, value: gpointer);
21684}
21685extern "C" {
21686    pub fn g_tree_replace(tree: *mut GTree, key: gpointer, value: gpointer);
21687}
21688extern "C" {
21689    pub fn g_tree_remove(tree: *mut GTree, key: gconstpointer) -> gboolean;
21690}
21691extern "C" {
21692    pub fn g_tree_steal(tree: *mut GTree, key: gconstpointer) -> gboolean;
21693}
21694extern "C" {
21695    pub fn g_tree_lookup(tree: *mut GTree, key: gconstpointer) -> gpointer;
21696}
21697extern "C" {
21698    pub fn g_tree_lookup_extended(
21699        tree: *mut GTree,
21700        lookup_key: gconstpointer,
21701        orig_key: *mut gpointer,
21702        value: *mut gpointer,
21703    ) -> gboolean;
21704}
21705extern "C" {
21706    pub fn g_tree_foreach(tree: *mut GTree, func: GTraverseFunc, user_data: gpointer);
21707}
21708extern "C" {
21709    pub fn g_tree_traverse(
21710        tree: *mut GTree,
21711        traverse_func: GTraverseFunc,
21712        traverse_type: GTraverseType,
21713        user_data: gpointer,
21714    );
21715}
21716extern "C" {
21717    pub fn g_tree_search(
21718        tree: *mut GTree,
21719        search_func: GCompareFunc,
21720        user_data: gconstpointer,
21721    ) -> gpointer;
21722}
21723extern "C" {
21724    pub fn g_tree_height(tree: *mut GTree) -> gint;
21725}
21726extern "C" {
21727    pub fn g_tree_nnodes(tree: *mut GTree) -> gint;
21728}
21729extern "C" {
21730    pub fn g_uri_unescape_string(
21731        escaped_string: *const ::std::os::raw::c_char,
21732        illegal_characters: *const ::std::os::raw::c_char,
21733    ) -> *mut ::std::os::raw::c_char;
21734}
21735extern "C" {
21736    pub fn g_uri_unescape_segment(
21737        escaped_string: *const ::std::os::raw::c_char,
21738        escaped_string_end: *const ::std::os::raw::c_char,
21739        illegal_characters: *const ::std::os::raw::c_char,
21740    ) -> *mut ::std::os::raw::c_char;
21741}
21742extern "C" {
21743    pub fn g_uri_parse_scheme(uri: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
21744}
21745extern "C" {
21746    pub fn g_uri_escape_string(
21747        unescaped: *const ::std::os::raw::c_char,
21748        reserved_chars_allowed: *const ::std::os::raw::c_char,
21749        allow_utf8: gboolean,
21750    ) -> *mut ::std::os::raw::c_char;
21751}
21752extern "C" {
21753    pub fn g_uuid_string_is_valid(str: *const gchar) -> gboolean;
21754}
21755extern "C" {
21756    pub fn g_uuid_string_random() -> *mut gchar;
21757}
21758extern "C" {
21759    pub static glib_major_version: guint;
21760}
21761extern "C" {
21762    pub static glib_minor_version: guint;
21763}
21764extern "C" {
21765    pub static glib_micro_version: guint;
21766}
21767extern "C" {
21768    pub static glib_interface_age: guint;
21769}
21770extern "C" {
21771    pub static glib_binary_age: guint;
21772}
21773extern "C" {
21774    pub fn glib_check_version(
21775        required_major: guint,
21776        required_minor: guint,
21777        required_micro: guint,
21778    ) -> *const gchar;
21779}
21780#[repr(C)]
21781#[derive(Debug, Copy, Clone)]
21782pub struct _GAllocator {
21783    _unused: [u8; 0],
21784}
21785pub type GAllocator = _GAllocator;
21786#[repr(C)]
21787#[derive(Debug, Copy, Clone)]
21788pub struct _GMemChunk {
21789    _unused: [u8; 0],
21790}
21791pub type GMemChunk = _GMemChunk;
21792extern "C" {
21793    pub fn g_mem_chunk_new(
21794        name: *const gchar,
21795        atom_size: gint,
21796        area_size: gsize,
21797        type_: gint,
21798    ) -> *mut GMemChunk;
21799}
21800extern "C" {
21801    pub fn g_mem_chunk_destroy(mem_chunk: *mut GMemChunk);
21802}
21803extern "C" {
21804    pub fn g_mem_chunk_alloc(mem_chunk: *mut GMemChunk) -> gpointer;
21805}
21806extern "C" {
21807    pub fn g_mem_chunk_alloc0(mem_chunk: *mut GMemChunk) -> gpointer;
21808}
21809extern "C" {
21810    pub fn g_mem_chunk_free(mem_chunk: *mut GMemChunk, mem: gpointer);
21811}
21812extern "C" {
21813    pub fn g_mem_chunk_clean(mem_chunk: *mut GMemChunk);
21814}
21815extern "C" {
21816    pub fn g_mem_chunk_reset(mem_chunk: *mut GMemChunk);
21817}
21818extern "C" {
21819    pub fn g_mem_chunk_print(mem_chunk: *mut GMemChunk);
21820}
21821extern "C" {
21822    pub fn g_mem_chunk_info();
21823}
21824extern "C" {
21825    pub fn g_blow_chunks();
21826}
21827extern "C" {
21828    pub fn g_allocator_new(name: *const gchar, n_preallocs: guint) -> *mut GAllocator;
21829}
21830extern "C" {
21831    pub fn g_allocator_free(allocator: *mut GAllocator);
21832}
21833extern "C" {
21834    pub fn g_list_push_allocator(allocator: *mut GAllocator);
21835}
21836extern "C" {
21837    pub fn g_list_pop_allocator();
21838}
21839extern "C" {
21840    pub fn g_slist_push_allocator(allocator: *mut GAllocator);
21841}
21842extern "C" {
21843    pub fn g_slist_pop_allocator();
21844}
21845extern "C" {
21846    pub fn g_node_push_allocator(allocator: *mut GAllocator);
21847}
21848extern "C" {
21849    pub fn g_node_pop_allocator();
21850}
21851#[repr(C)]
21852#[derive(Debug, Copy, Clone)]
21853pub struct _GCache {
21854    _unused: [u8; 0],
21855}
21856pub type GCache = _GCache;
21857pub type GCacheNewFunc = ::std::option::Option<unsafe extern "C" fn(key: gpointer) -> gpointer>;
21858pub type GCacheDupFunc = ::std::option::Option<unsafe extern "C" fn(value: gpointer) -> gpointer>;
21859pub type GCacheDestroyFunc = ::std::option::Option<unsafe extern "C" fn(value: gpointer)>;
21860extern "C" {
21861    pub fn g_cache_new(
21862        value_new_func: GCacheNewFunc,
21863        value_destroy_func: GCacheDestroyFunc,
21864        key_dup_func: GCacheDupFunc,
21865        key_destroy_func: GCacheDestroyFunc,
21866        hash_key_func: GHashFunc,
21867        hash_value_func: GHashFunc,
21868        key_equal_func: GEqualFunc,
21869    ) -> *mut GCache;
21870}
21871extern "C" {
21872    pub fn g_cache_destroy(cache: *mut GCache);
21873}
21874extern "C" {
21875    pub fn g_cache_insert(cache: *mut GCache, key: gpointer) -> gpointer;
21876}
21877extern "C" {
21878    pub fn g_cache_remove(cache: *mut GCache, value: gconstpointer);
21879}
21880extern "C" {
21881    pub fn g_cache_key_foreach(cache: *mut GCache, func: GHFunc, user_data: gpointer);
21882}
21883extern "C" {
21884    pub fn g_cache_value_foreach(cache: *mut GCache, func: GHFunc, user_data: gpointer);
21885}
21886pub type GCompletion = _GCompletion;
21887pub type GCompletionFunc =
21888    ::std::option::Option<unsafe extern "C" fn(arg1: gpointer) -> *mut gchar>;
21889pub type GCompletionStrncmpFunc = ::std::option::Option<
21890    unsafe extern "C" fn(s1: *const gchar, s2: *const gchar, n: gsize) -> gint,
21891>;
21892#[repr(C)]
21893#[derive(Debug, Copy, Clone)]
21894pub struct _GCompletion {
21895    pub items: *mut GList,
21896    pub func: GCompletionFunc,
21897    pub prefix: *mut gchar,
21898    pub cache: *mut GList,
21899    pub strncmp_func: GCompletionStrncmpFunc,
21900}
21901#[test]
21902fn bindgen_test_layout__GCompletion() {
21903    assert_eq!(
21904        ::std::mem::size_of::<_GCompletion>(),
21905        40usize,
21906        concat!("Size of: ", stringify!(_GCompletion))
21907    );
21908    assert_eq!(
21909        ::std::mem::align_of::<_GCompletion>(),
21910        8usize,
21911        concat!("Alignment of ", stringify!(_GCompletion))
21912    );
21913    assert_eq!(
21914        unsafe { &(*(::std::ptr::null::<_GCompletion>())).items as *const _ as usize },
21915        0usize,
21916        concat!(
21917            "Offset of field: ",
21918            stringify!(_GCompletion),
21919            "::",
21920            stringify!(items)
21921        )
21922    );
21923    assert_eq!(
21924        unsafe { &(*(::std::ptr::null::<_GCompletion>())).func as *const _ as usize },
21925        8usize,
21926        concat!(
21927            "Offset of field: ",
21928            stringify!(_GCompletion),
21929            "::",
21930            stringify!(func)
21931        )
21932    );
21933    assert_eq!(
21934        unsafe { &(*(::std::ptr::null::<_GCompletion>())).prefix as *const _ as usize },
21935        16usize,
21936        concat!(
21937            "Offset of field: ",
21938            stringify!(_GCompletion),
21939            "::",
21940            stringify!(prefix)
21941        )
21942    );
21943    assert_eq!(
21944        unsafe { &(*(::std::ptr::null::<_GCompletion>())).cache as *const _ as usize },
21945        24usize,
21946        concat!(
21947            "Offset of field: ",
21948            stringify!(_GCompletion),
21949            "::",
21950            stringify!(cache)
21951        )
21952    );
21953    assert_eq!(
21954        unsafe { &(*(::std::ptr::null::<_GCompletion>())).strncmp_func as *const _ as usize },
21955        32usize,
21956        concat!(
21957            "Offset of field: ",
21958            stringify!(_GCompletion),
21959            "::",
21960            stringify!(strncmp_func)
21961        )
21962    );
21963}
21964extern "C" {
21965    pub fn g_completion_new(func: GCompletionFunc) -> *mut GCompletion;
21966}
21967extern "C" {
21968    pub fn g_completion_add_items(cmp: *mut GCompletion, items: *mut GList);
21969}
21970extern "C" {
21971    pub fn g_completion_remove_items(cmp: *mut GCompletion, items: *mut GList);
21972}
21973extern "C" {
21974    pub fn g_completion_clear_items(cmp: *mut GCompletion);
21975}
21976extern "C" {
21977    pub fn g_completion_complete(
21978        cmp: *mut GCompletion,
21979        prefix: *const gchar,
21980        new_prefix: *mut *mut gchar,
21981    ) -> *mut GList;
21982}
21983extern "C" {
21984    pub fn g_completion_complete_utf8(
21985        cmp: *mut GCompletion,
21986        prefix: *const gchar,
21987        new_prefix: *mut *mut gchar,
21988    ) -> *mut GList;
21989}
21990extern "C" {
21991    pub fn g_completion_set_compare(cmp: *mut GCompletion, strncmp_func: GCompletionStrncmpFunc);
21992}
21993extern "C" {
21994    pub fn g_completion_free(cmp: *mut GCompletion);
21995}
21996#[repr(C)]
21997#[derive(Debug, Copy, Clone)]
21998pub struct _GRelation {
21999    _unused: [u8; 0],
22000}
22001pub type GRelation = _GRelation;
22002pub type GTuples = _GTuples;
22003#[repr(C)]
22004#[derive(Debug, Copy, Clone)]
22005pub struct _GTuples {
22006    pub len: guint,
22007}
22008#[test]
22009fn bindgen_test_layout__GTuples() {
22010    assert_eq!(
22011        ::std::mem::size_of::<_GTuples>(),
22012        4usize,
22013        concat!("Size of: ", stringify!(_GTuples))
22014    );
22015    assert_eq!(
22016        ::std::mem::align_of::<_GTuples>(),
22017        4usize,
22018        concat!("Alignment of ", stringify!(_GTuples))
22019    );
22020    assert_eq!(
22021        unsafe { &(*(::std::ptr::null::<_GTuples>())).len as *const _ as usize },
22022        0usize,
22023        concat!(
22024            "Offset of field: ",
22025            stringify!(_GTuples),
22026            "::",
22027            stringify!(len)
22028        )
22029    );
22030}
22031extern "C" {
22032    pub fn g_relation_new(fields: gint) -> *mut GRelation;
22033}
22034extern "C" {
22035    pub fn g_relation_destroy(relation: *mut GRelation);
22036}
22037extern "C" {
22038    pub fn g_relation_index(
22039        relation: *mut GRelation,
22040        field: gint,
22041        hash_func: GHashFunc,
22042        key_equal_func: GEqualFunc,
22043    );
22044}
22045extern "C" {
22046    pub fn g_relation_insert(relation: *mut GRelation, ...);
22047}
22048extern "C" {
22049    pub fn g_relation_delete(relation: *mut GRelation, key: gconstpointer, field: gint) -> gint;
22050}
22051extern "C" {
22052    pub fn g_relation_select(
22053        relation: *mut GRelation,
22054        key: gconstpointer,
22055        field: gint,
22056    ) -> *mut GTuples;
22057}
22058extern "C" {
22059    pub fn g_relation_count(relation: *mut GRelation, key: gconstpointer, field: gint) -> gint;
22060}
22061extern "C" {
22062    pub fn g_relation_exists(relation: *mut GRelation, ...) -> gboolean;
22063}
22064extern "C" {
22065    pub fn g_relation_print(relation: *mut GRelation);
22066}
22067extern "C" {
22068    pub fn g_tuples_destroy(tuples: *mut GTuples);
22069}
22070extern "C" {
22071    pub fn g_tuples_index(tuples: *mut GTuples, index_: gint, field: gint) -> gpointer;
22072}
22073pub const GThreadPriority_G_THREAD_PRIORITY_LOW: GThreadPriority = 0;
22074pub const GThreadPriority_G_THREAD_PRIORITY_NORMAL: GThreadPriority = 1;
22075pub const GThreadPriority_G_THREAD_PRIORITY_HIGH: GThreadPriority = 2;
22076pub const GThreadPriority_G_THREAD_PRIORITY_URGENT: GThreadPriority = 3;
22077pub type GThreadPriority = u32;
22078#[repr(C)]
22079#[derive(Debug, Copy, Clone)]
22080pub struct _GThread {
22081    pub func: GThreadFunc,
22082    pub data: gpointer,
22083    pub joinable: gboolean,
22084    pub priority: GThreadPriority,
22085}
22086#[test]
22087fn bindgen_test_layout__GThread() {
22088    assert_eq!(
22089        ::std::mem::size_of::<_GThread>(),
22090        24usize,
22091        concat!("Size of: ", stringify!(_GThread))
22092    );
22093    assert_eq!(
22094        ::std::mem::align_of::<_GThread>(),
22095        8usize,
22096        concat!("Alignment of ", stringify!(_GThread))
22097    );
22098    assert_eq!(
22099        unsafe { &(*(::std::ptr::null::<_GThread>())).func as *const _ as usize },
22100        0usize,
22101        concat!(
22102            "Offset of field: ",
22103            stringify!(_GThread),
22104            "::",
22105            stringify!(func)
22106        )
22107    );
22108    assert_eq!(
22109        unsafe { &(*(::std::ptr::null::<_GThread>())).data as *const _ as usize },
22110        8usize,
22111        concat!(
22112            "Offset of field: ",
22113            stringify!(_GThread),
22114            "::",
22115            stringify!(data)
22116        )
22117    );
22118    assert_eq!(
22119        unsafe { &(*(::std::ptr::null::<_GThread>())).joinable as *const _ as usize },
22120        16usize,
22121        concat!(
22122            "Offset of field: ",
22123            stringify!(_GThread),
22124            "::",
22125            stringify!(joinable)
22126        )
22127    );
22128    assert_eq!(
22129        unsafe { &(*(::std::ptr::null::<_GThread>())).priority as *const _ as usize },
22130        20usize,
22131        concat!(
22132            "Offset of field: ",
22133            stringify!(_GThread),
22134            "::",
22135            stringify!(priority)
22136        )
22137    );
22138}
22139pub type GThreadFunctions = _GThreadFunctions;
22140#[repr(C)]
22141#[derive(Debug, Copy, Clone)]
22142pub struct _GThreadFunctions {
22143    pub mutex_new: ::std::option::Option<unsafe extern "C" fn() -> *mut GMutex>,
22144    pub mutex_lock: ::std::option::Option<unsafe extern "C" fn(mutex: *mut GMutex)>,
22145    pub mutex_trylock: ::std::option::Option<unsafe extern "C" fn(mutex: *mut GMutex) -> gboolean>,
22146    pub mutex_unlock: ::std::option::Option<unsafe extern "C" fn(mutex: *mut GMutex)>,
22147    pub mutex_free: ::std::option::Option<unsafe extern "C" fn(mutex: *mut GMutex)>,
22148    pub cond_new: ::std::option::Option<unsafe extern "C" fn() -> *mut GCond>,
22149    pub cond_signal: ::std::option::Option<unsafe extern "C" fn(cond: *mut GCond)>,
22150    pub cond_broadcast: ::std::option::Option<unsafe extern "C" fn(cond: *mut GCond)>,
22151    pub cond_wait:
22152        ::std::option::Option<unsafe extern "C" fn(cond: *mut GCond, mutex: *mut GMutex)>,
22153    pub cond_timed_wait: ::std::option::Option<
22154        unsafe extern "C" fn(
22155            cond: *mut GCond,
22156            mutex: *mut GMutex,
22157            end_time: *mut GTimeVal,
22158        ) -> gboolean,
22159    >,
22160    pub cond_free: ::std::option::Option<unsafe extern "C" fn(cond: *mut GCond)>,
22161    pub private_new:
22162        ::std::option::Option<unsafe extern "C" fn(destructor: GDestroyNotify) -> *mut GPrivate>,
22163    pub private_get:
22164        ::std::option::Option<unsafe extern "C" fn(private_key: *mut GPrivate) -> gpointer>,
22165    pub private_set:
22166        ::std::option::Option<unsafe extern "C" fn(private_key: *mut GPrivate, data: gpointer)>,
22167    pub thread_create: ::std::option::Option<
22168        unsafe extern "C" fn(
22169            func: GThreadFunc,
22170            data: gpointer,
22171            stack_size: gulong,
22172            joinable: gboolean,
22173            bound: gboolean,
22174            priority: GThreadPriority,
22175            thread: gpointer,
22176            error: *mut *mut GError,
22177        ),
22178    >,
22179    pub thread_yield: ::std::option::Option<unsafe extern "C" fn()>,
22180    pub thread_join: ::std::option::Option<unsafe extern "C" fn(thread: gpointer)>,
22181    pub thread_exit: ::std::option::Option<unsafe extern "C" fn()>,
22182    pub thread_set_priority:
22183        ::std::option::Option<unsafe extern "C" fn(thread: gpointer, priority: GThreadPriority)>,
22184    pub thread_self: ::std::option::Option<unsafe extern "C" fn(thread: gpointer)>,
22185    pub thread_equal: ::std::option::Option<
22186        unsafe extern "C" fn(thread1: gpointer, thread2: gpointer) -> gboolean,
22187    >,
22188}
22189#[test]
22190fn bindgen_test_layout__GThreadFunctions() {
22191    assert_eq!(
22192        ::std::mem::size_of::<_GThreadFunctions>(),
22193        168usize,
22194        concat!("Size of: ", stringify!(_GThreadFunctions))
22195    );
22196    assert_eq!(
22197        ::std::mem::align_of::<_GThreadFunctions>(),
22198        8usize,
22199        concat!("Alignment of ", stringify!(_GThreadFunctions))
22200    );
22201    assert_eq!(
22202        unsafe { &(*(::std::ptr::null::<_GThreadFunctions>())).mutex_new as *const _ as usize },
22203        0usize,
22204        concat!(
22205            "Offset of field: ",
22206            stringify!(_GThreadFunctions),
22207            "::",
22208            stringify!(mutex_new)
22209        )
22210    );
22211    assert_eq!(
22212        unsafe { &(*(::std::ptr::null::<_GThreadFunctions>())).mutex_lock as *const _ as usize },
22213        8usize,
22214        concat!(
22215            "Offset of field: ",
22216            stringify!(_GThreadFunctions),
22217            "::",
22218            stringify!(mutex_lock)
22219        )
22220    );
22221    assert_eq!(
22222        unsafe { &(*(::std::ptr::null::<_GThreadFunctions>())).mutex_trylock as *const _ as usize },
22223        16usize,
22224        concat!(
22225            "Offset of field: ",
22226            stringify!(_GThreadFunctions),
22227            "::",
22228            stringify!(mutex_trylock)
22229        )
22230    );
22231    assert_eq!(
22232        unsafe { &(*(::std::ptr::null::<_GThreadFunctions>())).mutex_unlock as *const _ as usize },
22233        24usize,
22234        concat!(
22235            "Offset of field: ",
22236            stringify!(_GThreadFunctions),
22237            "::",
22238            stringify!(mutex_unlock)
22239        )
22240    );
22241    assert_eq!(
22242        unsafe { &(*(::std::ptr::null::<_GThreadFunctions>())).mutex_free as *const _ as usize },
22243        32usize,
22244        concat!(
22245            "Offset of field: ",
22246            stringify!(_GThreadFunctions),
22247            "::",
22248            stringify!(mutex_free)
22249        )
22250    );
22251    assert_eq!(
22252        unsafe { &(*(::std::ptr::null::<_GThreadFunctions>())).cond_new as *const _ as usize },
22253        40usize,
22254        concat!(
22255            "Offset of field: ",
22256            stringify!(_GThreadFunctions),
22257            "::",
22258            stringify!(cond_new)
22259        )
22260    );
22261    assert_eq!(
22262        unsafe { &(*(::std::ptr::null::<_GThreadFunctions>())).cond_signal as *const _ as usize },
22263        48usize,
22264        concat!(
22265            "Offset of field: ",
22266            stringify!(_GThreadFunctions),
22267            "::",
22268            stringify!(cond_signal)
22269        )
22270    );
22271    assert_eq!(
22272        unsafe {
22273            &(*(::std::ptr::null::<_GThreadFunctions>())).cond_broadcast as *const _ as usize
22274        },
22275        56usize,
22276        concat!(
22277            "Offset of field: ",
22278            stringify!(_GThreadFunctions),
22279            "::",
22280            stringify!(cond_broadcast)
22281        )
22282    );
22283    assert_eq!(
22284        unsafe { &(*(::std::ptr::null::<_GThreadFunctions>())).cond_wait as *const _ as usize },
22285        64usize,
22286        concat!(
22287            "Offset of field: ",
22288            stringify!(_GThreadFunctions),
22289            "::",
22290            stringify!(cond_wait)
22291        )
22292    );
22293    assert_eq!(
22294        unsafe {
22295            &(*(::std::ptr::null::<_GThreadFunctions>())).cond_timed_wait as *const _ as usize
22296        },
22297        72usize,
22298        concat!(
22299            "Offset of field: ",
22300            stringify!(_GThreadFunctions),
22301            "::",
22302            stringify!(cond_timed_wait)
22303        )
22304    );
22305    assert_eq!(
22306        unsafe { &(*(::std::ptr::null::<_GThreadFunctions>())).cond_free as *const _ as usize },
22307        80usize,
22308        concat!(
22309            "Offset of field: ",
22310            stringify!(_GThreadFunctions),
22311            "::",
22312            stringify!(cond_free)
22313        )
22314    );
22315    assert_eq!(
22316        unsafe { &(*(::std::ptr::null::<_GThreadFunctions>())).private_new as *const _ as usize },
22317        88usize,
22318        concat!(
22319            "Offset of field: ",
22320            stringify!(_GThreadFunctions),
22321            "::",
22322            stringify!(private_new)
22323        )
22324    );
22325    assert_eq!(
22326        unsafe { &(*(::std::ptr::null::<_GThreadFunctions>())).private_get as *const _ as usize },
22327        96usize,
22328        concat!(
22329            "Offset of field: ",
22330            stringify!(_GThreadFunctions),
22331            "::",
22332            stringify!(private_get)
22333        )
22334    );
22335    assert_eq!(
22336        unsafe { &(*(::std::ptr::null::<_GThreadFunctions>())).private_set as *const _ as usize },
22337        104usize,
22338        concat!(
22339            "Offset of field: ",
22340            stringify!(_GThreadFunctions),
22341            "::",
22342            stringify!(private_set)
22343        )
22344    );
22345    assert_eq!(
22346        unsafe { &(*(::std::ptr::null::<_GThreadFunctions>())).thread_create as *const _ as usize },
22347        112usize,
22348        concat!(
22349            "Offset of field: ",
22350            stringify!(_GThreadFunctions),
22351            "::",
22352            stringify!(thread_create)
22353        )
22354    );
22355    assert_eq!(
22356        unsafe { &(*(::std::ptr::null::<_GThreadFunctions>())).thread_yield as *const _ as usize },
22357        120usize,
22358        concat!(
22359            "Offset of field: ",
22360            stringify!(_GThreadFunctions),
22361            "::",
22362            stringify!(thread_yield)
22363        )
22364    );
22365    assert_eq!(
22366        unsafe { &(*(::std::ptr::null::<_GThreadFunctions>())).thread_join as *const _ as usize },
22367        128usize,
22368        concat!(
22369            "Offset of field: ",
22370            stringify!(_GThreadFunctions),
22371            "::",
22372            stringify!(thread_join)
22373        )
22374    );
22375    assert_eq!(
22376        unsafe { &(*(::std::ptr::null::<_GThreadFunctions>())).thread_exit as *const _ as usize },
22377        136usize,
22378        concat!(
22379            "Offset of field: ",
22380            stringify!(_GThreadFunctions),
22381            "::",
22382            stringify!(thread_exit)
22383        )
22384    );
22385    assert_eq!(
22386        unsafe {
22387            &(*(::std::ptr::null::<_GThreadFunctions>())).thread_set_priority as *const _ as usize
22388        },
22389        144usize,
22390        concat!(
22391            "Offset of field: ",
22392            stringify!(_GThreadFunctions),
22393            "::",
22394            stringify!(thread_set_priority)
22395        )
22396    );
22397    assert_eq!(
22398        unsafe { &(*(::std::ptr::null::<_GThreadFunctions>())).thread_self as *const _ as usize },
22399        152usize,
22400        concat!(
22401            "Offset of field: ",
22402            stringify!(_GThreadFunctions),
22403            "::",
22404            stringify!(thread_self)
22405        )
22406    );
22407    assert_eq!(
22408        unsafe { &(*(::std::ptr::null::<_GThreadFunctions>())).thread_equal as *const _ as usize },
22409        160usize,
22410        concat!(
22411            "Offset of field: ",
22412            stringify!(_GThreadFunctions),
22413            "::",
22414            stringify!(thread_equal)
22415        )
22416    );
22417}
22418extern "C" {
22419    pub static mut g_thread_functions_for_glib_use: GThreadFunctions;
22420}
22421extern "C" {
22422    pub static mut g_thread_use_default_impl: gboolean;
22423}
22424extern "C" {
22425    pub static mut g_thread_gettime: ::std::option::Option<unsafe extern "C" fn() -> guint64>;
22426}
22427extern "C" {
22428    pub fn g_thread_create(
22429        func: GThreadFunc,
22430        data: gpointer,
22431        joinable: gboolean,
22432        error: *mut *mut GError,
22433    ) -> *mut GThread;
22434}
22435extern "C" {
22436    pub fn g_thread_create_full(
22437        func: GThreadFunc,
22438        data: gpointer,
22439        stack_size: gulong,
22440        joinable: gboolean,
22441        bound: gboolean,
22442        priority: GThreadPriority,
22443        error: *mut *mut GError,
22444    ) -> *mut GThread;
22445}
22446extern "C" {
22447    pub fn g_thread_set_priority(thread: *mut GThread, priority: GThreadPriority);
22448}
22449extern "C" {
22450    pub fn g_thread_foreach(thread_func: GFunc, user_data: gpointer);
22451}
22452#[repr(C)]
22453#[derive(Debug, Copy, Clone)]
22454pub struct sched_param {
22455    pub sched_priority: ::std::os::raw::c_int,
22456}
22457#[test]
22458fn bindgen_test_layout_sched_param() {
22459    assert_eq!(
22460        ::std::mem::size_of::<sched_param>(),
22461        4usize,
22462        concat!("Size of: ", stringify!(sched_param))
22463    );
22464    assert_eq!(
22465        ::std::mem::align_of::<sched_param>(),
22466        4usize,
22467        concat!("Alignment of ", stringify!(sched_param))
22468    );
22469    assert_eq!(
22470        unsafe { &(*(::std::ptr::null::<sched_param>())).sched_priority as *const _ as usize },
22471        0usize,
22472        concat!(
22473            "Offset of field: ",
22474            stringify!(sched_param),
22475            "::",
22476            stringify!(sched_priority)
22477        )
22478    );
22479}
22480pub type __cpu_mask = ::std::os::raw::c_ulong;
22481#[repr(C)]
22482#[derive(Debug, Copy, Clone)]
22483pub struct cpu_set_t {
22484    pub __bits: [__cpu_mask; 16usize],
22485}
22486#[test]
22487fn bindgen_test_layout_cpu_set_t() {
22488    assert_eq!(
22489        ::std::mem::size_of::<cpu_set_t>(),
22490        128usize,
22491        concat!("Size of: ", stringify!(cpu_set_t))
22492    );
22493    assert_eq!(
22494        ::std::mem::align_of::<cpu_set_t>(),
22495        8usize,
22496        concat!("Alignment of ", stringify!(cpu_set_t))
22497    );
22498    assert_eq!(
22499        unsafe { &(*(::std::ptr::null::<cpu_set_t>())).__bits as *const _ as usize },
22500        0usize,
22501        concat!(
22502            "Offset of field: ",
22503            stringify!(cpu_set_t),
22504            "::",
22505            stringify!(__bits)
22506        )
22507    );
22508}
22509extern "C" {
22510    pub fn __sched_cpucount(__setsize: usize, __setp: *const cpu_set_t) -> ::std::os::raw::c_int;
22511}
22512extern "C" {
22513    pub fn __sched_cpualloc(__count: usize) -> *mut cpu_set_t;
22514}
22515extern "C" {
22516    pub fn __sched_cpufree(__set: *mut cpu_set_t);
22517}
22518extern "C" {
22519    pub fn sched_setparam(__pid: __pid_t, __param: *const sched_param) -> ::std::os::raw::c_int;
22520}
22521extern "C" {
22522    pub fn sched_getparam(__pid: __pid_t, __param: *mut sched_param) -> ::std::os::raw::c_int;
22523}
22524extern "C" {
22525    pub fn sched_setscheduler(
22526        __pid: __pid_t,
22527        __policy: ::std::os::raw::c_int,
22528        __param: *const sched_param,
22529    ) -> ::std::os::raw::c_int;
22530}
22531extern "C" {
22532    pub fn sched_getscheduler(__pid: __pid_t) -> ::std::os::raw::c_int;
22533}
22534extern "C" {
22535    pub fn sched_yield() -> ::std::os::raw::c_int;
22536}
22537extern "C" {
22538    pub fn sched_get_priority_max(__algorithm: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
22539}
22540extern "C" {
22541    pub fn sched_get_priority_min(__algorithm: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
22542}
22543extern "C" {
22544    pub fn sched_rr_get_interval(__pid: __pid_t, __t: *mut timespec) -> ::std::os::raw::c_int;
22545}
22546pub type __jmp_buf = [::std::os::raw::c_long; 8usize];
22547pub const PTHREAD_CREATE_JOINABLE: _bindgen_ty_15 = 0;
22548pub const PTHREAD_CREATE_DETACHED: _bindgen_ty_15 = 1;
22549pub type _bindgen_ty_15 = u32;
22550pub const PTHREAD_MUTEX_TIMED_NP: _bindgen_ty_16 = 0;
22551pub const PTHREAD_MUTEX_RECURSIVE_NP: _bindgen_ty_16 = 1;
22552pub const PTHREAD_MUTEX_ERRORCHECK_NP: _bindgen_ty_16 = 2;
22553pub const PTHREAD_MUTEX_ADAPTIVE_NP: _bindgen_ty_16 = 3;
22554pub const PTHREAD_MUTEX_NORMAL: _bindgen_ty_16 = 0;
22555pub const PTHREAD_MUTEX_RECURSIVE: _bindgen_ty_16 = 1;
22556pub const PTHREAD_MUTEX_ERRORCHECK: _bindgen_ty_16 = 2;
22557pub const PTHREAD_MUTEX_DEFAULT: _bindgen_ty_16 = 0;
22558pub type _bindgen_ty_16 = u32;
22559pub const PTHREAD_MUTEX_STALLED: _bindgen_ty_17 = 0;
22560pub const PTHREAD_MUTEX_STALLED_NP: _bindgen_ty_17 = 0;
22561pub const PTHREAD_MUTEX_ROBUST: _bindgen_ty_17 = 1;
22562pub const PTHREAD_MUTEX_ROBUST_NP: _bindgen_ty_17 = 1;
22563pub type _bindgen_ty_17 = u32;
22564pub const PTHREAD_PRIO_NONE: _bindgen_ty_18 = 0;
22565pub const PTHREAD_PRIO_INHERIT: _bindgen_ty_18 = 1;
22566pub const PTHREAD_PRIO_PROTECT: _bindgen_ty_18 = 2;
22567pub type _bindgen_ty_18 = u32;
22568pub const PTHREAD_RWLOCK_PREFER_READER_NP: _bindgen_ty_19 = 0;
22569pub const PTHREAD_RWLOCK_PREFER_WRITER_NP: _bindgen_ty_19 = 1;
22570pub const PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP: _bindgen_ty_19 = 2;
22571pub const PTHREAD_RWLOCK_DEFAULT_NP: _bindgen_ty_19 = 0;
22572pub type _bindgen_ty_19 = u32;
22573pub const PTHREAD_INHERIT_SCHED: _bindgen_ty_20 = 0;
22574pub const PTHREAD_EXPLICIT_SCHED: _bindgen_ty_20 = 1;
22575pub type _bindgen_ty_20 = u32;
22576pub const PTHREAD_SCOPE_SYSTEM: _bindgen_ty_21 = 0;
22577pub const PTHREAD_SCOPE_PROCESS: _bindgen_ty_21 = 1;
22578pub type _bindgen_ty_21 = u32;
22579pub const PTHREAD_PROCESS_PRIVATE: _bindgen_ty_22 = 0;
22580pub const PTHREAD_PROCESS_SHARED: _bindgen_ty_22 = 1;
22581pub type _bindgen_ty_22 = u32;
22582#[repr(C)]
22583#[derive(Debug, Copy, Clone)]
22584pub struct _pthread_cleanup_buffer {
22585    pub __routine: ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>,
22586    pub __arg: *mut ::std::os::raw::c_void,
22587    pub __canceltype: ::std::os::raw::c_int,
22588    pub __prev: *mut _pthread_cleanup_buffer,
22589}
22590#[test]
22591fn bindgen_test_layout__pthread_cleanup_buffer() {
22592    assert_eq!(
22593        ::std::mem::size_of::<_pthread_cleanup_buffer>(),
22594        32usize,
22595        concat!("Size of: ", stringify!(_pthread_cleanup_buffer))
22596    );
22597    assert_eq!(
22598        ::std::mem::align_of::<_pthread_cleanup_buffer>(),
22599        8usize,
22600        concat!("Alignment of ", stringify!(_pthread_cleanup_buffer))
22601    );
22602    assert_eq!(
22603        unsafe {
22604            &(*(::std::ptr::null::<_pthread_cleanup_buffer>())).__routine as *const _ as usize
22605        },
22606        0usize,
22607        concat!(
22608            "Offset of field: ",
22609            stringify!(_pthread_cleanup_buffer),
22610            "::",
22611            stringify!(__routine)
22612        )
22613    );
22614    assert_eq!(
22615        unsafe { &(*(::std::ptr::null::<_pthread_cleanup_buffer>())).__arg as *const _ as usize },
22616        8usize,
22617        concat!(
22618            "Offset of field: ",
22619            stringify!(_pthread_cleanup_buffer),
22620            "::",
22621            stringify!(__arg)
22622        )
22623    );
22624    assert_eq!(
22625        unsafe {
22626            &(*(::std::ptr::null::<_pthread_cleanup_buffer>())).__canceltype as *const _ as usize
22627        },
22628        16usize,
22629        concat!(
22630            "Offset of field: ",
22631            stringify!(_pthread_cleanup_buffer),
22632            "::",
22633            stringify!(__canceltype)
22634        )
22635    );
22636    assert_eq!(
22637        unsafe { &(*(::std::ptr::null::<_pthread_cleanup_buffer>())).__prev as *const _ as usize },
22638        24usize,
22639        concat!(
22640            "Offset of field: ",
22641            stringify!(_pthread_cleanup_buffer),
22642            "::",
22643            stringify!(__prev)
22644        )
22645    );
22646}
22647pub const PTHREAD_CANCEL_ENABLE: _bindgen_ty_23 = 0;
22648pub const PTHREAD_CANCEL_DISABLE: _bindgen_ty_23 = 1;
22649pub type _bindgen_ty_23 = u32;
22650pub const PTHREAD_CANCEL_DEFERRED: _bindgen_ty_24 = 0;
22651pub const PTHREAD_CANCEL_ASYNCHRONOUS: _bindgen_ty_24 = 1;
22652pub type _bindgen_ty_24 = u32;
22653extern "C" {
22654    pub fn pthread_create(
22655        __newthread: *mut pthread_t,
22656        __attr: *const pthread_attr_t,
22657        __start_routine: ::std::option::Option<
22658            unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_void,
22659        >,
22660        __arg: *mut ::std::os::raw::c_void,
22661    ) -> ::std::os::raw::c_int;
22662}
22663extern "C" {
22664    pub fn pthread_exit(__retval: *mut ::std::os::raw::c_void);
22665}
22666extern "C" {
22667    pub fn pthread_join(
22668        __th: pthread_t,
22669        __thread_return: *mut *mut ::std::os::raw::c_void,
22670    ) -> ::std::os::raw::c_int;
22671}
22672extern "C" {
22673    pub fn pthread_detach(__th: pthread_t) -> ::std::os::raw::c_int;
22674}
22675extern "C" {
22676    pub fn pthread_self() -> pthread_t;
22677}
22678extern "C" {
22679    pub fn pthread_equal(__thread1: pthread_t, __thread2: pthread_t) -> ::std::os::raw::c_int;
22680}
22681extern "C" {
22682    pub fn pthread_attr_init(__attr: *mut pthread_attr_t) -> ::std::os::raw::c_int;
22683}
22684extern "C" {
22685    pub fn pthread_attr_destroy(__attr: *mut pthread_attr_t) -> ::std::os::raw::c_int;
22686}
22687extern "C" {
22688    pub fn pthread_attr_getdetachstate(
22689        __attr: *const pthread_attr_t,
22690        __detachstate: *mut ::std::os::raw::c_int,
22691    ) -> ::std::os::raw::c_int;
22692}
22693extern "C" {
22694    pub fn pthread_attr_setdetachstate(
22695        __attr: *mut pthread_attr_t,
22696        __detachstate: ::std::os::raw::c_int,
22697    ) -> ::std::os::raw::c_int;
22698}
22699extern "C" {
22700    pub fn pthread_attr_getguardsize(
22701        __attr: *const pthread_attr_t,
22702        __guardsize: *mut usize,
22703    ) -> ::std::os::raw::c_int;
22704}
22705extern "C" {
22706    pub fn pthread_attr_setguardsize(
22707        __attr: *mut pthread_attr_t,
22708        __guardsize: usize,
22709    ) -> ::std::os::raw::c_int;
22710}
22711extern "C" {
22712    pub fn pthread_attr_getschedparam(
22713        __attr: *const pthread_attr_t,
22714        __param: *mut sched_param,
22715    ) -> ::std::os::raw::c_int;
22716}
22717extern "C" {
22718    pub fn pthread_attr_setschedparam(
22719        __attr: *mut pthread_attr_t,
22720        __param: *const sched_param,
22721    ) -> ::std::os::raw::c_int;
22722}
22723extern "C" {
22724    pub fn pthread_attr_getschedpolicy(
22725        __attr: *const pthread_attr_t,
22726        __policy: *mut ::std::os::raw::c_int,
22727    ) -> ::std::os::raw::c_int;
22728}
22729extern "C" {
22730    pub fn pthread_attr_setschedpolicy(
22731        __attr: *mut pthread_attr_t,
22732        __policy: ::std::os::raw::c_int,
22733    ) -> ::std::os::raw::c_int;
22734}
22735extern "C" {
22736    pub fn pthread_attr_getinheritsched(
22737        __attr: *const pthread_attr_t,
22738        __inherit: *mut ::std::os::raw::c_int,
22739    ) -> ::std::os::raw::c_int;
22740}
22741extern "C" {
22742    pub fn pthread_attr_setinheritsched(
22743        __attr: *mut pthread_attr_t,
22744        __inherit: ::std::os::raw::c_int,
22745    ) -> ::std::os::raw::c_int;
22746}
22747extern "C" {
22748    pub fn pthread_attr_getscope(
22749        __attr: *const pthread_attr_t,
22750        __scope: *mut ::std::os::raw::c_int,
22751    ) -> ::std::os::raw::c_int;
22752}
22753extern "C" {
22754    pub fn pthread_attr_setscope(
22755        __attr: *mut pthread_attr_t,
22756        __scope: ::std::os::raw::c_int,
22757    ) -> ::std::os::raw::c_int;
22758}
22759extern "C" {
22760    pub fn pthread_attr_getstackaddr(
22761        __attr: *const pthread_attr_t,
22762        __stackaddr: *mut *mut ::std::os::raw::c_void,
22763    ) -> ::std::os::raw::c_int;
22764}
22765extern "C" {
22766    pub fn pthread_attr_setstackaddr(
22767        __attr: *mut pthread_attr_t,
22768        __stackaddr: *mut ::std::os::raw::c_void,
22769    ) -> ::std::os::raw::c_int;
22770}
22771extern "C" {
22772    pub fn pthread_attr_getstacksize(
22773        __attr: *const pthread_attr_t,
22774        __stacksize: *mut usize,
22775    ) -> ::std::os::raw::c_int;
22776}
22777extern "C" {
22778    pub fn pthread_attr_setstacksize(
22779        __attr: *mut pthread_attr_t,
22780        __stacksize: usize,
22781    ) -> ::std::os::raw::c_int;
22782}
22783extern "C" {
22784    pub fn pthread_attr_getstack(
22785        __attr: *const pthread_attr_t,
22786        __stackaddr: *mut *mut ::std::os::raw::c_void,
22787        __stacksize: *mut usize,
22788    ) -> ::std::os::raw::c_int;
22789}
22790extern "C" {
22791    pub fn pthread_attr_setstack(
22792        __attr: *mut pthread_attr_t,
22793        __stackaddr: *mut ::std::os::raw::c_void,
22794        __stacksize: usize,
22795    ) -> ::std::os::raw::c_int;
22796}
22797extern "C" {
22798    pub fn pthread_setschedparam(
22799        __target_thread: pthread_t,
22800        __policy: ::std::os::raw::c_int,
22801        __param: *const sched_param,
22802    ) -> ::std::os::raw::c_int;
22803}
22804extern "C" {
22805    pub fn pthread_getschedparam(
22806        __target_thread: pthread_t,
22807        __policy: *mut ::std::os::raw::c_int,
22808        __param: *mut sched_param,
22809    ) -> ::std::os::raw::c_int;
22810}
22811extern "C" {
22812    pub fn pthread_setschedprio(
22813        __target_thread: pthread_t,
22814        __prio: ::std::os::raw::c_int,
22815    ) -> ::std::os::raw::c_int;
22816}
22817extern "C" {
22818    pub fn pthread_once(
22819        __once_control: *mut pthread_once_t,
22820        __init_routine: ::std::option::Option<unsafe extern "C" fn()>,
22821    ) -> ::std::os::raw::c_int;
22822}
22823extern "C" {
22824    pub fn pthread_setcancelstate(
22825        __state: ::std::os::raw::c_int,
22826        __oldstate: *mut ::std::os::raw::c_int,
22827    ) -> ::std::os::raw::c_int;
22828}
22829extern "C" {
22830    pub fn pthread_setcanceltype(
22831        __type: ::std::os::raw::c_int,
22832        __oldtype: *mut ::std::os::raw::c_int,
22833    ) -> ::std::os::raw::c_int;
22834}
22835extern "C" {
22836    pub fn pthread_cancel(__th: pthread_t) -> ::std::os::raw::c_int;
22837}
22838extern "C" {
22839    pub fn pthread_testcancel();
22840}
22841#[repr(C)]
22842#[derive(Debug, Copy, Clone)]
22843pub struct __pthread_unwind_buf_t {
22844    pub __cancel_jmp_buf: [__pthread_unwind_buf_t__bindgen_ty_1; 1usize],
22845    pub __pad: [*mut ::std::os::raw::c_void; 4usize],
22846}
22847#[repr(C)]
22848#[derive(Debug, Copy, Clone)]
22849pub struct __pthread_unwind_buf_t__bindgen_ty_1 {
22850    pub __cancel_jmp_buf: __jmp_buf,
22851    pub __mask_was_saved: ::std::os::raw::c_int,
22852}
22853#[test]
22854fn bindgen_test_layout___pthread_unwind_buf_t__bindgen_ty_1() {
22855    assert_eq!(
22856        ::std::mem::size_of::<__pthread_unwind_buf_t__bindgen_ty_1>(),
22857        72usize,
22858        concat!(
22859            "Size of: ",
22860            stringify!(__pthread_unwind_buf_t__bindgen_ty_1)
22861        )
22862    );
22863    assert_eq!(
22864        ::std::mem::align_of::<__pthread_unwind_buf_t__bindgen_ty_1>(),
22865        8usize,
22866        concat!(
22867            "Alignment of ",
22868            stringify!(__pthread_unwind_buf_t__bindgen_ty_1)
22869        )
22870    );
22871    assert_eq!(
22872        unsafe {
22873            &(*(::std::ptr::null::<__pthread_unwind_buf_t__bindgen_ty_1>())).__cancel_jmp_buf
22874                as *const _ as usize
22875        },
22876        0usize,
22877        concat!(
22878            "Offset of field: ",
22879            stringify!(__pthread_unwind_buf_t__bindgen_ty_1),
22880            "::",
22881            stringify!(__cancel_jmp_buf)
22882        )
22883    );
22884    assert_eq!(
22885        unsafe {
22886            &(*(::std::ptr::null::<__pthread_unwind_buf_t__bindgen_ty_1>())).__mask_was_saved
22887                as *const _ as usize
22888        },
22889        64usize,
22890        concat!(
22891            "Offset of field: ",
22892            stringify!(__pthread_unwind_buf_t__bindgen_ty_1),
22893            "::",
22894            stringify!(__mask_was_saved)
22895        )
22896    );
22897}
22898#[test]
22899fn bindgen_test_layout___pthread_unwind_buf_t() {
22900    assert_eq!(
22901        ::std::mem::size_of::<__pthread_unwind_buf_t>(),
22902        104usize,
22903        concat!("Size of: ", stringify!(__pthread_unwind_buf_t))
22904    );
22905    assert_eq!(
22906        ::std::mem::align_of::<__pthread_unwind_buf_t>(),
22907        8usize,
22908        concat!("Alignment of ", stringify!(__pthread_unwind_buf_t))
22909    );
22910    assert_eq!(
22911        unsafe {
22912            &(*(::std::ptr::null::<__pthread_unwind_buf_t>())).__cancel_jmp_buf as *const _ as usize
22913        },
22914        0usize,
22915        concat!(
22916            "Offset of field: ",
22917            stringify!(__pthread_unwind_buf_t),
22918            "::",
22919            stringify!(__cancel_jmp_buf)
22920        )
22921    );
22922    assert_eq!(
22923        unsafe { &(*(::std::ptr::null::<__pthread_unwind_buf_t>())).__pad as *const _ as usize },
22924        72usize,
22925        concat!(
22926            "Offset of field: ",
22927            stringify!(__pthread_unwind_buf_t),
22928            "::",
22929            stringify!(__pad)
22930        )
22931    );
22932}
22933#[repr(C)]
22934#[derive(Debug, Copy, Clone)]
22935pub struct __pthread_cleanup_frame {
22936    pub __cancel_routine:
22937        ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>,
22938    pub __cancel_arg: *mut ::std::os::raw::c_void,
22939    pub __do_it: ::std::os::raw::c_int,
22940    pub __cancel_type: ::std::os::raw::c_int,
22941}
22942#[test]
22943fn bindgen_test_layout___pthread_cleanup_frame() {
22944    assert_eq!(
22945        ::std::mem::size_of::<__pthread_cleanup_frame>(),
22946        24usize,
22947        concat!("Size of: ", stringify!(__pthread_cleanup_frame))
22948    );
22949    assert_eq!(
22950        ::std::mem::align_of::<__pthread_cleanup_frame>(),
22951        8usize,
22952        concat!("Alignment of ", stringify!(__pthread_cleanup_frame))
22953    );
22954    assert_eq!(
22955        unsafe {
22956            &(*(::std::ptr::null::<__pthread_cleanup_frame>())).__cancel_routine as *const _
22957                as usize
22958        },
22959        0usize,
22960        concat!(
22961            "Offset of field: ",
22962            stringify!(__pthread_cleanup_frame),
22963            "::",
22964            stringify!(__cancel_routine)
22965        )
22966    );
22967    assert_eq!(
22968        unsafe {
22969            &(*(::std::ptr::null::<__pthread_cleanup_frame>())).__cancel_arg as *const _ as usize
22970        },
22971        8usize,
22972        concat!(
22973            "Offset of field: ",
22974            stringify!(__pthread_cleanup_frame),
22975            "::",
22976            stringify!(__cancel_arg)
22977        )
22978    );
22979    assert_eq!(
22980        unsafe { &(*(::std::ptr::null::<__pthread_cleanup_frame>())).__do_it as *const _ as usize },
22981        16usize,
22982        concat!(
22983            "Offset of field: ",
22984            stringify!(__pthread_cleanup_frame),
22985            "::",
22986            stringify!(__do_it)
22987        )
22988    );
22989    assert_eq!(
22990        unsafe {
22991            &(*(::std::ptr::null::<__pthread_cleanup_frame>())).__cancel_type as *const _ as usize
22992        },
22993        20usize,
22994        concat!(
22995            "Offset of field: ",
22996            stringify!(__pthread_cleanup_frame),
22997            "::",
22998            stringify!(__cancel_type)
22999        )
23000    );
23001}
23002extern "C" {
23003    pub fn __pthread_register_cancel(__buf: *mut __pthread_unwind_buf_t);
23004}
23005extern "C" {
23006    pub fn __pthread_unregister_cancel(__buf: *mut __pthread_unwind_buf_t);
23007}
23008extern "C" {
23009    pub fn __pthread_unwind_next(__buf: *mut __pthread_unwind_buf_t);
23010}
23011#[repr(C)]
23012#[derive(Debug, Copy, Clone)]
23013pub struct __jmp_buf_tag {
23014    _unused: [u8; 0],
23015}
23016extern "C" {
23017    pub fn __sigsetjmp(
23018        __env: *mut __jmp_buf_tag,
23019        __savemask: ::std::os::raw::c_int,
23020    ) -> ::std::os::raw::c_int;
23021}
23022extern "C" {
23023    pub fn pthread_mutex_init(
23024        __mutex: *mut pthread_mutex_t,
23025        __mutexattr: *const pthread_mutexattr_t,
23026    ) -> ::std::os::raw::c_int;
23027}
23028extern "C" {
23029    pub fn pthread_mutex_destroy(__mutex: *mut pthread_mutex_t) -> ::std::os::raw::c_int;
23030}
23031extern "C" {
23032    pub fn pthread_mutex_trylock(__mutex: *mut pthread_mutex_t) -> ::std::os::raw::c_int;
23033}
23034extern "C" {
23035    pub fn pthread_mutex_lock(__mutex: *mut pthread_mutex_t) -> ::std::os::raw::c_int;
23036}
23037extern "C" {
23038    pub fn pthread_mutex_timedlock(
23039        __mutex: *mut pthread_mutex_t,
23040        __abstime: *const timespec,
23041    ) -> ::std::os::raw::c_int;
23042}
23043extern "C" {
23044    pub fn pthread_mutex_unlock(__mutex: *mut pthread_mutex_t) -> ::std::os::raw::c_int;
23045}
23046extern "C" {
23047    pub fn pthread_mutex_getprioceiling(
23048        __mutex: *const pthread_mutex_t,
23049        __prioceiling: *mut ::std::os::raw::c_int,
23050    ) -> ::std::os::raw::c_int;
23051}
23052extern "C" {
23053    pub fn pthread_mutex_setprioceiling(
23054        __mutex: *mut pthread_mutex_t,
23055        __prioceiling: ::std::os::raw::c_int,
23056        __old_ceiling: *mut ::std::os::raw::c_int,
23057    ) -> ::std::os::raw::c_int;
23058}
23059extern "C" {
23060    pub fn pthread_mutex_consistent(__mutex: *mut pthread_mutex_t) -> ::std::os::raw::c_int;
23061}
23062extern "C" {
23063    pub fn pthread_mutexattr_init(__attr: *mut pthread_mutexattr_t) -> ::std::os::raw::c_int;
23064}
23065extern "C" {
23066    pub fn pthread_mutexattr_destroy(__attr: *mut pthread_mutexattr_t) -> ::std::os::raw::c_int;
23067}
23068extern "C" {
23069    pub fn pthread_mutexattr_getpshared(
23070        __attr: *const pthread_mutexattr_t,
23071        __pshared: *mut ::std::os::raw::c_int,
23072    ) -> ::std::os::raw::c_int;
23073}
23074extern "C" {
23075    pub fn pthread_mutexattr_setpshared(
23076        __attr: *mut pthread_mutexattr_t,
23077        __pshared: ::std::os::raw::c_int,
23078    ) -> ::std::os::raw::c_int;
23079}
23080extern "C" {
23081    pub fn pthread_mutexattr_gettype(
23082        __attr: *const pthread_mutexattr_t,
23083        __kind: *mut ::std::os::raw::c_int,
23084    ) -> ::std::os::raw::c_int;
23085}
23086extern "C" {
23087    pub fn pthread_mutexattr_settype(
23088        __attr: *mut pthread_mutexattr_t,
23089        __kind: ::std::os::raw::c_int,
23090    ) -> ::std::os::raw::c_int;
23091}
23092extern "C" {
23093    pub fn pthread_mutexattr_getprotocol(
23094        __attr: *const pthread_mutexattr_t,
23095        __protocol: *mut ::std::os::raw::c_int,
23096    ) -> ::std::os::raw::c_int;
23097}
23098extern "C" {
23099    pub fn pthread_mutexattr_setprotocol(
23100        __attr: *mut pthread_mutexattr_t,
23101        __protocol: ::std::os::raw::c_int,
23102    ) -> ::std::os::raw::c_int;
23103}
23104extern "C" {
23105    pub fn pthread_mutexattr_getprioceiling(
23106        __attr: *const pthread_mutexattr_t,
23107        __prioceiling: *mut ::std::os::raw::c_int,
23108    ) -> ::std::os::raw::c_int;
23109}
23110extern "C" {
23111    pub fn pthread_mutexattr_setprioceiling(
23112        __attr: *mut pthread_mutexattr_t,
23113        __prioceiling: ::std::os::raw::c_int,
23114    ) -> ::std::os::raw::c_int;
23115}
23116extern "C" {
23117    pub fn pthread_mutexattr_getrobust(
23118        __attr: *const pthread_mutexattr_t,
23119        __robustness: *mut ::std::os::raw::c_int,
23120    ) -> ::std::os::raw::c_int;
23121}
23122extern "C" {
23123    pub fn pthread_mutexattr_setrobust(
23124        __attr: *mut pthread_mutexattr_t,
23125        __robustness: ::std::os::raw::c_int,
23126    ) -> ::std::os::raw::c_int;
23127}
23128extern "C" {
23129    pub fn pthread_rwlock_init(
23130        __rwlock: *mut pthread_rwlock_t,
23131        __attr: *const pthread_rwlockattr_t,
23132    ) -> ::std::os::raw::c_int;
23133}
23134extern "C" {
23135    pub fn pthread_rwlock_destroy(__rwlock: *mut pthread_rwlock_t) -> ::std::os::raw::c_int;
23136}
23137extern "C" {
23138    pub fn pthread_rwlock_rdlock(__rwlock: *mut pthread_rwlock_t) -> ::std::os::raw::c_int;
23139}
23140extern "C" {
23141    pub fn pthread_rwlock_tryrdlock(__rwlock: *mut pthread_rwlock_t) -> ::std::os::raw::c_int;
23142}
23143extern "C" {
23144    pub fn pthread_rwlock_timedrdlock(
23145        __rwlock: *mut pthread_rwlock_t,
23146        __abstime: *const timespec,
23147    ) -> ::std::os::raw::c_int;
23148}
23149extern "C" {
23150    pub fn pthread_rwlock_wrlock(__rwlock: *mut pthread_rwlock_t) -> ::std::os::raw::c_int;
23151}
23152extern "C" {
23153    pub fn pthread_rwlock_trywrlock(__rwlock: *mut pthread_rwlock_t) -> ::std::os::raw::c_int;
23154}
23155extern "C" {
23156    pub fn pthread_rwlock_timedwrlock(
23157        __rwlock: *mut pthread_rwlock_t,
23158        __abstime: *const timespec,
23159    ) -> ::std::os::raw::c_int;
23160}
23161extern "C" {
23162    pub fn pthread_rwlock_unlock(__rwlock: *mut pthread_rwlock_t) -> ::std::os::raw::c_int;
23163}
23164extern "C" {
23165    pub fn pthread_rwlockattr_init(__attr: *mut pthread_rwlockattr_t) -> ::std::os::raw::c_int;
23166}
23167extern "C" {
23168    pub fn pthread_rwlockattr_destroy(__attr: *mut pthread_rwlockattr_t) -> ::std::os::raw::c_int;
23169}
23170extern "C" {
23171    pub fn pthread_rwlockattr_getpshared(
23172        __attr: *const pthread_rwlockattr_t,
23173        __pshared: *mut ::std::os::raw::c_int,
23174    ) -> ::std::os::raw::c_int;
23175}
23176extern "C" {
23177    pub fn pthread_rwlockattr_setpshared(
23178        __attr: *mut pthread_rwlockattr_t,
23179        __pshared: ::std::os::raw::c_int,
23180    ) -> ::std::os::raw::c_int;
23181}
23182extern "C" {
23183    pub fn pthread_rwlockattr_getkind_np(
23184        __attr: *const pthread_rwlockattr_t,
23185        __pref: *mut ::std::os::raw::c_int,
23186    ) -> ::std::os::raw::c_int;
23187}
23188extern "C" {
23189    pub fn pthread_rwlockattr_setkind_np(
23190        __attr: *mut pthread_rwlockattr_t,
23191        __pref: ::std::os::raw::c_int,
23192    ) -> ::std::os::raw::c_int;
23193}
23194extern "C" {
23195    pub fn pthread_cond_init(
23196        __cond: *mut pthread_cond_t,
23197        __cond_attr: *const pthread_condattr_t,
23198    ) -> ::std::os::raw::c_int;
23199}
23200extern "C" {
23201    pub fn pthread_cond_destroy(__cond: *mut pthread_cond_t) -> ::std::os::raw::c_int;
23202}
23203extern "C" {
23204    pub fn pthread_cond_signal(__cond: *mut pthread_cond_t) -> ::std::os::raw::c_int;
23205}
23206extern "C" {
23207    pub fn pthread_cond_broadcast(__cond: *mut pthread_cond_t) -> ::std::os::raw::c_int;
23208}
23209extern "C" {
23210    pub fn pthread_cond_wait(
23211        __cond: *mut pthread_cond_t,
23212        __mutex: *mut pthread_mutex_t,
23213    ) -> ::std::os::raw::c_int;
23214}
23215extern "C" {
23216    pub fn pthread_cond_timedwait(
23217        __cond: *mut pthread_cond_t,
23218        __mutex: *mut pthread_mutex_t,
23219        __abstime: *const timespec,
23220    ) -> ::std::os::raw::c_int;
23221}
23222extern "C" {
23223    pub fn pthread_condattr_init(__attr: *mut pthread_condattr_t) -> ::std::os::raw::c_int;
23224}
23225extern "C" {
23226    pub fn pthread_condattr_destroy(__attr: *mut pthread_condattr_t) -> ::std::os::raw::c_int;
23227}
23228extern "C" {
23229    pub fn pthread_condattr_getpshared(
23230        __attr: *const pthread_condattr_t,
23231        __pshared: *mut ::std::os::raw::c_int,
23232    ) -> ::std::os::raw::c_int;
23233}
23234extern "C" {
23235    pub fn pthread_condattr_setpshared(
23236        __attr: *mut pthread_condattr_t,
23237        __pshared: ::std::os::raw::c_int,
23238    ) -> ::std::os::raw::c_int;
23239}
23240extern "C" {
23241    pub fn pthread_condattr_getclock(
23242        __attr: *const pthread_condattr_t,
23243        __clock_id: *mut __clockid_t,
23244    ) -> ::std::os::raw::c_int;
23245}
23246extern "C" {
23247    pub fn pthread_condattr_setclock(
23248        __attr: *mut pthread_condattr_t,
23249        __clock_id: __clockid_t,
23250    ) -> ::std::os::raw::c_int;
23251}
23252extern "C" {
23253    pub fn pthread_spin_init(
23254        __lock: *mut pthread_spinlock_t,
23255        __pshared: ::std::os::raw::c_int,
23256    ) -> ::std::os::raw::c_int;
23257}
23258extern "C" {
23259    pub fn pthread_spin_destroy(__lock: *mut pthread_spinlock_t) -> ::std::os::raw::c_int;
23260}
23261extern "C" {
23262    pub fn pthread_spin_lock(__lock: *mut pthread_spinlock_t) -> ::std::os::raw::c_int;
23263}
23264extern "C" {
23265    pub fn pthread_spin_trylock(__lock: *mut pthread_spinlock_t) -> ::std::os::raw::c_int;
23266}
23267extern "C" {
23268    pub fn pthread_spin_unlock(__lock: *mut pthread_spinlock_t) -> ::std::os::raw::c_int;
23269}
23270extern "C" {
23271    pub fn pthread_barrier_init(
23272        __barrier: *mut pthread_barrier_t,
23273        __attr: *const pthread_barrierattr_t,
23274        __count: ::std::os::raw::c_uint,
23275    ) -> ::std::os::raw::c_int;
23276}
23277extern "C" {
23278    pub fn pthread_barrier_destroy(__barrier: *mut pthread_barrier_t) -> ::std::os::raw::c_int;
23279}
23280extern "C" {
23281    pub fn pthread_barrier_wait(__barrier: *mut pthread_barrier_t) -> ::std::os::raw::c_int;
23282}
23283extern "C" {
23284    pub fn pthread_barrierattr_init(__attr: *mut pthread_barrierattr_t) -> ::std::os::raw::c_int;
23285}
23286extern "C" {
23287    pub fn pthread_barrierattr_destroy(__attr: *mut pthread_barrierattr_t)
23288        -> ::std::os::raw::c_int;
23289}
23290extern "C" {
23291    pub fn pthread_barrierattr_getpshared(
23292        __attr: *const pthread_barrierattr_t,
23293        __pshared: *mut ::std::os::raw::c_int,
23294    ) -> ::std::os::raw::c_int;
23295}
23296extern "C" {
23297    pub fn pthread_barrierattr_setpshared(
23298        __attr: *mut pthread_barrierattr_t,
23299        __pshared: ::std::os::raw::c_int,
23300    ) -> ::std::os::raw::c_int;
23301}
23302extern "C" {
23303    pub fn pthread_key_create(
23304        __key: *mut pthread_key_t,
23305        __destr_function: ::std::option::Option<
23306            unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void),
23307        >,
23308    ) -> ::std::os::raw::c_int;
23309}
23310extern "C" {
23311    pub fn pthread_key_delete(__key: pthread_key_t) -> ::std::os::raw::c_int;
23312}
23313extern "C" {
23314    pub fn pthread_getspecific(__key: pthread_key_t) -> *mut ::std::os::raw::c_void;
23315}
23316extern "C" {
23317    pub fn pthread_setspecific(
23318        __key: pthread_key_t,
23319        __pointer: *const ::std::os::raw::c_void,
23320    ) -> ::std::os::raw::c_int;
23321}
23322extern "C" {
23323    pub fn pthread_getcpuclockid(
23324        __thread_id: pthread_t,
23325        __clock_id: *mut __clockid_t,
23326    ) -> ::std::os::raw::c_int;
23327}
23328extern "C" {
23329    pub fn pthread_atfork(
23330        __prepare: ::std::option::Option<unsafe extern "C" fn()>,
23331        __parent: ::std::option::Option<unsafe extern "C" fn()>,
23332        __child: ::std::option::Option<unsafe extern "C" fn()>,
23333    ) -> ::std::os::raw::c_int;
23334}
23335#[repr(C)]
23336#[derive(Copy, Clone)]
23337pub struct GStaticMutex {
23338    pub mutex: *mut GMutex,
23339    pub unused: pthread_mutex_t,
23340}
23341#[test]
23342fn bindgen_test_layout_GStaticMutex() {
23343    assert_eq!(
23344        ::std::mem::size_of::<GStaticMutex>(),
23345        48usize,
23346        concat!("Size of: ", stringify!(GStaticMutex))
23347    );
23348    assert_eq!(
23349        ::std::mem::align_of::<GStaticMutex>(),
23350        8usize,
23351        concat!("Alignment of ", stringify!(GStaticMutex))
23352    );
23353    assert_eq!(
23354        unsafe { &(*(::std::ptr::null::<GStaticMutex>())).mutex as *const _ as usize },
23355        0usize,
23356        concat!(
23357            "Offset of field: ",
23358            stringify!(GStaticMutex),
23359            "::",
23360            stringify!(mutex)
23361        )
23362    );
23363    assert_eq!(
23364        unsafe { &(*(::std::ptr::null::<GStaticMutex>())).unused as *const _ as usize },
23365        8usize,
23366        concat!(
23367            "Offset of field: ",
23368            stringify!(GStaticMutex),
23369            "::",
23370            stringify!(unused)
23371        )
23372    );
23373}
23374extern "C" {
23375    pub fn g_static_mutex_init(mutex: *mut GStaticMutex);
23376}
23377extern "C" {
23378    pub fn g_static_mutex_free(mutex: *mut GStaticMutex);
23379}
23380extern "C" {
23381    pub fn g_static_mutex_get_mutex_impl(mutex: *mut GStaticMutex) -> *mut GMutex;
23382}
23383pub type GStaticRecMutex = _GStaticRecMutex;
23384#[repr(C)]
23385#[derive(Copy, Clone)]
23386pub struct _GStaticRecMutex {
23387    pub mutex: GStaticMutex,
23388    pub depth: guint,
23389    pub unused: _GStaticRecMutex__bindgen_ty_1,
23390}
23391#[repr(C)]
23392#[derive(Copy, Clone)]
23393pub union _GStaticRecMutex__bindgen_ty_1 {
23394    pub owner: pthread_t,
23395    pub dummy: gdouble,
23396    _bindgen_union_align: u64,
23397}
23398#[test]
23399fn bindgen_test_layout__GStaticRecMutex__bindgen_ty_1() {
23400    assert_eq!(
23401        ::std::mem::size_of::<_GStaticRecMutex__bindgen_ty_1>(),
23402        8usize,
23403        concat!("Size of: ", stringify!(_GStaticRecMutex__bindgen_ty_1))
23404    );
23405    assert_eq!(
23406        ::std::mem::align_of::<_GStaticRecMutex__bindgen_ty_1>(),
23407        8usize,
23408        concat!("Alignment of ", stringify!(_GStaticRecMutex__bindgen_ty_1))
23409    );
23410    assert_eq!(
23411        unsafe {
23412            &(*(::std::ptr::null::<_GStaticRecMutex__bindgen_ty_1>())).owner as *const _ as usize
23413        },
23414        0usize,
23415        concat!(
23416            "Offset of field: ",
23417            stringify!(_GStaticRecMutex__bindgen_ty_1),
23418            "::",
23419            stringify!(owner)
23420        )
23421    );
23422    assert_eq!(
23423        unsafe {
23424            &(*(::std::ptr::null::<_GStaticRecMutex__bindgen_ty_1>())).dummy as *const _ as usize
23425        },
23426        0usize,
23427        concat!(
23428            "Offset of field: ",
23429            stringify!(_GStaticRecMutex__bindgen_ty_1),
23430            "::",
23431            stringify!(dummy)
23432        )
23433    );
23434}
23435#[test]
23436fn bindgen_test_layout__GStaticRecMutex() {
23437    assert_eq!(
23438        ::std::mem::size_of::<_GStaticRecMutex>(),
23439        64usize,
23440        concat!("Size of: ", stringify!(_GStaticRecMutex))
23441    );
23442    assert_eq!(
23443        ::std::mem::align_of::<_GStaticRecMutex>(),
23444        8usize,
23445        concat!("Alignment of ", stringify!(_GStaticRecMutex))
23446    );
23447    assert_eq!(
23448        unsafe { &(*(::std::ptr::null::<_GStaticRecMutex>())).mutex as *const _ as usize },
23449        0usize,
23450        concat!(
23451            "Offset of field: ",
23452            stringify!(_GStaticRecMutex),
23453            "::",
23454            stringify!(mutex)
23455        )
23456    );
23457    assert_eq!(
23458        unsafe { &(*(::std::ptr::null::<_GStaticRecMutex>())).depth as *const _ as usize },
23459        48usize,
23460        concat!(
23461            "Offset of field: ",
23462            stringify!(_GStaticRecMutex),
23463            "::",
23464            stringify!(depth)
23465        )
23466    );
23467    assert_eq!(
23468        unsafe { &(*(::std::ptr::null::<_GStaticRecMutex>())).unused as *const _ as usize },
23469        56usize,
23470        concat!(
23471            "Offset of field: ",
23472            stringify!(_GStaticRecMutex),
23473            "::",
23474            stringify!(unused)
23475        )
23476    );
23477}
23478extern "C" {
23479    pub fn g_static_rec_mutex_init(mutex: *mut GStaticRecMutex);
23480}
23481extern "C" {
23482    pub fn g_static_rec_mutex_lock(mutex: *mut GStaticRecMutex);
23483}
23484extern "C" {
23485    pub fn g_static_rec_mutex_trylock(mutex: *mut GStaticRecMutex) -> gboolean;
23486}
23487extern "C" {
23488    pub fn g_static_rec_mutex_unlock(mutex: *mut GStaticRecMutex);
23489}
23490extern "C" {
23491    pub fn g_static_rec_mutex_lock_full(mutex: *mut GStaticRecMutex, depth: guint);
23492}
23493extern "C" {
23494    pub fn g_static_rec_mutex_unlock_full(mutex: *mut GStaticRecMutex) -> guint;
23495}
23496extern "C" {
23497    pub fn g_static_rec_mutex_free(mutex: *mut GStaticRecMutex);
23498}
23499pub type GStaticRWLock = _GStaticRWLock;
23500#[repr(C)]
23501#[derive(Copy, Clone)]
23502pub struct _GStaticRWLock {
23503    pub mutex: GStaticMutex,
23504    pub read_cond: *mut GCond,
23505    pub write_cond: *mut GCond,
23506    pub read_counter: guint,
23507    pub have_writer: gboolean,
23508    pub want_to_read: guint,
23509    pub want_to_write: guint,
23510}
23511#[test]
23512fn bindgen_test_layout__GStaticRWLock() {
23513    assert_eq!(
23514        ::std::mem::size_of::<_GStaticRWLock>(),
23515        80usize,
23516        concat!("Size of: ", stringify!(_GStaticRWLock))
23517    );
23518    assert_eq!(
23519        ::std::mem::align_of::<_GStaticRWLock>(),
23520        8usize,
23521        concat!("Alignment of ", stringify!(_GStaticRWLock))
23522    );
23523    assert_eq!(
23524        unsafe { &(*(::std::ptr::null::<_GStaticRWLock>())).mutex as *const _ as usize },
23525        0usize,
23526        concat!(
23527            "Offset of field: ",
23528            stringify!(_GStaticRWLock),
23529            "::",
23530            stringify!(mutex)
23531        )
23532    );
23533    assert_eq!(
23534        unsafe { &(*(::std::ptr::null::<_GStaticRWLock>())).read_cond as *const _ as usize },
23535        48usize,
23536        concat!(
23537            "Offset of field: ",
23538            stringify!(_GStaticRWLock),
23539            "::",
23540            stringify!(read_cond)
23541        )
23542    );
23543    assert_eq!(
23544        unsafe { &(*(::std::ptr::null::<_GStaticRWLock>())).write_cond as *const _ as usize },
23545        56usize,
23546        concat!(
23547            "Offset of field: ",
23548            stringify!(_GStaticRWLock),
23549            "::",
23550            stringify!(write_cond)
23551        )
23552    );
23553    assert_eq!(
23554        unsafe { &(*(::std::ptr::null::<_GStaticRWLock>())).read_counter as *const _ as usize },
23555        64usize,
23556        concat!(
23557            "Offset of field: ",
23558            stringify!(_GStaticRWLock),
23559            "::",
23560            stringify!(read_counter)
23561        )
23562    );
23563    assert_eq!(
23564        unsafe { &(*(::std::ptr::null::<_GStaticRWLock>())).have_writer as *const _ as usize },
23565        68usize,
23566        concat!(
23567            "Offset of field: ",
23568            stringify!(_GStaticRWLock),
23569            "::",
23570            stringify!(have_writer)
23571        )
23572    );
23573    assert_eq!(
23574        unsafe { &(*(::std::ptr::null::<_GStaticRWLock>())).want_to_read as *const _ as usize },
23575        72usize,
23576        concat!(
23577            "Offset of field: ",
23578            stringify!(_GStaticRWLock),
23579            "::",
23580            stringify!(want_to_read)
23581        )
23582    );
23583    assert_eq!(
23584        unsafe { &(*(::std::ptr::null::<_GStaticRWLock>())).want_to_write as *const _ as usize },
23585        76usize,
23586        concat!(
23587            "Offset of field: ",
23588            stringify!(_GStaticRWLock),
23589            "::",
23590            stringify!(want_to_write)
23591        )
23592    );
23593}
23594extern "C" {
23595    pub fn g_static_rw_lock_init(lock: *mut GStaticRWLock);
23596}
23597extern "C" {
23598    pub fn g_static_rw_lock_reader_lock(lock: *mut GStaticRWLock);
23599}
23600extern "C" {
23601    pub fn g_static_rw_lock_reader_trylock(lock: *mut GStaticRWLock) -> gboolean;
23602}
23603extern "C" {
23604    pub fn g_static_rw_lock_reader_unlock(lock: *mut GStaticRWLock);
23605}
23606extern "C" {
23607    pub fn g_static_rw_lock_writer_lock(lock: *mut GStaticRWLock);
23608}
23609extern "C" {
23610    pub fn g_static_rw_lock_writer_trylock(lock: *mut GStaticRWLock) -> gboolean;
23611}
23612extern "C" {
23613    pub fn g_static_rw_lock_writer_unlock(lock: *mut GStaticRWLock);
23614}
23615extern "C" {
23616    pub fn g_static_rw_lock_free(lock: *mut GStaticRWLock);
23617}
23618extern "C" {
23619    pub fn g_private_new(notify: GDestroyNotify) -> *mut GPrivate;
23620}
23621pub type GStaticPrivate = _GStaticPrivate;
23622#[repr(C)]
23623#[derive(Debug, Copy, Clone)]
23624pub struct _GStaticPrivate {
23625    pub index: guint,
23626}
23627#[test]
23628fn bindgen_test_layout__GStaticPrivate() {
23629    assert_eq!(
23630        ::std::mem::size_of::<_GStaticPrivate>(),
23631        4usize,
23632        concat!("Size of: ", stringify!(_GStaticPrivate))
23633    );
23634    assert_eq!(
23635        ::std::mem::align_of::<_GStaticPrivate>(),
23636        4usize,
23637        concat!("Alignment of ", stringify!(_GStaticPrivate))
23638    );
23639    assert_eq!(
23640        unsafe { &(*(::std::ptr::null::<_GStaticPrivate>())).index as *const _ as usize },
23641        0usize,
23642        concat!(
23643            "Offset of field: ",
23644            stringify!(_GStaticPrivate),
23645            "::",
23646            stringify!(index)
23647        )
23648    );
23649}
23650extern "C" {
23651    pub fn g_static_private_init(private_key: *mut GStaticPrivate);
23652}
23653extern "C" {
23654    pub fn g_static_private_get(private_key: *mut GStaticPrivate) -> gpointer;
23655}
23656extern "C" {
23657    pub fn g_static_private_set(
23658        private_key: *mut GStaticPrivate,
23659        data: gpointer,
23660        notify: GDestroyNotify,
23661    );
23662}
23663extern "C" {
23664    pub fn g_static_private_free(private_key: *mut GStaticPrivate);
23665}
23666extern "C" {
23667    pub fn g_once_init_enter_impl(location: *mut gsize) -> gboolean;
23668}
23669extern "C" {
23670    pub fn g_thread_init(vtable: gpointer);
23671}
23672extern "C" {
23673    pub fn g_thread_init_with_errorcheck_mutexes(vtable: gpointer);
23674}
23675extern "C" {
23676    pub fn g_thread_get_initialized() -> gboolean;
23677}
23678extern "C" {
23679    pub static mut g_threads_got_initialized: gboolean;
23680}
23681extern "C" {
23682    pub fn g_mutex_new() -> *mut GMutex;
23683}
23684extern "C" {
23685    pub fn g_mutex_free(mutex: *mut GMutex);
23686}
23687extern "C" {
23688    pub fn g_cond_new() -> *mut GCond;
23689}
23690extern "C" {
23691    pub fn g_cond_free(cond: *mut GCond);
23692}
23693extern "C" {
23694    pub fn g_cond_timed_wait(
23695        cond: *mut GCond,
23696        mutex: *mut GMutex,
23697        timeval: *mut GTimeVal,
23698    ) -> gboolean;
23699}
23700pub type GAsyncQueue_autoptr = *mut GAsyncQueue;
23701pub type GAsyncQueue_listautoptr = *mut GList;
23702pub type GAsyncQueue_slistautoptr = *mut GSList;
23703pub type GBookmarkFile_autoptr = *mut GBookmarkFile;
23704pub type GBookmarkFile_listautoptr = *mut GList;
23705pub type GBookmarkFile_slistautoptr = *mut GSList;
23706pub type GBytes_autoptr = *mut GBytes;
23707pub type GBytes_listautoptr = *mut GList;
23708pub type GBytes_slistautoptr = *mut GSList;
23709pub type GChecksum_autoptr = *mut GChecksum;
23710pub type GChecksum_listautoptr = *mut GList;
23711pub type GChecksum_slistautoptr = *mut GSList;
23712pub type GDateTime_autoptr = *mut GDateTime;
23713pub type GDateTime_listautoptr = *mut GList;
23714pub type GDateTime_slistautoptr = *mut GSList;
23715pub type GDir_autoptr = *mut GDir;
23716pub type GDir_listautoptr = *mut GList;
23717pub type GDir_slistautoptr = *mut GSList;
23718pub type GError_autoptr = *mut GError;
23719pub type GError_listautoptr = *mut GList;
23720pub type GError_slistautoptr = *mut GSList;
23721pub type GHashTable_autoptr = *mut GHashTable;
23722pub type GHashTable_listautoptr = *mut GList;
23723pub type GHashTable_slistautoptr = *mut GSList;
23724pub type GHmac_autoptr = *mut GHmac;
23725pub type GHmac_listautoptr = *mut GList;
23726pub type GHmac_slistautoptr = *mut GSList;
23727pub type GIOChannel_autoptr = *mut GIOChannel;
23728pub type GIOChannel_listautoptr = *mut GList;
23729pub type GIOChannel_slistautoptr = *mut GSList;
23730pub type GKeyFile_autoptr = *mut GKeyFile;
23731pub type GKeyFile_listautoptr = *mut GList;
23732pub type GKeyFile_slistautoptr = *mut GSList;
23733pub type GList_autoptr = *mut GList;
23734pub type GList_listautoptr = *mut GList;
23735pub type GList_slistautoptr = *mut GSList;
23736pub type GArray_autoptr = *mut GArray;
23737pub type GArray_listautoptr = *mut GList;
23738pub type GArray_slistautoptr = *mut GSList;
23739pub type GPtrArray_autoptr = *mut GPtrArray;
23740pub type GPtrArray_listautoptr = *mut GList;
23741pub type GPtrArray_slistautoptr = *mut GSList;
23742pub type GByteArray_autoptr = *mut GByteArray;
23743pub type GByteArray_listautoptr = *mut GList;
23744pub type GByteArray_slistautoptr = *mut GSList;
23745pub type GMainContext_autoptr = *mut GMainContext;
23746pub type GMainContext_listautoptr = *mut GList;
23747pub type GMainContext_slistautoptr = *mut GSList;
23748pub type GMainLoop_autoptr = *mut GMainLoop;
23749pub type GMainLoop_listautoptr = *mut GList;
23750pub type GMainLoop_slistautoptr = *mut GSList;
23751pub type GSource_autoptr = *mut GSource;
23752pub type GSource_listautoptr = *mut GList;
23753pub type GSource_slistautoptr = *mut GSList;
23754pub type GMappedFile_autoptr = *mut GMappedFile;
23755pub type GMappedFile_listautoptr = *mut GList;
23756pub type GMappedFile_slistautoptr = *mut GSList;
23757pub type GMarkupParseContext_autoptr = *mut GMarkupParseContext;
23758pub type GMarkupParseContext_listautoptr = *mut GList;
23759pub type GMarkupParseContext_slistautoptr = *mut GSList;
23760pub type GNode_autoptr = *mut GNode;
23761pub type GNode_listautoptr = *mut GList;
23762pub type GNode_slistautoptr = *mut GSList;
23763pub type GOptionContext_autoptr = *mut GOptionContext;
23764pub type GOptionContext_listautoptr = *mut GList;
23765pub type GOptionContext_slistautoptr = *mut GSList;
23766pub type GOptionGroup_autoptr = *mut GOptionGroup;
23767pub type GOptionGroup_listautoptr = *mut GList;
23768pub type GOptionGroup_slistautoptr = *mut GSList;
23769pub type GPatternSpec_autoptr = *mut GPatternSpec;
23770pub type GPatternSpec_listautoptr = *mut GList;
23771pub type GPatternSpec_slistautoptr = *mut GSList;
23772pub type GQueue_autoptr = *mut GQueue;
23773pub type GQueue_listautoptr = *mut GList;
23774pub type GQueue_slistautoptr = *mut GSList;
23775pub type GRand_autoptr = *mut GRand;
23776pub type GRand_listautoptr = *mut GList;
23777pub type GRand_slistautoptr = *mut GSList;
23778pub type GRegex_autoptr = *mut GRegex;
23779pub type GRegex_listautoptr = *mut GList;
23780pub type GRegex_slistautoptr = *mut GSList;
23781pub type GMatchInfo_autoptr = *mut GMatchInfo;
23782pub type GMatchInfo_listautoptr = *mut GList;
23783pub type GMatchInfo_slistautoptr = *mut GSList;
23784pub type GScanner_autoptr = *mut GScanner;
23785pub type GScanner_listautoptr = *mut GList;
23786pub type GScanner_slistautoptr = *mut GSList;
23787pub type GSequence_autoptr = *mut GSequence;
23788pub type GSequence_listautoptr = *mut GList;
23789pub type GSequence_slistautoptr = *mut GSList;
23790pub type GSList_autoptr = *mut GSList;
23791pub type GSList_listautoptr = *mut GList;
23792pub type GSList_slistautoptr = *mut GSList;
23793pub type GString_autoptr = *mut GString;
23794pub type GString_listautoptr = *mut GList;
23795pub type GString_slistautoptr = *mut GSList;
23796pub type GStringChunk_autoptr = *mut GStringChunk;
23797pub type GStringChunk_listautoptr = *mut GList;
23798pub type GStringChunk_slistautoptr = *mut GSList;
23799pub type GThread_autoptr = *mut GThread;
23800pub type GThread_listautoptr = *mut GList;
23801pub type GThread_slistautoptr = *mut GSList;
23802pub type GMutexLocker_autoptr = *mut GMutexLocker;
23803pub type GMutexLocker_listautoptr = *mut GList;
23804pub type GMutexLocker_slistautoptr = *mut GSList;
23805pub type GTimer_autoptr = *mut GTimer;
23806pub type GTimer_listautoptr = *mut GList;
23807pub type GTimer_slistautoptr = *mut GSList;
23808pub type GTimeZone_autoptr = *mut GTimeZone;
23809pub type GTimeZone_listautoptr = *mut GList;
23810pub type GTimeZone_slistautoptr = *mut GSList;
23811pub type GTree_autoptr = *mut GTree;
23812pub type GTree_listautoptr = *mut GList;
23813pub type GTree_slistautoptr = *mut GSList;
23814pub type GVariant_autoptr = *mut GVariant;
23815pub type GVariant_listautoptr = *mut GList;
23816pub type GVariant_slistautoptr = *mut GSList;
23817pub type GVariantBuilder_autoptr = *mut GVariantBuilder;
23818pub type GVariantBuilder_listautoptr = *mut GList;
23819pub type GVariantBuilder_slistautoptr = *mut GSList;
23820pub type GVariantIter_autoptr = *mut GVariantIter;
23821pub type GVariantIter_listautoptr = *mut GList;
23822pub type GVariantIter_slistautoptr = *mut GSList;
23823pub type GVariantDict_autoptr = *mut GVariantDict;
23824pub type GVariantDict_listautoptr = *mut GList;
23825pub type GVariantDict_slistautoptr = *mut GSList;
23826pub type GVariantType_autoptr = *mut GVariantType;
23827pub type GVariantType_listautoptr = *mut GList;
23828pub type GVariantType_slistautoptr = *mut GSList;
23829pub const GModuleFlags_G_MODULE_BIND_LAZY: GModuleFlags = 1;
23830pub const GModuleFlags_G_MODULE_BIND_LOCAL: GModuleFlags = 2;
23831pub const GModuleFlags_G_MODULE_BIND_MASK: GModuleFlags = 3;
23832#[doc = " GModuleFlags:"]
23833#[doc = " @G_MODULE_BIND_LAZY: specifies that symbols are only resolved when"]
23834#[doc = "     needed. The default action is to bind all symbols when the module"]
23835#[doc = "     is loaded."]
23836#[doc = " @G_MODULE_BIND_LOCAL: specifies that symbols in the module should"]
23837#[doc = "     not be added to the global name space. The default action on most"]
23838#[doc = "     platforms is to place symbols in the module in the global name space,"]
23839#[doc = "     which may cause conflicts with existing symbols."]
23840#[doc = " @G_MODULE_BIND_MASK: mask for all flags."]
23841#[doc = ""]
23842#[doc = " Flags passed to g_module_open()."]
23843#[doc = " Note that these flags are not supported on all platforms."]
23844pub type GModuleFlags = u32;
23845#[repr(C)]
23846#[derive(Debug, Copy, Clone)]
23847pub struct _GModule {
23848    _unused: [u8; 0],
23849}
23850pub type GModule = _GModule;
23851pub type GModuleCheckInit =
23852    ::std::option::Option<unsafe extern "C" fn(module: *mut GModule) -> *const gchar>;
23853pub type GModuleUnload = ::std::option::Option<unsafe extern "C" fn(module: *mut GModule)>;
23854extern "C" {
23855    pub fn g_module_supported() -> gboolean;
23856}
23857extern "C" {
23858    pub fn g_module_open(file_name: *const gchar, flags: GModuleFlags) -> *mut GModule;
23859}
23860extern "C" {
23861    pub fn g_module_close(module: *mut GModule) -> gboolean;
23862}
23863extern "C" {
23864    pub fn g_module_make_resident(module: *mut GModule);
23865}
23866extern "C" {
23867    pub fn g_module_error() -> *const gchar;
23868}
23869extern "C" {
23870    pub fn g_module_symbol(
23871        module: *mut GModule,
23872        symbol_name: *const gchar,
23873        symbol: *mut gpointer,
23874    ) -> gboolean;
23875}
23876extern "C" {
23877    pub fn g_module_name(module: *mut GModule) -> *const gchar;
23878}
23879extern "C" {
23880    pub fn g_module_build_path(directory: *const gchar, module_name: *const gchar) -> *mut gchar;
23881}
23882pub type uoff_t = guint64;
23883pub type GInputFunction = ::std::option::Option<
23884    unsafe extern "C" fn(
23885        data: *mut ::std::os::raw::c_void,
23886        source: *mut GIOChannel,
23887        condition: ::std::os::raw::c_int,
23888    ),
23889>;
23890extern "C" {
23891    pub fn g_input_add(
23892        source: *mut GIOChannel,
23893        condition: ::std::os::raw::c_int,
23894        function: GInputFunction,
23895        data: *mut ::std::os::raw::c_void,
23896    ) -> ::std::os::raw::c_int;
23897}
23898extern "C" {
23899    pub fn g_input_add_full(
23900        source: *mut GIOChannel,
23901        priority: ::std::os::raw::c_int,
23902        condition: ::std::os::raw::c_int,
23903        function: GInputFunction,
23904        data: *mut ::std::os::raw::c_void,
23905    ) -> ::std::os::raw::c_int;
23906}
23907extern "C" {
23908    pub fn get_irssi_dir() -> *const ::std::os::raw::c_char;
23909}
23910extern "C" {
23911    pub fn get_irssi_config() -> *const ::std::os::raw::c_char;
23912}
23913#[repr(C)]
23914#[derive(Debug, Copy, Clone)]
23915pub struct _IPADDR {
23916    _unused: [u8; 0],
23917}
23918pub type IPADDR = _IPADDR;
23919#[repr(C)]
23920#[derive(Debug, Copy, Clone)]
23921pub struct _LINEBUF_REC {
23922    _unused: [u8; 0],
23923}
23924pub type LINEBUF_REC = _LINEBUF_REC;
23925#[repr(C)]
23926#[derive(Debug, Copy, Clone)]
23927pub struct _NET_SENDBUF_REC {
23928    _unused: [u8; 0],
23929}
23930pub type NET_SENDBUF_REC = _NET_SENDBUF_REC;
23931#[repr(C)]
23932#[derive(Debug, Copy, Clone)]
23933pub struct _RAWLOG_REC {
23934    _unused: [u8; 0],
23935}
23936pub type RAWLOG_REC = _RAWLOG_REC;
23937#[repr(C)]
23938#[derive(Debug, Copy, Clone)]
23939pub struct _CHAT_PROTOCOL_REC {
23940    _unused: [u8; 0],
23941}
23942pub type CHAT_PROTOCOL_REC = _CHAT_PROTOCOL_REC;
23943#[repr(C)]
23944#[derive(Debug, Copy, Clone)]
23945pub struct _CHATNET_REC {
23946    _unused: [u8; 0],
23947}
23948pub type CHATNET_REC = _CHATNET_REC;
23949#[repr(C)]
23950#[derive(Debug, Copy, Clone)]
23951pub struct _SERVER_REC {
23952    _unused: [u8; 0],
23953}
23954pub type SERVER_REC = _SERVER_REC;
23955#[repr(C)]
23956#[derive(Debug, Copy, Clone)]
23957pub struct _WI_ITEM_REC {
23958    _unused: [u8; 0],
23959}
23960pub type WI_ITEM_REC = _WI_ITEM_REC;
23961#[repr(C)]
23962#[derive(Debug, Copy, Clone)]
23963pub struct _CHANNEL_REC {
23964    _unused: [u8; 0],
23965}
23966pub type CHANNEL_REC = _CHANNEL_REC;
23967#[repr(C)]
23968#[derive(Debug, Copy, Clone)]
23969pub struct _QUERY_REC {
23970    _unused: [u8; 0],
23971}
23972pub type QUERY_REC = _QUERY_REC;
23973#[repr(C)]
23974#[derive(Debug, Copy, Clone)]
23975pub struct _NICK_REC {
23976    _unused: [u8; 0],
23977}
23978pub type NICK_REC = _NICK_REC;
23979#[repr(C)]
23980#[derive(Debug, Copy, Clone)]
23981pub struct _SERVER_CONNECT_REC {
23982    _unused: [u8; 0],
23983}
23984pub type SERVER_CONNECT_REC = _SERVER_CONNECT_REC;
23985#[repr(C)]
23986#[derive(Debug, Copy, Clone)]
23987pub struct _SERVER_SETUP_REC {
23988    _unused: [u8; 0],
23989}
23990pub type SERVER_SETUP_REC = _SERVER_SETUP_REC;
23991#[repr(C)]
23992#[derive(Debug, Copy, Clone)]
23993pub struct _CHANNEL_SETUP_REC {
23994    _unused: [u8; 0],
23995}
23996pub type CHANNEL_SETUP_REC = _CHANNEL_SETUP_REC;
23997#[repr(C)]
23998#[derive(Debug, Copy, Clone)]
23999pub struct _WINDOW_REC {
24000    _unused: [u8; 0],
24001}
24002pub type WINDOW_REC = _WINDOW_REC;
24003pub const MODULE_ERROR_ALREADY_LOADED: _bindgen_ty_25 = 0;
24004pub const MODULE_ERROR_LOAD: _bindgen_ty_25 = 1;
24005pub const MODULE_ERROR_VERSION_MISMATCH: _bindgen_ty_25 = 2;
24006pub const MODULE_ERROR_INVALID: _bindgen_ty_25 = 3;
24007pub type _bindgen_ty_25 = u32;
24008pub type MODULE_REC = _MODULE_REC;
24009#[repr(C)]
24010#[derive(Debug, Copy, Clone)]
24011pub struct MODULE_FILE_REC {
24012    pub root: *mut MODULE_REC,
24013    pub name: *mut ::std::os::raw::c_char,
24014    pub defined_module_name: *mut ::std::os::raw::c_char,
24015    pub module_deinit: ::std::option::Option<unsafe extern "C" fn()>,
24016    pub gmodule: *mut GModule,
24017    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize], u8>,
24018    pub __bindgen_padding_0: [u8; 7usize],
24019}
24020#[test]
24021fn bindgen_test_layout_MODULE_FILE_REC() {
24022    assert_eq!(
24023        ::std::mem::size_of::<MODULE_FILE_REC>(),
24024        48usize,
24025        concat!("Size of: ", stringify!(MODULE_FILE_REC))
24026    );
24027    assert_eq!(
24028        ::std::mem::align_of::<MODULE_FILE_REC>(),
24029        8usize,
24030        concat!("Alignment of ", stringify!(MODULE_FILE_REC))
24031    );
24032    assert_eq!(
24033        unsafe { &(*(::std::ptr::null::<MODULE_FILE_REC>())).root as *const _ as usize },
24034        0usize,
24035        concat!(
24036            "Offset of field: ",
24037            stringify!(MODULE_FILE_REC),
24038            "::",
24039            stringify!(root)
24040        )
24041    );
24042    assert_eq!(
24043        unsafe { &(*(::std::ptr::null::<MODULE_FILE_REC>())).name as *const _ as usize },
24044        8usize,
24045        concat!(
24046            "Offset of field: ",
24047            stringify!(MODULE_FILE_REC),
24048            "::",
24049            stringify!(name)
24050        )
24051    );
24052    assert_eq!(
24053        unsafe {
24054            &(*(::std::ptr::null::<MODULE_FILE_REC>())).defined_module_name as *const _ as usize
24055        },
24056        16usize,
24057        concat!(
24058            "Offset of field: ",
24059            stringify!(MODULE_FILE_REC),
24060            "::",
24061            stringify!(defined_module_name)
24062        )
24063    );
24064    assert_eq!(
24065        unsafe { &(*(::std::ptr::null::<MODULE_FILE_REC>())).module_deinit as *const _ as usize },
24066        24usize,
24067        concat!(
24068            "Offset of field: ",
24069            stringify!(MODULE_FILE_REC),
24070            "::",
24071            stringify!(module_deinit)
24072        )
24073    );
24074    assert_eq!(
24075        unsafe { &(*(::std::ptr::null::<MODULE_FILE_REC>())).gmodule as *const _ as usize },
24076        32usize,
24077        concat!(
24078            "Offset of field: ",
24079            stringify!(MODULE_FILE_REC),
24080            "::",
24081            stringify!(gmodule)
24082        )
24083    );
24084}
24085impl MODULE_FILE_REC {
24086    #[inline]
24087    pub fn initialized(&self) -> ::std::os::raw::c_uint {
24088        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
24089    }
24090    #[inline]
24091    pub fn set_initialized(&mut self, val: ::std::os::raw::c_uint) {
24092        unsafe {
24093            let val: u32 = ::std::mem::transmute(val);
24094            self._bitfield_1.set(0usize, 1u8, val as u64)
24095        }
24096    }
24097    #[inline]
24098    pub fn new_bitfield_1(
24099        initialized: ::std::os::raw::c_uint,
24100    ) -> __BindgenBitfieldUnit<[u8; 1usize], u8> {
24101        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize], u8> =
24102            Default::default();
24103        __bindgen_bitfield_unit.set(0usize, 1u8, {
24104            let initialized: u32 = unsafe { ::std::mem::transmute(initialized) };
24105            initialized as u64
24106        });
24107        __bindgen_bitfield_unit
24108    }
24109}
24110#[repr(C)]
24111#[derive(Debug, Copy, Clone)]
24112pub struct _MODULE_REC {
24113    pub name: *mut ::std::os::raw::c_char,
24114    pub files: *mut GSList,
24115}
24116#[test]
24117fn bindgen_test_layout__MODULE_REC() {
24118    assert_eq!(
24119        ::std::mem::size_of::<_MODULE_REC>(),
24120        16usize,
24121        concat!("Size of: ", stringify!(_MODULE_REC))
24122    );
24123    assert_eq!(
24124        ::std::mem::align_of::<_MODULE_REC>(),
24125        8usize,
24126        concat!("Alignment of ", stringify!(_MODULE_REC))
24127    );
24128    assert_eq!(
24129        unsafe { &(*(::std::ptr::null::<_MODULE_REC>())).name as *const _ as usize },
24130        0usize,
24131        concat!(
24132            "Offset of field: ",
24133            stringify!(_MODULE_REC),
24134            "::",
24135            stringify!(name)
24136        )
24137    );
24138    assert_eq!(
24139        unsafe { &(*(::std::ptr::null::<_MODULE_REC>())).files as *const _ as usize },
24140        8usize,
24141        concat!(
24142            "Offset of field: ",
24143            stringify!(_MODULE_REC),
24144            "::",
24145            stringify!(files)
24146        )
24147    );
24148}
24149extern "C" {
24150    pub static mut modules: *mut GSList;
24151}
24152extern "C" {
24153    pub fn module_register_full(
24154        name: *const ::std::os::raw::c_char,
24155        submodule: *const ::std::os::raw::c_char,
24156        defined_module_name: *const ::std::os::raw::c_char,
24157    ) -> *mut MODULE_FILE_REC;
24158}
24159extern "C" {
24160    pub fn module_find(name: *const ::std::os::raw::c_char) -> *mut MODULE_REC;
24161}
24162extern "C" {
24163    pub fn module_file_find(
24164        module: *mut MODULE_REC,
24165        name: *const ::std::os::raw::c_char,
24166    ) -> *mut MODULE_FILE_REC;
24167}
24168extern "C" {
24169    pub fn module_check_cast(
24170        object: *mut ::std::os::raw::c_void,
24171        type_pos: ::std::os::raw::c_int,
24172        id: *const ::std::os::raw::c_char,
24173    ) -> *mut ::std::os::raw::c_void;
24174}
24175extern "C" {
24176    pub fn module_check_cast_module(
24177        object: *mut ::std::os::raw::c_void,
24178        type_pos: ::std::os::raw::c_int,
24179        module: *const ::std::os::raw::c_char,
24180        id: *const ::std::os::raw::c_char,
24181    ) -> *mut ::std::os::raw::c_void;
24182}
24183extern "C" {
24184    pub fn module_get_uniq_id(
24185        module: *const ::std::os::raw::c_char,
24186        id: ::std::os::raw::c_int,
24187    ) -> ::std::os::raw::c_int;
24188}
24189extern "C" {
24190    pub fn module_get_uniq_id_str(
24191        module: *const ::std::os::raw::c_char,
24192        id: *const ::std::os::raw::c_char,
24193    ) -> ::std::os::raw::c_int;
24194}
24195extern "C" {
24196    pub fn module_find_id(
24197        module: *const ::std::os::raw::c_char,
24198        uniqid: ::std::os::raw::c_int,
24199    ) -> ::std::os::raw::c_int;
24200}
24201extern "C" {
24202    pub fn module_find_id_str(
24203        module: *const ::std::os::raw::c_char,
24204        uniqid: ::std::os::raw::c_int,
24205    ) -> *const ::std::os::raw::c_char;
24206}
24207extern "C" {
24208    pub fn module_uniq_destroy(module: *const ::std::os::raw::c_char);
24209}
24210extern "C" {
24211    pub fn modules_init();
24212}
24213extern "C" {
24214    pub fn modules_deinit();
24215}
24216extern "C" {
24217    pub fn module_load(
24218        path: *const ::std::os::raw::c_char,
24219        prefixes: *mut *mut ::std::os::raw::c_char,
24220    ) -> ::std::os::raw::c_int;
24221}
24222extern "C" {
24223    pub fn module_load_sub(
24224        path: *const ::std::os::raw::c_char,
24225        submodule: *const ::std::os::raw::c_char,
24226        prefixes: *mut *mut ::std::os::raw::c_char,
24227    ) -> ::std::os::raw::c_int;
24228}
24229extern "C" {
24230    pub fn module_unload(module: *mut MODULE_REC);
24231}
24232extern "C" {
24233    pub fn module_file_unload(file: *mut MODULE_FILE_REC);
24234}
24235extern "C" {
24236    pub fn args_register(options: *mut GOptionEntry);
24237}
24238extern "C" {
24239    pub fn args_execute(argc: ::std::os::raw::c_int, argv: *mut *mut ::std::os::raw::c_char);
24240}
24241pub type SIGNAL_FUNC = ::std::option::Option<
24242    unsafe extern "C" fn(
24243        arg1: *const ::std::os::raw::c_void,
24244        arg2: *const ::std::os::raw::c_void,
24245        arg3: *const ::std::os::raw::c_void,
24246        arg4: *const ::std::os::raw::c_void,
24247        arg5: *const ::std::os::raw::c_void,
24248        arg6: *const ::std::os::raw::c_void,
24249    ),
24250>;
24251extern "C" {
24252    pub static mut signal_user_data: *mut ::std::os::raw::c_void;
24253}
24254extern "C" {
24255    pub fn signal_add_full(
24256        module: *const ::std::os::raw::c_char,
24257        priority: ::std::os::raw::c_int,
24258        signal: *const ::std::os::raw::c_char,
24259        func: SIGNAL_FUNC,
24260        user_data: *mut ::std::os::raw::c_void,
24261    );
24262}
24263extern "C" {
24264    pub fn signal_add_full_id(
24265        module: *const ::std::os::raw::c_char,
24266        priority: ::std::os::raw::c_int,
24267        signal: ::std::os::raw::c_int,
24268        func: SIGNAL_FUNC,
24269        user_data: *mut ::std::os::raw::c_void,
24270    );
24271}
24272extern "C" {
24273    pub fn signal_remove_full(
24274        signal: *const ::std::os::raw::c_char,
24275        func: SIGNAL_FUNC,
24276        user_data: *mut ::std::os::raw::c_void,
24277    );
24278}
24279extern "C" {
24280    pub fn signal_remove_id(
24281        signal_id: ::std::os::raw::c_int,
24282        func: SIGNAL_FUNC,
24283        user_data: *mut ::std::os::raw::c_void,
24284    );
24285}
24286extern "C" {
24287    pub fn signal_emit(
24288        signal: *const ::std::os::raw::c_char,
24289        params: ::std::os::raw::c_int,
24290        ...
24291    ) -> ::std::os::raw::c_int;
24292}
24293extern "C" {
24294    pub fn signal_emit_id(
24295        signal_id: ::std::os::raw::c_int,
24296        params: ::std::os::raw::c_int,
24297        ...
24298    ) -> ::std::os::raw::c_int;
24299}
24300extern "C" {
24301    pub fn signal_continue(params: ::std::os::raw::c_int, ...);
24302}
24303extern "C" {
24304    pub fn signal_stop();
24305}
24306extern "C" {
24307    pub fn signal_stop_by_name(signal: *const ::std::os::raw::c_char);
24308}
24309extern "C" {
24310    pub fn signal_get_emitted() -> *const ::std::os::raw::c_char;
24311}
24312extern "C" {
24313    pub fn signal_get_emitted_id() -> ::std::os::raw::c_int;
24314}
24315extern "C" {
24316    pub fn signal_is_stopped(signal_id: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
24317}
24318extern "C" {
24319    pub fn signals_remove_module(module: *const ::std::os::raw::c_char);
24320}
24321extern "C" {
24322    pub fn signals_init();
24323}
24324extern "C" {
24325    pub fn signals_deinit();
24326}
24327extern "C" {
24328    pub static mut irssi_gui: ::std::os::raw::c_int;
24329}
24330extern "C" {
24331    pub static mut irssi_init_finished: ::std::os::raw::c_int;
24332}
24333extern "C" {
24334    pub static mut reload_config: ::std::os::raw::c_int;
24335}
24336extern "C" {
24337    pub static mut client_start_time: time_t;
24338}
24339extern "C" {
24340    pub fn core_preinit(path: *const ::std::os::raw::c_char);
24341}
24342extern "C" {
24343    pub fn core_register_options();
24344}
24345extern "C" {
24346    pub fn core_init();
24347}
24348extern "C" {
24349    pub fn core_deinit();
24350}
24351pub type __builtin_va_list = [__va_list_tag; 1usize];
24352#[repr(C)]
24353#[derive(Debug, Copy, Clone)]
24354pub struct __va_list_tag {
24355    pub gp_offset: ::std::os::raw::c_uint,
24356    pub fp_offset: ::std::os::raw::c_uint,
24357    pub overflow_arg_area: *mut ::std::os::raw::c_void,
24358    pub reg_save_area: *mut ::std::os::raw::c_void,
24359}
24360#[test]
24361fn bindgen_test_layout___va_list_tag() {
24362    assert_eq!(
24363        ::std::mem::size_of::<__va_list_tag>(),
24364        24usize,
24365        concat!("Size of: ", stringify!(__va_list_tag))
24366    );
24367    assert_eq!(
24368        ::std::mem::align_of::<__va_list_tag>(),
24369        8usize,
24370        concat!("Alignment of ", stringify!(__va_list_tag))
24371    );
24372    assert_eq!(
24373        unsafe { &(*(::std::ptr::null::<__va_list_tag>())).gp_offset as *const _ as usize },
24374        0usize,
24375        concat!(
24376            "Offset of field: ",
24377            stringify!(__va_list_tag),
24378            "::",
24379            stringify!(gp_offset)
24380        )
24381    );
24382    assert_eq!(
24383        unsafe { &(*(::std::ptr::null::<__va_list_tag>())).fp_offset as *const _ as usize },
24384        4usize,
24385        concat!(
24386            "Offset of field: ",
24387            stringify!(__va_list_tag),
24388            "::",
24389            stringify!(fp_offset)
24390        )
24391    );
24392    assert_eq!(
24393        unsafe { &(*(::std::ptr::null::<__va_list_tag>())).overflow_arg_area as *const _ as usize },
24394        8usize,
24395        concat!(
24396            "Offset of field: ",
24397            stringify!(__va_list_tag),
24398            "::",
24399            stringify!(overflow_arg_area)
24400        )
24401    );
24402    assert_eq!(
24403        unsafe { &(*(::std::ptr::null::<__va_list_tag>())).reg_save_area as *const _ as usize },
24404        16usize,
24405        concat!(
24406            "Offset of field: ",
24407            stringify!(__va_list_tag),
24408            "::",
24409            stringify!(reg_save_area)
24410        )
24411    );
24412}
24413#[repr(C)]
24414#[derive(Debug, Copy, Clone)]
24415pub struct __locale_data {
24416    pub _address: u8,
24417}