Skip to main content

lzma_sdk_sys/
bindings.rs

1/* automatically generated by rust-bindgen 0.72.1 */
2
3pub const _ERRNO_H: u32 = 1;
4pub const _FEATURES_H: u32 = 1;
5pub const _DEFAULT_SOURCE: u32 = 1;
6pub const __GLIBC_USE_ISOC23: u32 = 0;
7pub const __USE_ISOC11: u32 = 1;
8pub const __USE_ISOC99: u32 = 1;
9pub const __USE_ISOC95: u32 = 1;
10pub const __USE_POSIX_IMPLICITLY: u32 = 1;
11pub const _POSIX_SOURCE: u32 = 1;
12pub const _POSIX_C_SOURCE: u32 = 200809;
13pub const __USE_POSIX: u32 = 1;
14pub const __USE_POSIX2: u32 = 1;
15pub const __USE_POSIX199309: u32 = 1;
16pub const __USE_POSIX199506: u32 = 1;
17pub const __USE_XOPEN2K: u32 = 1;
18pub const __USE_XOPEN2K8: u32 = 1;
19pub const _ATFILE_SOURCE: u32 = 1;
20pub const __USE_LARGEFILE: u32 = 1;
21pub const __USE_FILE_OFFSET64: u32 = 1;
22pub const __WORDSIZE: u32 = 64;
23pub const __WORDSIZE_TIME64_COMPAT32: u32 = 1;
24pub const __SYSCALL_WORDSIZE: u32 = 64;
25pub const __TIMESIZE: u32 = 64;
26pub const __USE_TIME_BITS64: u32 = 1;
27pub const __USE_MISC: u32 = 1;
28pub const __USE_ATFILE: u32 = 1;
29pub const __USE_FORTIFY_LEVEL: u32 = 0;
30pub const __GLIBC_USE_DEPRECATED_GETS: u32 = 0;
31pub const __GLIBC_USE_DEPRECATED_SCANF: u32 = 0;
32pub const __GLIBC_USE_C23_STRTOL: u32 = 0;
33pub const _STDC_PREDEF_H: u32 = 1;
34pub const __STDC_IEC_559__: u32 = 1;
35pub const __STDC_IEC_60559_BFP__: u32 = 201404;
36pub const __STDC_IEC_559_COMPLEX__: u32 = 1;
37pub const __STDC_IEC_60559_COMPLEX__: u32 = 201404;
38pub const __STDC_ISO_10646__: u32 = 201706;
39pub const __GNU_LIBRARY__: u32 = 6;
40pub const __GLIBC__: u32 = 2;
41pub const __GLIBC_MINOR__: u32 = 40;
42pub const _SYS_CDEFS_H: u32 = 1;
43pub const __glibc_c99_flexarr_available: u32 = 1;
44pub const __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI: u32 = 0;
45pub const __HAVE_GENERIC_SELECTION: u32 = 1;
46pub const _BITS_ERRNO_H: u32 = 1;
47pub const EPERM: u32 = 1;
48pub const ENOENT: u32 = 2;
49pub const ESRCH: u32 = 3;
50pub const EINTR: u32 = 4;
51pub const EIO: u32 = 5;
52pub const ENXIO: u32 = 6;
53pub const E2BIG: u32 = 7;
54pub const ENOEXEC: u32 = 8;
55pub const EBADF: u32 = 9;
56pub const ECHILD: u32 = 10;
57pub const EAGAIN: u32 = 11;
58pub const ENOMEM: u32 = 12;
59pub const EACCES: u32 = 13;
60pub const EFAULT: u32 = 14;
61pub const ENOTBLK: u32 = 15;
62pub const EBUSY: u32 = 16;
63pub const EEXIST: u32 = 17;
64pub const EXDEV: u32 = 18;
65pub const ENODEV: u32 = 19;
66pub const ENOTDIR: u32 = 20;
67pub const EISDIR: u32 = 21;
68pub const EINVAL: u32 = 22;
69pub const ENFILE: u32 = 23;
70pub const EMFILE: u32 = 24;
71pub const ENOTTY: u32 = 25;
72pub const ETXTBSY: u32 = 26;
73pub const EFBIG: u32 = 27;
74pub const ENOSPC: u32 = 28;
75pub const ESPIPE: u32 = 29;
76pub const EROFS: u32 = 30;
77pub const EMLINK: u32 = 31;
78pub const EPIPE: u32 = 32;
79pub const EDOM: u32 = 33;
80pub const ERANGE: u32 = 34;
81pub const EDEADLK: u32 = 35;
82pub const ENAMETOOLONG: u32 = 36;
83pub const ENOLCK: u32 = 37;
84pub const ENOSYS: u32 = 38;
85pub const ENOTEMPTY: u32 = 39;
86pub const ELOOP: u32 = 40;
87pub const EWOULDBLOCK: u32 = 11;
88pub const ENOMSG: u32 = 42;
89pub const EIDRM: u32 = 43;
90pub const ECHRNG: u32 = 44;
91pub const EL2NSYNC: u32 = 45;
92pub const EL3HLT: u32 = 46;
93pub const EL3RST: u32 = 47;
94pub const ELNRNG: u32 = 48;
95pub const EUNATCH: u32 = 49;
96pub const ENOCSI: u32 = 50;
97pub const EL2HLT: u32 = 51;
98pub const EBADE: u32 = 52;
99pub const EBADR: u32 = 53;
100pub const EXFULL: u32 = 54;
101pub const ENOANO: u32 = 55;
102pub const EBADRQC: u32 = 56;
103pub const EBADSLT: u32 = 57;
104pub const EDEADLOCK: u32 = 35;
105pub const EBFONT: u32 = 59;
106pub const ENOSTR: u32 = 60;
107pub const ENODATA: u32 = 61;
108pub const ETIME: u32 = 62;
109pub const ENOSR: u32 = 63;
110pub const ENONET: u32 = 64;
111pub const ENOPKG: u32 = 65;
112pub const EREMOTE: u32 = 66;
113pub const ENOLINK: u32 = 67;
114pub const EADV: u32 = 68;
115pub const ESRMNT: u32 = 69;
116pub const ECOMM: u32 = 70;
117pub const EPROTO: u32 = 71;
118pub const EMULTIHOP: u32 = 72;
119pub const EDOTDOT: u32 = 73;
120pub const EBADMSG: u32 = 74;
121pub const EOVERFLOW: u32 = 75;
122pub const ENOTUNIQ: u32 = 76;
123pub const EBADFD: u32 = 77;
124pub const EREMCHG: u32 = 78;
125pub const ELIBACC: u32 = 79;
126pub const ELIBBAD: u32 = 80;
127pub const ELIBSCN: u32 = 81;
128pub const ELIBMAX: u32 = 82;
129pub const ELIBEXEC: u32 = 83;
130pub const EILSEQ: u32 = 84;
131pub const ERESTART: u32 = 85;
132pub const ESTRPIPE: u32 = 86;
133pub const EUSERS: u32 = 87;
134pub const ENOTSOCK: u32 = 88;
135pub const EDESTADDRREQ: u32 = 89;
136pub const EMSGSIZE: u32 = 90;
137pub const EPROTOTYPE: u32 = 91;
138pub const ENOPROTOOPT: u32 = 92;
139pub const EPROTONOSUPPORT: u32 = 93;
140pub const ESOCKTNOSUPPORT: u32 = 94;
141pub const EOPNOTSUPP: u32 = 95;
142pub const EPFNOSUPPORT: u32 = 96;
143pub const EAFNOSUPPORT: u32 = 97;
144pub const EADDRINUSE: u32 = 98;
145pub const EADDRNOTAVAIL: u32 = 99;
146pub const ENETDOWN: u32 = 100;
147pub const ENETUNREACH: u32 = 101;
148pub const ENETRESET: u32 = 102;
149pub const ECONNABORTED: u32 = 103;
150pub const ECONNRESET: u32 = 104;
151pub const ENOBUFS: u32 = 105;
152pub const EISCONN: u32 = 106;
153pub const ENOTCONN: u32 = 107;
154pub const ESHUTDOWN: u32 = 108;
155pub const ETOOMANYREFS: u32 = 109;
156pub const ETIMEDOUT: u32 = 110;
157pub const ECONNREFUSED: u32 = 111;
158pub const EHOSTDOWN: u32 = 112;
159pub const EHOSTUNREACH: u32 = 113;
160pub const EALREADY: u32 = 114;
161pub const EINPROGRESS: u32 = 115;
162pub const ESTALE: u32 = 116;
163pub const EUCLEAN: u32 = 117;
164pub const ENOTNAM: u32 = 118;
165pub const ENAVAIL: u32 = 119;
166pub const EISNAM: u32 = 120;
167pub const EREMOTEIO: u32 = 121;
168pub const EDQUOT: u32 = 122;
169pub const ENOMEDIUM: u32 = 123;
170pub const EMEDIUMTYPE: u32 = 124;
171pub const ECANCELED: u32 = 125;
172pub const ENOKEY: u32 = 126;
173pub const EKEYEXPIRED: u32 = 127;
174pub const EKEYREVOKED: u32 = 128;
175pub const EKEYREJECTED: u32 = 129;
176pub const EOWNERDEAD: u32 = 130;
177pub const ENOTRECOVERABLE: u32 = 131;
178pub const ERFKILL: u32 = 132;
179pub const EHWPOISON: u32 = 133;
180pub const ENOTSUP: u32 = 95;
181pub const SZ_OK: u32 = 0;
182pub const SZ_ERROR_DATA: u32 = 1;
183pub const SZ_ERROR_MEM: u32 = 2;
184pub const SZ_ERROR_CRC: u32 = 3;
185pub const SZ_ERROR_UNSUPPORTED: u32 = 4;
186pub const SZ_ERROR_PARAM: u32 = 5;
187pub const SZ_ERROR_INPUT_EOF: u32 = 6;
188pub const SZ_ERROR_OUTPUT_EOF: u32 = 7;
189pub const SZ_ERROR_READ: u32 = 8;
190pub const SZ_ERROR_WRITE: u32 = 9;
191pub const SZ_ERROR_PROGRESS: u32 = 10;
192pub const SZ_ERROR_FAIL: u32 = 11;
193pub const SZ_ERROR_THREAD: u32 = 12;
194pub const SZ_ERROR_ARCHIVE: u32 = 16;
195pub const SZ_ERROR_NO_ARCHIVE: u32 = 17;
196pub const MY_FACILITY_ERRNO: u32 = 2048;
197pub const MY_FACILITY_WIN32: u32 = 7;
198pub const MY_FACILITY_WRes: u32 = 2048;
199pub const ERROR_INVALID_PARAMETER: u32 = 22;
200pub const ERROR_INVALID_FUNCTION: u32 = 22;
201pub const ERROR_ALREADY_EXISTS: u32 = 17;
202pub const ERROR_FILE_EXISTS: u32 = 17;
203pub const ERROR_PATH_NOT_FOUND: u32 = 2;
204pub const ERROR_FILE_NOT_FOUND: u32 = 2;
205pub const ERROR_DISK_FULL: u32 = 28;
206pub const FILE_ATTRIBUTE_READONLY: u32 = 1;
207pub const FILE_ATTRIBUTE_HIDDEN: u32 = 2;
208pub const FILE_ATTRIBUTE_SYSTEM: u32 = 4;
209pub const FILE_ATTRIBUTE_DIRECTORY: u32 = 16;
210pub const FILE_ATTRIBUTE_ARCHIVE: u32 = 32;
211pub const FILE_ATTRIBUTE_DEVICE: u32 = 64;
212pub const FILE_ATTRIBUTE_NORMAL: u32 = 128;
213pub const FILE_ATTRIBUTE_TEMPORARY: u32 = 256;
214pub const FILE_ATTRIBUTE_SPARSE_FILE: u32 = 512;
215pub const FILE_ATTRIBUTE_REPARSE_POINT: u32 = 1024;
216pub const FILE_ATTRIBUTE_COMPRESSED: u32 = 2048;
217pub const FILE_ATTRIBUTE_OFFLINE: u32 = 4096;
218pub const FILE_ATTRIBUTE_NOT_CONTENT_INDEXED: u32 = 8192;
219pub const FILE_ATTRIBUTE_ENCRYPTED: u32 = 16384;
220pub const FILE_ATTRIBUTE_UNIX_EXTENSION: u32 = 32768;
221pub const _STDINT_H: u32 = 1;
222pub const __GLIBC_USE_LIB_EXT2: u32 = 0;
223pub const __GLIBC_USE_IEC_60559_BFP_EXT: u32 = 0;
224pub const __GLIBC_USE_IEC_60559_BFP_EXT_C23: u32 = 0;
225pub const __GLIBC_USE_IEC_60559_EXT: u32 = 0;
226pub const __GLIBC_USE_IEC_60559_FUNCS_EXT: u32 = 0;
227pub const __GLIBC_USE_IEC_60559_FUNCS_EXT_C23: u32 = 0;
228pub const __GLIBC_USE_IEC_60559_TYPES_EXT: u32 = 0;
229pub const _BITS_TYPES_H: u32 = 1;
230pub const _BITS_TYPESIZES_H: u32 = 1;
231pub const __OFF_T_MATCHES_OFF64_T: u32 = 1;
232pub const __INO_T_MATCHES_INO64_T: u32 = 1;
233pub const __RLIM_T_MATCHES_RLIM64_T: u32 = 1;
234pub const __STATFS_MATCHES_STATFS64: u32 = 1;
235pub const __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64: u32 = 1;
236pub const __FD_SETSIZE: u32 = 1024;
237pub const _BITS_TIME64_H: u32 = 1;
238pub const _BITS_WCHAR_H: u32 = 1;
239pub const _BITS_STDINT_INTN_H: u32 = 1;
240pub const _BITS_STDINT_UINTN_H: u32 = 1;
241pub const _BITS_STDINT_LEAST_H: u32 = 1;
242pub const INT8_MIN: i32 = -128;
243pub const INT16_MIN: i32 = -32768;
244pub const INT32_MIN: i32 = -2147483648;
245pub const INT8_MAX: u32 = 127;
246pub const INT16_MAX: u32 = 32767;
247pub const INT32_MAX: u32 = 2147483647;
248pub const UINT8_MAX: u32 = 255;
249pub const UINT16_MAX: u32 = 65535;
250pub const UINT32_MAX: u32 = 4294967295;
251pub const INT_LEAST8_MIN: i32 = -128;
252pub const INT_LEAST16_MIN: i32 = -32768;
253pub const INT_LEAST32_MIN: i32 = -2147483648;
254pub const INT_LEAST8_MAX: u32 = 127;
255pub const INT_LEAST16_MAX: u32 = 32767;
256pub const INT_LEAST32_MAX: u32 = 2147483647;
257pub const UINT_LEAST8_MAX: u32 = 255;
258pub const UINT_LEAST16_MAX: u32 = 65535;
259pub const UINT_LEAST32_MAX: u32 = 4294967295;
260pub const INT_FAST8_MIN: i32 = -128;
261pub const INT_FAST16_MIN: i64 = -9223372036854775808;
262pub const INT_FAST32_MIN: i64 = -9223372036854775808;
263pub const INT_FAST8_MAX: u32 = 127;
264pub const INT_FAST16_MAX: u64 = 9223372036854775807;
265pub const INT_FAST32_MAX: u64 = 9223372036854775807;
266pub const UINT_FAST8_MAX: u32 = 255;
267pub const UINT_FAST16_MAX: i32 = -1;
268pub const UINT_FAST32_MAX: i32 = -1;
269pub const INTPTR_MIN: i64 = -9223372036854775808;
270pub const INTPTR_MAX: u64 = 9223372036854775807;
271pub const UINTPTR_MAX: i32 = -1;
272pub const PTRDIFF_MIN: i64 = -9223372036854775808;
273pub const PTRDIFF_MAX: u64 = 9223372036854775807;
274pub const SIG_ATOMIC_MIN: i32 = -2147483648;
275pub const SIG_ATOMIC_MAX: u32 = 2147483647;
276pub const SIZE_MAX: i32 = -1;
277pub const WINT_MIN: u32 = 0;
278pub const WINT_MAX: u32 = 4294967295;
279pub const True: u32 = 1;
280pub const False: u32 = 0;
281pub const CHAR_PATH_SEPARATOR: u8 = 47u8;
282pub const WCHAR_PATH_SEPARATOR: u8 = 47u8;
283pub const STRING_PATH_SEPARATOR: &[u8; 2] = b"/\0";
284pub const WSTRING_PATH_SEPARATOR: &[u8; 2] = b"/\0";
285pub const k_PropVar_TimePrec_0: u32 = 0;
286pub const k_PropVar_TimePrec_Unix: u32 = 1;
287pub const k_PropVar_TimePrec_DOS: u32 = 2;
288pub const k_PropVar_TimePrec_HighPrec: u32 = 3;
289pub const k_PropVar_TimePrec_Base: u32 = 16;
290pub const k_PropVar_TimePrec_100ns: u32 = 23;
291pub const k_PropVar_TimePrec_1ns: u32 = 25;
292pub const LZMA_PROPS_SIZE: u32 = 5;
293pub const LZMA_REQUIRED_INPUT_MAX: u32 = 20;
294pub const LZMA2_ENC_PROPS_BLOCK_SIZE_AUTO: u32 = 0;
295pub const _PTHREAD_H: u32 = 1;
296pub const _SCHED_H: u32 = 1;
297pub const __time_t_defined: u32 = 1;
298pub const _STRUCT_TIMESPEC: u32 = 1;
299pub const _BITS_ENDIAN_H: u32 = 1;
300pub const __LITTLE_ENDIAN: u32 = 1234;
301pub const __BIG_ENDIAN: u32 = 4321;
302pub const __PDP_ENDIAN: u32 = 3412;
303pub const _BITS_ENDIANNESS_H: u32 = 1;
304pub const __BYTE_ORDER: u32 = 1234;
305pub const __FLOAT_WORD_ORDER: u32 = 1234;
306pub const _BITS_SCHED_H: u32 = 1;
307pub const SCHED_OTHER: u32 = 0;
308pub const SCHED_FIFO: u32 = 1;
309pub const SCHED_RR: u32 = 2;
310pub const _BITS_TYPES_STRUCT_SCHED_PARAM: u32 = 1;
311pub const _BITS_CPU_SET_H: u32 = 1;
312pub const __CPU_SETSIZE: u32 = 1024;
313pub const _TIME_H: u32 = 1;
314pub const _BITS_TIME_H: u32 = 1;
315pub const CLOCK_REALTIME: u32 = 0;
316pub const CLOCK_MONOTONIC: u32 = 1;
317pub const CLOCK_PROCESS_CPUTIME_ID: u32 = 2;
318pub const CLOCK_THREAD_CPUTIME_ID: u32 = 3;
319pub const CLOCK_MONOTONIC_RAW: u32 = 4;
320pub const CLOCK_REALTIME_COARSE: u32 = 5;
321pub const CLOCK_MONOTONIC_COARSE: u32 = 6;
322pub const CLOCK_BOOTTIME: u32 = 7;
323pub const CLOCK_REALTIME_ALARM: u32 = 8;
324pub const CLOCK_BOOTTIME_ALARM: u32 = 9;
325pub const CLOCK_TAI: u32 = 11;
326pub const TIMER_ABSTIME: u32 = 1;
327pub const __clock_t_defined: u32 = 1;
328pub const __struct_tm_defined: u32 = 1;
329pub const __clockid_t_defined: u32 = 1;
330pub const __timer_t_defined: u32 = 1;
331pub const __itimerspec_defined: u32 = 1;
332pub const _BITS_TYPES_LOCALE_T_H: u32 = 1;
333pub const _BITS_TYPES___LOCALE_T_H: u32 = 1;
334pub const TIME_UTC: u32 = 1;
335pub const _BITS_PTHREADTYPES_COMMON_H: u32 = 1;
336pub const _THREAD_SHARED_TYPES_H: u32 = 1;
337pub const _BITS_PTHREADTYPES_ARCH_H: u32 = 1;
338pub const __SIZEOF_PTHREAD_MUTEX_T: u32 = 40;
339pub const __SIZEOF_PTHREAD_ATTR_T: u32 = 56;
340pub const __SIZEOF_PTHREAD_RWLOCK_T: u32 = 56;
341pub const __SIZEOF_PTHREAD_BARRIER_T: u32 = 32;
342pub const __SIZEOF_PTHREAD_MUTEXATTR_T: u32 = 4;
343pub const __SIZEOF_PTHREAD_COND_T: u32 = 48;
344pub const __SIZEOF_PTHREAD_CONDATTR_T: u32 = 4;
345pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: u32 = 8;
346pub const __SIZEOF_PTHREAD_BARRIERATTR_T: u32 = 4;
347pub const _THREAD_MUTEX_INTERNAL_H: u32 = 1;
348pub const __PTHREAD_MUTEX_HAVE_PREV: u32 = 1;
349pub const __have_pthread_attr_t: u32 = 1;
350pub const _BITS_SETJMP_H: u32 = 1;
351pub const __jmp_buf_tag_defined: u32 = 1;
352pub const PTHREAD_STACK_MIN: u32 = 16384;
353pub const PTHREAD_ONCE_INIT: u32 = 0;
354pub const PTHREAD_BARRIER_SERIAL_THREAD: i32 = -1;
355pub const kMtCacheLineDummy: u32 = 128;
356pub const MY_CPU_NAME: &[u8; 4] = b"x64\0";
357pub const MY_CPU_SIZEOF_POINTER: u32 = 8;
358pub const kEmptyHashValue: u32 = 0;
359pub type Z7_void_Function = ::core::option::Option<unsafe extern "C" fn()>;
360unsafe extern "C" {
361    pub fn __errno_location() -> *mut ::core::ffi::c_int;
362}
363pub type wchar_t = ::core::ffi::c_int;
364#[repr(C)]
365#[repr(align(16))]
366#[derive(Debug, Default, Copy, Clone, PartialOrd, PartialEq)]
367pub struct max_align_t {
368    pub __clang_max_align_nonce1: ::core::ffi::c_longlong,
369    pub __bindgen_padding_0: [u8; 8usize],
370    pub __clang_max_align_nonce2: u128,
371}
372pub type SRes = ::core::ffi::c_int;
373pub type WRes = ::core::ffi::c_int;
374pub type Byte = ::core::ffi::c_uchar;
375pub type Int16 = ::core::ffi::c_short;
376pub type UInt16 = ::core::ffi::c_ushort;
377pub type Int32 = ::core::ffi::c_int;
378pub type UInt32 = ::core::ffi::c_uint;
379pub type INT = ::core::ffi::c_int;
380pub type INT32 = Int32;
381pub type UINT = ::core::ffi::c_uint;
382pub type UINT32 = UInt32;
383pub type LONG = INT32;
384pub type ULONG = UINT32;
385pub type DWORD = UINT32;
386pub type LPVOID = *mut ::core::ffi::c_void;
387pub type INT_PTR = ::core::ffi::c_long;
388pub type UINT_PTR = ::core::ffi::c_ulong;
389pub type LONG_PTR = ::core::ffi::c_long;
390pub type DWORD_PTR = ::core::ffi::c_ulong;
391pub type SIZE_T = usize;
392pub type __u_char = ::core::ffi::c_uchar;
393pub type __u_short = ::core::ffi::c_ushort;
394pub type __u_int = ::core::ffi::c_uint;
395pub type __u_long = ::core::ffi::c_ulong;
396pub type __int8_t = ::core::ffi::c_schar;
397pub type __uint8_t = ::core::ffi::c_uchar;
398pub type __int16_t = ::core::ffi::c_short;
399pub type __uint16_t = ::core::ffi::c_ushort;
400pub type __int32_t = ::core::ffi::c_int;
401pub type __uint32_t = ::core::ffi::c_uint;
402pub type __int64_t = ::core::ffi::c_long;
403pub type __uint64_t = ::core::ffi::c_ulong;
404pub type __int_least8_t = __int8_t;
405pub type __uint_least8_t = __uint8_t;
406pub type __int_least16_t = __int16_t;
407pub type __uint_least16_t = __uint16_t;
408pub type __int_least32_t = __int32_t;
409pub type __uint_least32_t = __uint32_t;
410pub type __int_least64_t = __int64_t;
411pub type __uint_least64_t = __uint64_t;
412pub type __quad_t = ::core::ffi::c_long;
413pub type __u_quad_t = ::core::ffi::c_ulong;
414pub type __intmax_t = ::core::ffi::c_long;
415pub type __uintmax_t = ::core::ffi::c_ulong;
416pub type __dev_t = ::core::ffi::c_ulong;
417pub type __uid_t = ::core::ffi::c_uint;
418pub type __gid_t = ::core::ffi::c_uint;
419pub type __ino_t = ::core::ffi::c_ulong;
420pub type __ino64_t = ::core::ffi::c_ulong;
421pub type __mode_t = ::core::ffi::c_uint;
422pub type __nlink_t = ::core::ffi::c_ulong;
423pub type __off_t = ::core::ffi::c_long;
424pub type __off64_t = ::core::ffi::c_long;
425pub type __pid_t = ::core::ffi::c_int;
426#[repr(C)]
427#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
428pub struct __fsid_t {
429    pub __val: [::core::ffi::c_int; 2usize],
430}
431pub type __clock_t = ::core::ffi::c_long;
432pub type __rlim_t = ::core::ffi::c_ulong;
433pub type __rlim64_t = ::core::ffi::c_ulong;
434pub type __id_t = ::core::ffi::c_uint;
435pub type __time_t = ::core::ffi::c_long;
436pub type __useconds_t = ::core::ffi::c_uint;
437pub type __suseconds_t = ::core::ffi::c_long;
438pub type __suseconds64_t = ::core::ffi::c_long;
439pub type __daddr_t = ::core::ffi::c_int;
440pub type __key_t = ::core::ffi::c_int;
441pub type __clockid_t = ::core::ffi::c_int;
442pub type __timer_t = *mut ::core::ffi::c_void;
443pub type __blksize_t = ::core::ffi::c_long;
444pub type __blkcnt_t = ::core::ffi::c_long;
445pub type __blkcnt64_t = ::core::ffi::c_long;
446pub type __fsblkcnt_t = ::core::ffi::c_ulong;
447pub type __fsblkcnt64_t = ::core::ffi::c_ulong;
448pub type __fsfilcnt_t = ::core::ffi::c_ulong;
449pub type __fsfilcnt64_t = ::core::ffi::c_ulong;
450pub type __fsword_t = ::core::ffi::c_long;
451pub type __ssize_t = ::core::ffi::c_long;
452pub type __syscall_slong_t = ::core::ffi::c_long;
453pub type __syscall_ulong_t = ::core::ffi::c_ulong;
454pub type __loff_t = __off64_t;
455pub type __caddr_t = *mut ::core::ffi::c_char;
456pub type __intptr_t = ::core::ffi::c_long;
457pub type __socklen_t = ::core::ffi::c_uint;
458pub type __sig_atomic_t = ::core::ffi::c_int;
459pub type int_least8_t = __int_least8_t;
460pub type int_least16_t = __int_least16_t;
461pub type int_least32_t = __int_least32_t;
462pub type int_least64_t = __int_least64_t;
463pub type uint_least8_t = __uint_least8_t;
464pub type uint_least16_t = __uint_least16_t;
465pub type uint_least32_t = __uint_least32_t;
466pub type uint_least64_t = __uint_least64_t;
467pub type int_fast8_t = ::core::ffi::c_schar;
468pub type int_fast16_t = ::core::ffi::c_long;
469pub type int_fast32_t = ::core::ffi::c_long;
470pub type int_fast64_t = ::core::ffi::c_long;
471pub type uint_fast8_t = ::core::ffi::c_uchar;
472pub type uint_fast16_t = ::core::ffi::c_ulong;
473pub type uint_fast32_t = ::core::ffi::c_ulong;
474pub type uint_fast64_t = ::core::ffi::c_ulong;
475pub type intmax_t = __intmax_t;
476pub type uintmax_t = __uintmax_t;
477pub type Int64 = i64;
478pub type UInt64 = u64;
479pub type SizeT = usize;
480pub type BoolInt = ::core::ffi::c_int;
481pub type IByteInPtr = *const IByteIn_;
482pub type IByteIn = IByteIn_;
483#[repr(C)]
484#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
485pub struct IByteIn_ {
486    pub Read: ::core::option::Option<unsafe extern "C" fn(p: IByteInPtr) -> Byte>,
487}
488pub type IByteOutPtr = *const IByteOut_;
489pub type IByteOut = IByteOut_;
490#[repr(C)]
491#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
492pub struct IByteOut_ {
493    pub Write: ::core::option::Option<unsafe extern "C" fn(p: IByteOutPtr, b: Byte)>,
494}
495pub type ISeqInStreamPtr = *const ISeqInStream_;
496pub type ISeqInStream = ISeqInStream_;
497#[repr(C)]
498#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
499pub struct ISeqInStream_ {
500    pub Read: ::core::option::Option<
501        unsafe extern "C" fn(
502            p: ISeqInStreamPtr,
503            buf: *mut ::core::ffi::c_void,
504            size: *mut usize,
505        ) -> SRes,
506    >,
507}
508unsafe extern "C" {
509    pub fn SeqInStream_ReadMax(
510        stream: ISeqInStreamPtr,
511        buf: *mut ::core::ffi::c_void,
512        processedSize: *mut usize,
513    ) -> SRes;
514}
515unsafe extern "C" {
516    pub fn SeqInStream_ReadByte(stream: ISeqInStreamPtr, buf: *mut Byte) -> SRes;
517}
518pub type ISeqOutStreamPtr = *const ISeqOutStream_;
519pub type ISeqOutStream = ISeqOutStream_;
520#[repr(C)]
521#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
522pub struct ISeqOutStream_ {
523    pub Write: ::core::option::Option<
524        unsafe extern "C" fn(
525            p: ISeqOutStreamPtr,
526            buf: *const ::core::ffi::c_void,
527            size: usize,
528        ) -> usize,
529    >,
530}
531#[repr(u32)]
532#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
533pub enum ESzSeek {
534    SZ_SEEK_SET = 0,
535    SZ_SEEK_CUR = 1,
536    SZ_SEEK_END = 2,
537}
538pub type ISeekInStreamPtr = *const ISeekInStream_;
539pub type ISeekInStream = ISeekInStream_;
540#[repr(C)]
541#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
542pub struct ISeekInStream_ {
543    pub Read: ::core::option::Option<
544        unsafe extern "C" fn(
545            p: ISeekInStreamPtr,
546            buf: *mut ::core::ffi::c_void,
547            size: *mut usize,
548        ) -> SRes,
549    >,
550    pub Seek: ::core::option::Option<
551        unsafe extern "C" fn(p: ISeekInStreamPtr, pos: *mut Int64, origin: ESzSeek) -> SRes,
552    >,
553}
554pub type ILookInStreamPtr = *const ILookInStream_;
555pub type ILookInStream = ILookInStream_;
556#[repr(C)]
557#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
558pub struct ILookInStream_ {
559    pub Look: ::core::option::Option<
560        unsafe extern "C" fn(
561            p: ILookInStreamPtr,
562            buf: *mut *const ::core::ffi::c_void,
563            size: *mut usize,
564        ) -> SRes,
565    >,
566    pub Skip:
567        ::core::option::Option<unsafe extern "C" fn(p: ILookInStreamPtr, offset: usize) -> SRes>,
568    pub Read: ::core::option::Option<
569        unsafe extern "C" fn(
570            p: ILookInStreamPtr,
571            buf: *mut ::core::ffi::c_void,
572            size: *mut usize,
573        ) -> SRes,
574    >,
575    pub Seek: ::core::option::Option<
576        unsafe extern "C" fn(p: ILookInStreamPtr, pos: *mut Int64, origin: ESzSeek) -> SRes,
577    >,
578}
579unsafe extern "C" {
580    pub fn LookInStream_LookRead(
581        stream: ILookInStreamPtr,
582        buf: *mut ::core::ffi::c_void,
583        size: *mut usize,
584    ) -> SRes;
585}
586unsafe extern "C" {
587    pub fn LookInStream_SeekTo(stream: ILookInStreamPtr, offset: UInt64) -> SRes;
588}
589unsafe extern "C" {
590    pub fn LookInStream_Read2(
591        stream: ILookInStreamPtr,
592        buf: *mut ::core::ffi::c_void,
593        size: usize,
594        errorType: SRes,
595    ) -> SRes;
596}
597unsafe extern "C" {
598    pub fn LookInStream_Read(
599        stream: ILookInStreamPtr,
600        buf: *mut ::core::ffi::c_void,
601        size: usize,
602    ) -> SRes;
603}
604#[repr(C)]
605#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
606pub struct CLookToRead2 {
607    pub vt: ILookInStream,
608    pub realStream: ISeekInStreamPtr,
609    pub pos: usize,
610    pub size: usize,
611    pub buf: *mut Byte,
612    pub bufSize: usize,
613}
614impl Default for CLookToRead2 {
615    fn default() -> Self {
616        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
617        unsafe {
618            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
619            s.assume_init()
620        }
621    }
622}
623unsafe extern "C" {
624    pub fn LookToRead2_CreateVTable(p: *mut CLookToRead2, lookahead: ::core::ffi::c_int);
625}
626#[repr(C)]
627#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
628pub struct CSecToLook {
629    pub vt: ISeqInStream,
630    pub realStream: ILookInStreamPtr,
631}
632impl Default for CSecToLook {
633    fn default() -> Self {
634        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
635        unsafe {
636            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
637            s.assume_init()
638        }
639    }
640}
641unsafe extern "C" {
642    pub fn SecToLook_CreateVTable(p: *mut CSecToLook);
643}
644#[repr(C)]
645#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
646pub struct CSecToRead {
647    pub vt: ISeqInStream,
648    pub realStream: ILookInStreamPtr,
649}
650impl Default for CSecToRead {
651    fn default() -> Self {
652        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
653        unsafe {
654            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
655            s.assume_init()
656        }
657    }
658}
659unsafe extern "C" {
660    pub fn SecToRead_CreateVTable(p: *mut CSecToRead);
661}
662pub type ICompressProgressPtr = *const ICompressProgress_;
663pub type ICompressProgress = ICompressProgress_;
664#[repr(C)]
665#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
666pub struct ICompressProgress_ {
667    pub Progress: ::core::option::Option<
668        unsafe extern "C" fn(p: ICompressProgressPtr, inSize: UInt64, outSize: UInt64) -> SRes,
669    >,
670}
671pub type ISzAllocPtr = *const ISzAlloc;
672#[repr(C)]
673#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
674pub struct ISzAlloc {
675    pub Alloc: ::core::option::Option<
676        unsafe extern "C" fn(p: ISzAllocPtr, size: usize) -> *mut ::core::ffi::c_void,
677    >,
678    pub Free: ::core::option::Option<
679        unsafe extern "C" fn(p: ISzAllocPtr, address: *mut ::core::ffi::c_void),
680    >,
681}
682pub type CLzmaProb = UInt16;
683#[repr(C)]
684#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
685pub struct CLzmaProps {
686    pub lc: Byte,
687    pub lp: Byte,
688    pub pb: Byte,
689    pub _pad_: Byte,
690    pub dicSize: UInt32,
691}
692unsafe extern "C" {
693    pub fn LzmaProps_Decode(
694        p: *mut CLzmaProps,
695        data: *const Byte,
696        size: ::core::ffi::c_uint,
697    ) -> SRes;
698}
699#[repr(C)]
700#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
701pub struct CLzmaDec {
702    pub prop: CLzmaProps,
703    pub probs: *mut CLzmaProb,
704    pub probs_1664: *mut CLzmaProb,
705    pub dic: *mut Byte,
706    pub dicBufSize: SizeT,
707    pub dicPos: SizeT,
708    pub buf: *const Byte,
709    pub range: UInt32,
710    pub code: UInt32,
711    pub processedPos: UInt32,
712    pub checkDicSize: UInt32,
713    pub reps: [UInt32; 4usize],
714    pub state: UInt32,
715    pub remainLen: UInt32,
716    pub numProbs: UInt32,
717    pub tempBufSize: ::core::ffi::c_uint,
718    pub tempBuf: [Byte; 20usize],
719    pub __bindgen_padding_0: [u8; 4usize],
720}
721impl Default for CLzmaDec {
722    fn default() -> Self {
723        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
724        unsafe {
725            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
726            s.assume_init()
727        }
728    }
729}
730unsafe extern "C" {
731    pub fn LzmaDec_Init(p: *mut CLzmaDec);
732}
733#[repr(u32)]
734#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
735pub enum ELzmaFinishMode {
736    LZMA_FINISH_ANY = 0,
737    LZMA_FINISH_END = 1,
738}
739#[repr(u32)]
740#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
741pub enum ELzmaStatus {
742    LZMA_STATUS_NOT_SPECIFIED = 0,
743    LZMA_STATUS_FINISHED_WITH_MARK = 1,
744    LZMA_STATUS_NOT_FINISHED = 2,
745    LZMA_STATUS_NEEDS_MORE_INPUT = 3,
746    LZMA_STATUS_MAYBE_FINISHED_WITHOUT_MARK = 4,
747}
748unsafe extern "C" {
749    pub fn LzmaDec_AllocateProbs(
750        p: *mut CLzmaDec,
751        props: *const Byte,
752        propsSize: ::core::ffi::c_uint,
753        alloc: ISzAllocPtr,
754    ) -> SRes;
755}
756unsafe extern "C" {
757    pub fn LzmaDec_FreeProbs(p: *mut CLzmaDec, alloc: ISzAllocPtr);
758}
759unsafe extern "C" {
760    pub fn LzmaDec_Allocate(
761        p: *mut CLzmaDec,
762        props: *const Byte,
763        propsSize: ::core::ffi::c_uint,
764        alloc: ISzAllocPtr,
765    ) -> SRes;
766}
767unsafe extern "C" {
768    pub fn LzmaDec_Free(p: *mut CLzmaDec, alloc: ISzAllocPtr);
769}
770unsafe extern "C" {
771    pub fn LzmaDec_DecodeToDic(
772        p: *mut CLzmaDec,
773        dicLimit: SizeT,
774        src: *const Byte,
775        srcLen: *mut SizeT,
776        finishMode: ELzmaFinishMode,
777        status: *mut ELzmaStatus,
778    ) -> SRes;
779}
780unsafe extern "C" {
781    pub fn LzmaDec_DecodeToBuf(
782        p: *mut CLzmaDec,
783        dest: *mut Byte,
784        destLen: *mut SizeT,
785        src: *const Byte,
786        srcLen: *mut SizeT,
787        finishMode: ELzmaFinishMode,
788        status: *mut ELzmaStatus,
789    ) -> SRes;
790}
791unsafe extern "C" {
792    pub fn LzmaDecode(
793        dest: *mut Byte,
794        destLen: *mut SizeT,
795        src: *const Byte,
796        srcLen: *mut SizeT,
797        propData: *const Byte,
798        propSize: ::core::ffi::c_uint,
799        finishMode: ELzmaFinishMode,
800        status: *mut ELzmaStatus,
801        alloc: ISzAllocPtr,
802    ) -> SRes;
803}
804#[repr(C)]
805#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
806pub struct CLzmaEncProps {
807    pub level: ::core::ffi::c_int,
808    pub dictSize: UInt32,
809    pub lc: ::core::ffi::c_int,
810    pub lp: ::core::ffi::c_int,
811    pub pb: ::core::ffi::c_int,
812    pub algo: ::core::ffi::c_int,
813    pub fb: ::core::ffi::c_int,
814    pub btMode: ::core::ffi::c_int,
815    pub numHashBytes: ::core::ffi::c_int,
816    pub numHashOutBits: ::core::ffi::c_uint,
817    pub mc: UInt32,
818    pub writeEndMark: ::core::ffi::c_uint,
819    pub numThreads: ::core::ffi::c_int,
820    pub affinityGroup: Int32,
821    pub reduceSize: UInt64,
822    pub affinity: UInt64,
823    pub affinityInGroup: UInt64,
824}
825unsafe extern "C" {
826    pub fn LzmaEncProps_Init(p: *mut CLzmaEncProps);
827}
828unsafe extern "C" {
829    pub fn LzmaEncProps_Normalize(p: *mut CLzmaEncProps);
830}
831unsafe extern "C" {
832    pub fn LzmaEncProps_GetDictSize(props2: *const CLzmaEncProps) -> UInt32;
833}
834#[repr(C)]
835#[derive(Debug, Copy, Clone)]
836pub struct CLzmaEnc {
837    _unused: [u8; 0],
838}
839pub type CLzmaEncHandle = *mut CLzmaEnc;
840unsafe extern "C" {
841    pub fn LzmaEnc_Create(alloc: ISzAllocPtr) -> CLzmaEncHandle;
842}
843unsafe extern "C" {
844    pub fn LzmaEnc_Destroy(p: CLzmaEncHandle, alloc: ISzAllocPtr, allocBig: ISzAllocPtr);
845}
846unsafe extern "C" {
847    pub fn LzmaEnc_SetProps(p: CLzmaEncHandle, props: *const CLzmaEncProps) -> SRes;
848}
849unsafe extern "C" {
850    pub fn LzmaEnc_SetDataSize(p: CLzmaEncHandle, expectedDataSiize: UInt64);
851}
852unsafe extern "C" {
853    pub fn LzmaEnc_WriteProperties(
854        p: CLzmaEncHandle,
855        properties: *mut Byte,
856        size: *mut SizeT,
857    ) -> SRes;
858}
859unsafe extern "C" {
860    pub fn LzmaEnc_IsWriteEndMark(p: CLzmaEncHandle) -> ::core::ffi::c_uint;
861}
862unsafe extern "C" {
863    pub fn LzmaEnc_Encode(
864        p: CLzmaEncHandle,
865        outStream: ISeqOutStreamPtr,
866        inStream: ISeqInStreamPtr,
867        progress: ICompressProgressPtr,
868        alloc: ISzAllocPtr,
869        allocBig: ISzAllocPtr,
870    ) -> SRes;
871}
872unsafe extern "C" {
873    pub fn LzmaEnc_MemEncode(
874        p: CLzmaEncHandle,
875        dest: *mut Byte,
876        destLen: *mut SizeT,
877        src: *const Byte,
878        srcLen: SizeT,
879        writeEndMark: ::core::ffi::c_int,
880        progress: ICompressProgressPtr,
881        alloc: ISzAllocPtr,
882        allocBig: ISzAllocPtr,
883    ) -> SRes;
884}
885unsafe extern "C" {
886    pub fn LzmaEncode(
887        dest: *mut Byte,
888        destLen: *mut SizeT,
889        src: *const Byte,
890        srcLen: SizeT,
891        props: *const CLzmaEncProps,
892        propsEncoded: *mut Byte,
893        propsSize: *mut SizeT,
894        writeEndMark: ::core::ffi::c_int,
895        progress: ICompressProgressPtr,
896        alloc: ISzAllocPtr,
897        allocBig: ISzAllocPtr,
898    ) -> SRes;
899}
900#[repr(C)]
901#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
902pub struct CLzma2Dec {
903    pub state: ::core::ffi::c_uint,
904    pub control: Byte,
905    pub needInitLevel: Byte,
906    pub isExtraMode: Byte,
907    pub _pad_: Byte,
908    pub packSize: UInt32,
909    pub unpackSize: UInt32,
910    pub decoder: CLzmaDec,
911}
912impl Default for CLzma2Dec {
913    fn default() -> Self {
914        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
915        unsafe {
916            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
917            s.assume_init()
918        }
919    }
920}
921unsafe extern "C" {
922    pub fn Lzma2Dec_AllocateProbs(p: *mut CLzma2Dec, prop: Byte, alloc: ISzAllocPtr) -> SRes;
923}
924unsafe extern "C" {
925    pub fn Lzma2Dec_Allocate(p: *mut CLzma2Dec, prop: Byte, alloc: ISzAllocPtr) -> SRes;
926}
927unsafe extern "C" {
928    pub fn Lzma2Dec_Init(p: *mut CLzma2Dec);
929}
930unsafe extern "C" {
931    pub fn Lzma2Dec_DecodeToDic(
932        p: *mut CLzma2Dec,
933        dicLimit: SizeT,
934        src: *const Byte,
935        srcLen: *mut SizeT,
936        finishMode: ELzmaFinishMode,
937        status: *mut ELzmaStatus,
938    ) -> SRes;
939}
940unsafe extern "C" {
941    pub fn Lzma2Dec_DecodeToBuf(
942        p: *mut CLzma2Dec,
943        dest: *mut Byte,
944        destLen: *mut SizeT,
945        src: *const Byte,
946        srcLen: *mut SizeT,
947        finishMode: ELzmaFinishMode,
948        status: *mut ELzmaStatus,
949    ) -> SRes;
950}
951#[repr(u32)]
952#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
953pub enum ELzma2ParseStatus {
954    LZMA2_PARSE_STATUS_NEW_BLOCK = 5,
955    LZMA2_PARSE_STATUS_NEW_CHUNK = 6,
956}
957unsafe extern "C" {
958    pub fn Lzma2Dec_Parse(
959        p: *mut CLzma2Dec,
960        outSize: SizeT,
961        src: *const Byte,
962        srcLen: *mut SizeT,
963        checkFinishBlock: ::core::ffi::c_int,
964    ) -> ELzma2ParseStatus;
965}
966unsafe extern "C" {
967    pub fn Lzma2Decode(
968        dest: *mut Byte,
969        destLen: *mut SizeT,
970        src: *const Byte,
971        srcLen: *mut SizeT,
972        prop: Byte,
973        finishMode: ELzmaFinishMode,
974        status: *mut ELzmaStatus,
975        alloc: ISzAllocPtr,
976    ) -> SRes;
977}
978#[repr(C)]
979#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
980pub struct CLzma2EncProps {
981    pub lzmaProps: CLzmaEncProps,
982    pub blockSize: UInt64,
983    pub numBlockThreads_Reduced: ::core::ffi::c_int,
984    pub numBlockThreads_Max: ::core::ffi::c_int,
985    pub numTotalThreads: ::core::ffi::c_int,
986    pub numThreadGroups: ::core::ffi::c_uint,
987}
988unsafe extern "C" {
989    pub fn Lzma2EncProps_Init(p: *mut CLzma2EncProps);
990}
991unsafe extern "C" {
992    pub fn Lzma2EncProps_Normalize(p: *mut CLzma2EncProps);
993}
994#[repr(C)]
995#[derive(Debug, Copy, Clone)]
996pub struct CLzma2Enc {
997    _unused: [u8; 0],
998}
999pub type CLzma2EncHandle = *mut CLzma2Enc;
1000unsafe extern "C" {
1001    pub fn Lzma2Enc_Create(alloc: ISzAllocPtr, allocBig: ISzAllocPtr) -> CLzma2EncHandle;
1002}
1003unsafe extern "C" {
1004    pub fn Lzma2Enc_Destroy(p: CLzma2EncHandle);
1005}
1006unsafe extern "C" {
1007    pub fn Lzma2Enc_SetProps(p: CLzma2EncHandle, props: *const CLzma2EncProps) -> SRes;
1008}
1009unsafe extern "C" {
1010    pub fn Lzma2Enc_SetDataSize(p: CLzma2EncHandle, expectedDataSiize: UInt64);
1011}
1012unsafe extern "C" {
1013    pub fn Lzma2Enc_WriteProperties(p: CLzma2EncHandle) -> Byte;
1014}
1015unsafe extern "C" {
1016    pub fn Lzma2Enc_Encode2(
1017        p: CLzma2EncHandle,
1018        outStream: ISeqOutStreamPtr,
1019        outBuf: *mut Byte,
1020        outBufSize: *mut usize,
1021        inStream: ISeqInStreamPtr,
1022        inData: *const Byte,
1023        inDataSize: usize,
1024        progress: ICompressProgressPtr,
1025    ) -> SRes;
1026}
1027pub type CLzRef = UInt32;
1028#[repr(C)]
1029#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
1030pub struct CMatchFinder {
1031    pub buffer: *const Byte,
1032    pub pos: UInt32,
1033    pub posLimit: UInt32,
1034    pub streamPos: UInt32,
1035    pub lenLimit: UInt32,
1036    pub cyclicBufferPos: UInt32,
1037    pub cyclicBufferSize: UInt32,
1038    pub streamEndWasReached: Byte,
1039    pub btMode: Byte,
1040    pub bigHash: Byte,
1041    pub directInput: Byte,
1042    pub matchMaxLen: UInt32,
1043    pub hash: *mut CLzRef,
1044    pub son: *mut CLzRef,
1045    pub hashMask: UInt32,
1046    pub cutValue: UInt32,
1047    pub bufBase: *mut Byte,
1048    pub stream: ISeqInStreamPtr,
1049    pub blockSize: UInt32,
1050    pub keepSizeBefore: UInt32,
1051    pub keepSizeAfter: UInt32,
1052    pub numHashBytes: UInt32,
1053    pub directInputRem: usize,
1054    pub historySize: UInt32,
1055    pub fixedHashSize: UInt32,
1056    pub numHashBytes_Min: Byte,
1057    pub numHashOutBits: Byte,
1058    pub _pad2_: [Byte; 2usize],
1059    pub result: SRes,
1060    pub crc: [UInt32; 256usize],
1061    pub numRefs: usize,
1062    pub expectedDataSize: UInt64,
1063}
1064impl Default for CMatchFinder {
1065    fn default() -> Self {
1066        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
1067        unsafe {
1068            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1069            s.assume_init()
1070        }
1071    }
1072}
1073unsafe extern "C" {
1074    pub fn MatchFinder_NeedMove(p: *mut CMatchFinder) -> ::core::ffi::c_int;
1075}
1076unsafe extern "C" {
1077    pub fn MatchFinder_MoveBlock(p: *mut CMatchFinder);
1078}
1079unsafe extern "C" {
1080    pub fn MatchFinder_ReadIfRequired(p: *mut CMatchFinder);
1081}
1082unsafe extern "C" {
1083    pub fn MatchFinder_Construct(p: *mut CMatchFinder);
1084}
1085unsafe extern "C" {
1086    pub fn MatchFinder_Create(
1087        p: *mut CMatchFinder,
1088        historySize: UInt32,
1089        keepAddBufferBefore: UInt32,
1090        matchMaxLen: UInt32,
1091        keepAddBufferAfter: UInt32,
1092        alloc: ISzAllocPtr,
1093    ) -> ::core::ffi::c_int;
1094}
1095unsafe extern "C" {
1096    pub fn MatchFinder_Free(p: *mut CMatchFinder, alloc: ISzAllocPtr);
1097}
1098unsafe extern "C" {
1099    pub fn MatchFinder_Normalize3(subValue: UInt32, items: *mut CLzRef, numItems: usize);
1100}
1101unsafe extern "C" {
1102    pub fn GetMatchesSpec1(
1103        lenLimit: UInt32,
1104        curMatch: UInt32,
1105        pos: UInt32,
1106        buffer: *const Byte,
1107        son: *mut CLzRef,
1108        _cyclicBufferPos: usize,
1109        _cyclicBufferSize: UInt32,
1110        _cutValue: UInt32,
1111        distances: *mut UInt32,
1112        maxLen: UInt32,
1113    ) -> *mut UInt32;
1114}
1115pub type Mf_Init_Func =
1116    ::core::option::Option<unsafe extern "C" fn(object: *mut ::core::ffi::c_void)>;
1117pub type Mf_GetNumAvailableBytes_Func =
1118    ::core::option::Option<unsafe extern "C" fn(object: *mut ::core::ffi::c_void) -> UInt32>;
1119pub type Mf_GetPointerToCurrentPos_Func =
1120    ::core::option::Option<unsafe extern "C" fn(object: *mut ::core::ffi::c_void) -> *const Byte>;
1121pub type Mf_GetMatches_Func = ::core::option::Option<
1122    unsafe extern "C" fn(object: *mut ::core::ffi::c_void, distances: *mut UInt32) -> *mut UInt32,
1123>;
1124pub type Mf_Skip_Func =
1125    ::core::option::Option<unsafe extern "C" fn(object: *mut ::core::ffi::c_void, arg1: UInt32)>;
1126#[repr(C)]
1127#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
1128pub struct IMatchFinder2 {
1129    pub Init: Mf_Init_Func,
1130    pub GetNumAvailableBytes: Mf_GetNumAvailableBytes_Func,
1131    pub GetPointerToCurrentPos: Mf_GetPointerToCurrentPos_Func,
1132    pub GetMatches: Mf_GetMatches_Func,
1133    pub Skip: Mf_Skip_Func,
1134}
1135unsafe extern "C" {
1136    pub fn MatchFinder_CreateVTable(p: *mut CMatchFinder, vTable: *mut IMatchFinder2);
1137}
1138unsafe extern "C" {
1139    pub fn MatchFinder_Init_LowHash(p: *mut CMatchFinder);
1140}
1141unsafe extern "C" {
1142    pub fn MatchFinder_Init_HighHash(p: *mut CMatchFinder);
1143}
1144unsafe extern "C" {
1145    pub fn MatchFinder_Init_4(p: *mut CMatchFinder);
1146}
1147unsafe extern "C" {
1148    pub fn MatchFinder_Init(p: *mut ::core::ffi::c_void);
1149}
1150unsafe extern "C" {
1151    pub fn Bt3Zip_MatchFinder_GetMatches(
1152        p: *mut CMatchFinder,
1153        distances: *mut UInt32,
1154    ) -> *mut UInt32;
1155}
1156unsafe extern "C" {
1157    pub fn Hc3Zip_MatchFinder_GetMatches(
1158        p: *mut CMatchFinder,
1159        distances: *mut UInt32,
1160    ) -> *mut UInt32;
1161}
1162unsafe extern "C" {
1163    pub fn Bt3Zip_MatchFinder_Skip(p: *mut CMatchFinder, num: UInt32);
1164}
1165unsafe extern "C" {
1166    pub fn Hc3Zip_MatchFinder_Skip(p: *mut CMatchFinder, num: UInt32);
1167}
1168unsafe extern "C" {
1169    pub fn LzFindPrepare();
1170}
1171pub type time_t = __time_t;
1172#[repr(C)]
1173#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
1174pub struct timespec {
1175    pub tv_sec: __time_t,
1176    pub tv_nsec: __syscall_slong_t,
1177}
1178pub type pid_t = __pid_t;
1179#[repr(C)]
1180#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
1181pub struct sched_param {
1182    pub sched_priority: ::core::ffi::c_int,
1183}
1184pub type __cpu_mask = ::core::ffi::c_ulong;
1185#[repr(C)]
1186#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
1187pub struct cpu_set_t {
1188    pub __bits: [__cpu_mask; 16usize],
1189}
1190unsafe extern "C" {
1191    pub fn __sched_cpucount(__setsize: usize, __setp: *const cpu_set_t) -> ::core::ffi::c_int;
1192}
1193unsafe extern "C" {
1194    pub fn __sched_cpualloc(__count: usize) -> *mut cpu_set_t;
1195}
1196unsafe extern "C" {
1197    pub fn __sched_cpufree(__set: *mut cpu_set_t);
1198}
1199unsafe extern "C" {
1200    pub fn sched_setparam(__pid: __pid_t, __param: *const sched_param) -> ::core::ffi::c_int;
1201}
1202unsafe extern "C" {
1203    pub fn sched_getparam(__pid: __pid_t, __param: *mut sched_param) -> ::core::ffi::c_int;
1204}
1205unsafe extern "C" {
1206    pub fn sched_setscheduler(
1207        __pid: __pid_t,
1208        __policy: ::core::ffi::c_int,
1209        __param: *const sched_param,
1210    ) -> ::core::ffi::c_int;
1211}
1212unsafe extern "C" {
1213    pub fn sched_getscheduler(__pid: __pid_t) -> ::core::ffi::c_int;
1214}
1215unsafe extern "C" {
1216    pub fn sched_yield() -> ::core::ffi::c_int;
1217}
1218unsafe extern "C" {
1219    pub fn sched_get_priority_max(__algorithm: ::core::ffi::c_int) -> ::core::ffi::c_int;
1220}
1221unsafe extern "C" {
1222    pub fn sched_get_priority_min(__algorithm: ::core::ffi::c_int) -> ::core::ffi::c_int;
1223}
1224unsafe extern "C" {
1225    pub fn sched_rr_get_interval(__pid: __pid_t, __t: *mut timespec) -> ::core::ffi::c_int;
1226}
1227pub type clock_t = __clock_t;
1228#[repr(C)]
1229#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
1230pub struct tm {
1231    pub tm_sec: ::core::ffi::c_int,
1232    pub tm_min: ::core::ffi::c_int,
1233    pub tm_hour: ::core::ffi::c_int,
1234    pub tm_mday: ::core::ffi::c_int,
1235    pub tm_mon: ::core::ffi::c_int,
1236    pub tm_year: ::core::ffi::c_int,
1237    pub tm_wday: ::core::ffi::c_int,
1238    pub tm_yday: ::core::ffi::c_int,
1239    pub tm_isdst: ::core::ffi::c_int,
1240    pub __bindgen_padding_0: [u8; 4usize],
1241    pub tm_gmtoff: ::core::ffi::c_long,
1242    pub tm_zone: *const ::core::ffi::c_char,
1243}
1244impl Default for tm {
1245    fn default() -> Self {
1246        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
1247        unsafe {
1248            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1249            s.assume_init()
1250        }
1251    }
1252}
1253pub type clockid_t = __clockid_t;
1254pub type timer_t = __timer_t;
1255#[repr(C)]
1256#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
1257pub struct itimerspec {
1258    pub it_interval: timespec,
1259    pub it_value: timespec,
1260}
1261#[repr(C)]
1262#[derive(Debug, Copy, Clone)]
1263pub struct sigevent {
1264    _unused: [u8; 0],
1265}
1266#[repr(C)]
1267#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
1268pub struct __locale_struct {
1269    pub __locales: [*mut __locale_data; 13usize],
1270    pub __ctype_b: *const ::core::ffi::c_ushort,
1271    pub __ctype_tolower: *const ::core::ffi::c_int,
1272    pub __ctype_toupper: *const ::core::ffi::c_int,
1273    pub __names: [*const ::core::ffi::c_char; 13usize],
1274}
1275impl Default for __locale_struct {
1276    fn default() -> Self {
1277        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
1278        unsafe {
1279            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1280            s.assume_init()
1281        }
1282    }
1283}
1284pub type __locale_t = *mut __locale_struct;
1285pub type locale_t = __locale_t;
1286unsafe extern "C" {
1287    pub fn clock() -> clock_t;
1288}
1289unsafe extern "C" {
1290    pub fn time(__timer: *mut time_t) -> time_t;
1291}
1292unsafe extern "C" {
1293    pub fn difftime(__time1: time_t, __time0: time_t) -> f64;
1294}
1295unsafe extern "C" {
1296    pub fn mktime(__tp: *mut tm) -> time_t;
1297}
1298unsafe extern "C" {
1299    pub fn strftime(
1300        __s: *mut ::core::ffi::c_char,
1301        __maxsize: usize,
1302        __format: *const ::core::ffi::c_char,
1303        __tp: *const tm,
1304    ) -> usize;
1305}
1306unsafe extern "C" {
1307    pub fn strftime_l(
1308        __s: *mut ::core::ffi::c_char,
1309        __maxsize: usize,
1310        __format: *const ::core::ffi::c_char,
1311        __tp: *const tm,
1312        __loc: locale_t,
1313    ) -> usize;
1314}
1315unsafe extern "C" {
1316    pub fn gmtime(__timer: *const time_t) -> *mut tm;
1317}
1318unsafe extern "C" {
1319    pub fn localtime(__timer: *const time_t) -> *mut tm;
1320}
1321unsafe extern "C" {
1322    pub fn gmtime_r(__timer: *const time_t, __tp: *mut tm) -> *mut tm;
1323}
1324unsafe extern "C" {
1325    pub fn localtime_r(__timer: *const time_t, __tp: *mut tm) -> *mut tm;
1326}
1327unsafe extern "C" {
1328    pub fn asctime(__tp: *const tm) -> *mut ::core::ffi::c_char;
1329}
1330unsafe extern "C" {
1331    pub fn ctime(__timer: *const time_t) -> *mut ::core::ffi::c_char;
1332}
1333unsafe extern "C" {
1334    pub fn asctime_r(__tp: *const tm, __buf: *mut ::core::ffi::c_char) -> *mut ::core::ffi::c_char;
1335}
1336unsafe extern "C" {
1337    pub fn ctime_r(
1338        __timer: *const time_t,
1339        __buf: *mut ::core::ffi::c_char,
1340    ) -> *mut ::core::ffi::c_char;
1341}
1342unsafe extern "C" {
1343    pub static mut __tzname: [*mut ::core::ffi::c_char; 2usize];
1344}
1345unsafe extern "C" {
1346    pub static mut __daylight: ::core::ffi::c_int;
1347}
1348unsafe extern "C" {
1349    pub static mut __timezone: ::core::ffi::c_long;
1350}
1351unsafe extern "C" {
1352    pub static mut tzname: [*mut ::core::ffi::c_char; 2usize];
1353}
1354unsafe extern "C" {
1355    pub fn tzset();
1356}
1357unsafe extern "C" {
1358    pub static mut daylight: ::core::ffi::c_int;
1359}
1360unsafe extern "C" {
1361    pub static mut timezone: ::core::ffi::c_long;
1362}
1363unsafe extern "C" {
1364    pub fn timegm(__tp: *mut tm) -> time_t;
1365}
1366unsafe extern "C" {
1367    pub fn timelocal(__tp: *mut tm) -> time_t;
1368}
1369unsafe extern "C" {
1370    pub fn dysize(__year: ::core::ffi::c_int) -> ::core::ffi::c_int;
1371}
1372unsafe extern "C" {
1373    pub fn nanosleep(
1374        __requested_time: *const timespec,
1375        __remaining: *mut timespec,
1376    ) -> ::core::ffi::c_int;
1377}
1378unsafe extern "C" {
1379    pub fn clock_getres(__clock_id: clockid_t, __res: *mut timespec) -> ::core::ffi::c_int;
1380}
1381unsafe extern "C" {
1382    pub fn clock_gettime(__clock_id: clockid_t, __tp: *mut timespec) -> ::core::ffi::c_int;
1383}
1384unsafe extern "C" {
1385    pub fn clock_settime(__clock_id: clockid_t, __tp: *const timespec) -> ::core::ffi::c_int;
1386}
1387unsafe extern "C" {
1388    pub fn clock_nanosleep(
1389        __clock_id: clockid_t,
1390        __flags: ::core::ffi::c_int,
1391        __req: *const timespec,
1392        __rem: *mut timespec,
1393    ) -> ::core::ffi::c_int;
1394}
1395unsafe extern "C" {
1396    pub fn clock_getcpuclockid(__pid: pid_t, __clock_id: *mut clockid_t) -> ::core::ffi::c_int;
1397}
1398unsafe extern "C" {
1399    pub fn timer_create(
1400        __clock_id: clockid_t,
1401        __evp: *mut sigevent,
1402        __timerid: *mut timer_t,
1403    ) -> ::core::ffi::c_int;
1404}
1405unsafe extern "C" {
1406    pub fn timer_delete(__timerid: timer_t) -> ::core::ffi::c_int;
1407}
1408unsafe extern "C" {
1409    pub fn timer_settime(
1410        __timerid: timer_t,
1411        __flags: ::core::ffi::c_int,
1412        __value: *const itimerspec,
1413        __ovalue: *mut itimerspec,
1414    ) -> ::core::ffi::c_int;
1415}
1416unsafe extern "C" {
1417    pub fn timer_gettime(__timerid: timer_t, __value: *mut itimerspec) -> ::core::ffi::c_int;
1418}
1419unsafe extern "C" {
1420    pub fn timer_getoverrun(__timerid: timer_t) -> ::core::ffi::c_int;
1421}
1422unsafe extern "C" {
1423    pub fn timespec_get(__ts: *mut timespec, __base: ::core::ffi::c_int) -> ::core::ffi::c_int;
1424}
1425#[repr(C)]
1426#[derive(Copy, Clone)]
1427pub union __atomic_wide_counter {
1428    pub __value64: ::core::ffi::c_ulonglong,
1429    pub __value32: __atomic_wide_counter__bindgen_ty_1,
1430}
1431#[repr(C)]
1432#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
1433pub struct __atomic_wide_counter__bindgen_ty_1 {
1434    pub __low: ::core::ffi::c_uint,
1435    pub __high: ::core::ffi::c_uint,
1436}
1437impl Default for __atomic_wide_counter {
1438    fn default() -> Self {
1439        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
1440        unsafe {
1441            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1442            s.assume_init()
1443        }
1444    }
1445}
1446impl ::core::fmt::Debug for __atomic_wide_counter {
1447    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1448        write!(f, "__atomic_wide_counter {{ union }}")
1449    }
1450}
1451#[repr(C)]
1452#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
1453pub struct __pthread_internal_list {
1454    pub __prev: *mut __pthread_internal_list,
1455    pub __next: *mut __pthread_internal_list,
1456}
1457impl Default for __pthread_internal_list {
1458    fn default() -> Self {
1459        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
1460        unsafe {
1461            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1462            s.assume_init()
1463        }
1464    }
1465}
1466pub type __pthread_list_t = __pthread_internal_list;
1467#[repr(C)]
1468#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
1469pub struct __pthread_internal_slist {
1470    pub __next: *mut __pthread_internal_slist,
1471}
1472impl Default for __pthread_internal_slist {
1473    fn default() -> Self {
1474        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
1475        unsafe {
1476            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1477            s.assume_init()
1478        }
1479    }
1480}
1481pub type __pthread_slist_t = __pthread_internal_slist;
1482#[repr(C)]
1483#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
1484pub struct __pthread_mutex_s {
1485    pub __lock: ::core::ffi::c_int,
1486    pub __count: ::core::ffi::c_uint,
1487    pub __owner: ::core::ffi::c_int,
1488    pub __nusers: ::core::ffi::c_uint,
1489    pub __kind: ::core::ffi::c_int,
1490    pub __spins: ::core::ffi::c_short,
1491    pub __elision: ::core::ffi::c_short,
1492    pub __list: __pthread_list_t,
1493}
1494impl Default for __pthread_mutex_s {
1495    fn default() -> Self {
1496        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
1497        unsafe {
1498            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1499            s.assume_init()
1500        }
1501    }
1502}
1503#[repr(C)]
1504#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
1505pub struct __pthread_rwlock_arch_t {
1506    pub __readers: ::core::ffi::c_uint,
1507    pub __writers: ::core::ffi::c_uint,
1508    pub __wrphase_futex: ::core::ffi::c_uint,
1509    pub __writers_futex: ::core::ffi::c_uint,
1510    pub __pad3: ::core::ffi::c_uint,
1511    pub __pad4: ::core::ffi::c_uint,
1512    pub __cur_writer: ::core::ffi::c_int,
1513    pub __shared: ::core::ffi::c_int,
1514    pub __rwelision: ::core::ffi::c_schar,
1515    pub __pad1: [::core::ffi::c_uchar; 7usize],
1516    pub __pad2: ::core::ffi::c_ulong,
1517    pub __flags: ::core::ffi::c_uint,
1518    pub __bindgen_padding_0: [u8; 4usize],
1519}
1520#[repr(C)]
1521#[derive(Copy, Clone)]
1522pub struct __pthread_cond_s {
1523    pub __wseq: __atomic_wide_counter,
1524    pub __g1_start: __atomic_wide_counter,
1525    pub __g_size: [::core::ffi::c_uint; 2usize],
1526    pub __g1_orig_size: ::core::ffi::c_uint,
1527    pub __wrefs: ::core::ffi::c_uint,
1528    pub __g_signals: [::core::ffi::c_uint; 2usize],
1529    pub __unused_initialized_1: ::core::ffi::c_uint,
1530    pub __unused_initialized_2: ::core::ffi::c_uint,
1531}
1532impl Default for __pthread_cond_s {
1533    fn default() -> Self {
1534        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
1535        unsafe {
1536            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1537            s.assume_init()
1538        }
1539    }
1540}
1541impl ::core::fmt::Debug for __pthread_cond_s {
1542    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1543        write!(
1544            f,
1545            "__pthread_cond_s {{ __wseq: {:?}, __g1_start: {:?}, __g_size: {:?}, __g1_orig_size: {:?}, __wrefs: {:?}, __g_signals: {:?}, __unused_initialized_1: {:?}, __unused_initialized_2: {:?} }}",
1546            self.__wseq,
1547            self.__g1_start,
1548            self.__g_size,
1549            self.__g1_orig_size,
1550            self.__wrefs,
1551            self.__g_signals,
1552            self.__unused_initialized_1,
1553            self.__unused_initialized_2
1554        )
1555    }
1556}
1557pub type __tss_t = ::core::ffi::c_uint;
1558pub type __thrd_t = ::core::ffi::c_ulong;
1559#[repr(C)]
1560#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
1561pub struct __once_flag {
1562    pub __data: ::core::ffi::c_int,
1563}
1564pub type pthread_t = ::core::ffi::c_ulong;
1565#[repr(C)]
1566#[derive(Copy, Clone)]
1567pub union pthread_mutexattr_t {
1568    pub __size: [::core::ffi::c_char; 4usize],
1569    pub __align: ::core::ffi::c_int,
1570}
1571impl Default for pthread_mutexattr_t {
1572    fn default() -> Self {
1573        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
1574        unsafe {
1575            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1576            s.assume_init()
1577        }
1578    }
1579}
1580impl ::core::fmt::Debug for pthread_mutexattr_t {
1581    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1582        write!(f, "pthread_mutexattr_t {{ union }}")
1583    }
1584}
1585#[repr(C)]
1586#[derive(Copy, Clone)]
1587pub union pthread_condattr_t {
1588    pub __size: [::core::ffi::c_char; 4usize],
1589    pub __align: ::core::ffi::c_int,
1590}
1591impl Default for pthread_condattr_t {
1592    fn default() -> Self {
1593        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
1594        unsafe {
1595            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1596            s.assume_init()
1597        }
1598    }
1599}
1600impl ::core::fmt::Debug for pthread_condattr_t {
1601    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1602        write!(f, "pthread_condattr_t {{ union }}")
1603    }
1604}
1605pub type pthread_key_t = ::core::ffi::c_uint;
1606pub type pthread_once_t = ::core::ffi::c_int;
1607#[repr(C)]
1608#[derive(Copy, Clone)]
1609pub union pthread_attr_t {
1610    pub __size: [::core::ffi::c_char; 56usize],
1611    pub __align: ::core::ffi::c_long,
1612}
1613impl Default for pthread_attr_t {
1614    fn default() -> Self {
1615        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
1616        unsafe {
1617            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1618            s.assume_init()
1619        }
1620    }
1621}
1622impl ::core::fmt::Debug for pthread_attr_t {
1623    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1624        write!(f, "pthread_attr_t {{ union }}")
1625    }
1626}
1627#[repr(C)]
1628#[derive(Copy, Clone)]
1629pub union pthread_mutex_t {
1630    pub __data: __pthread_mutex_s,
1631    pub __size: [::core::ffi::c_char; 40usize],
1632    pub __align: ::core::ffi::c_long,
1633}
1634impl Default for pthread_mutex_t {
1635    fn default() -> Self {
1636        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
1637        unsafe {
1638            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1639            s.assume_init()
1640        }
1641    }
1642}
1643impl ::core::fmt::Debug for pthread_mutex_t {
1644    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1645        write!(f, "pthread_mutex_t {{ union }}")
1646    }
1647}
1648#[repr(C)]
1649#[derive(Copy, Clone)]
1650pub union pthread_cond_t {
1651    pub __data: __pthread_cond_s,
1652    pub __size: [::core::ffi::c_char; 48usize],
1653    pub __align: ::core::ffi::c_longlong,
1654}
1655impl Default for pthread_cond_t {
1656    fn default() -> Self {
1657        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
1658        unsafe {
1659            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1660            s.assume_init()
1661        }
1662    }
1663}
1664impl ::core::fmt::Debug for pthread_cond_t {
1665    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1666        write!(f, "pthread_cond_t {{ union }}")
1667    }
1668}
1669#[repr(C)]
1670#[derive(Copy, Clone)]
1671pub union pthread_rwlock_t {
1672    pub __data: __pthread_rwlock_arch_t,
1673    pub __size: [::core::ffi::c_char; 56usize],
1674    pub __align: ::core::ffi::c_long,
1675}
1676impl Default for pthread_rwlock_t {
1677    fn default() -> Self {
1678        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
1679        unsafe {
1680            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1681            s.assume_init()
1682        }
1683    }
1684}
1685impl ::core::fmt::Debug for pthread_rwlock_t {
1686    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1687        write!(f, "pthread_rwlock_t {{ union }}")
1688    }
1689}
1690#[repr(C)]
1691#[derive(Copy, Clone)]
1692pub union pthread_rwlockattr_t {
1693    pub __size: [::core::ffi::c_char; 8usize],
1694    pub __align: ::core::ffi::c_long,
1695}
1696impl Default for pthread_rwlockattr_t {
1697    fn default() -> Self {
1698        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
1699        unsafe {
1700            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1701            s.assume_init()
1702        }
1703    }
1704}
1705impl ::core::fmt::Debug for pthread_rwlockattr_t {
1706    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1707        write!(f, "pthread_rwlockattr_t {{ union }}")
1708    }
1709}
1710pub type pthread_spinlock_t = ::core::ffi::c_int;
1711#[repr(C)]
1712#[derive(Copy, Clone)]
1713pub union pthread_barrier_t {
1714    pub __size: [::core::ffi::c_char; 32usize],
1715    pub __align: ::core::ffi::c_long,
1716}
1717impl Default for pthread_barrier_t {
1718    fn default() -> Self {
1719        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
1720        unsafe {
1721            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1722            s.assume_init()
1723        }
1724    }
1725}
1726impl ::core::fmt::Debug for pthread_barrier_t {
1727    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1728        write!(f, "pthread_barrier_t {{ union }}")
1729    }
1730}
1731#[repr(C)]
1732#[derive(Copy, Clone)]
1733pub union pthread_barrierattr_t {
1734    pub __size: [::core::ffi::c_char; 4usize],
1735    pub __align: ::core::ffi::c_int,
1736}
1737impl Default for pthread_barrierattr_t {
1738    fn default() -> Self {
1739        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
1740        unsafe {
1741            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1742            s.assume_init()
1743        }
1744    }
1745}
1746impl ::core::fmt::Debug for pthread_barrierattr_t {
1747    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1748        write!(f, "pthread_barrierattr_t {{ union }}")
1749    }
1750}
1751pub type __jmp_buf = [::core::ffi::c_long; 8usize];
1752#[repr(C)]
1753#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
1754pub struct __sigset_t {
1755    pub __val: [::core::ffi::c_ulong; 16usize],
1756}
1757#[repr(C)]
1758#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
1759pub struct __jmp_buf_tag {
1760    pub __jmpbuf: __jmp_buf,
1761    pub __mask_was_saved: ::core::ffi::c_int,
1762    pub __bindgen_padding_0: [u8; 4usize],
1763    pub __saved_mask: __sigset_t,
1764}
1765pub const PTHREAD_CREATE_JOINABLE: _bindgen_ty_1 = _bindgen_ty_1::PTHREAD_CREATE_JOINABLE;
1766pub const PTHREAD_CREATE_DETACHED: _bindgen_ty_1 = _bindgen_ty_1::PTHREAD_CREATE_DETACHED;
1767#[repr(u32)]
1768#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
1769pub enum _bindgen_ty_1 {
1770    PTHREAD_CREATE_JOINABLE = 0,
1771    PTHREAD_CREATE_DETACHED = 1,
1772}
1773pub const PTHREAD_MUTEX_TIMED_NP: _bindgen_ty_2 = _bindgen_ty_2::PTHREAD_MUTEX_TIMED_NP;
1774pub const PTHREAD_MUTEX_RECURSIVE_NP: _bindgen_ty_2 = _bindgen_ty_2::PTHREAD_MUTEX_RECURSIVE_NP;
1775pub const PTHREAD_MUTEX_ERRORCHECK_NP: _bindgen_ty_2 = _bindgen_ty_2::PTHREAD_MUTEX_ERRORCHECK_NP;
1776pub const PTHREAD_MUTEX_ADAPTIVE_NP: _bindgen_ty_2 = _bindgen_ty_2::PTHREAD_MUTEX_ADAPTIVE_NP;
1777pub const PTHREAD_MUTEX_NORMAL: _bindgen_ty_2 = _bindgen_ty_2::PTHREAD_MUTEX_TIMED_NP;
1778pub const PTHREAD_MUTEX_RECURSIVE: _bindgen_ty_2 = _bindgen_ty_2::PTHREAD_MUTEX_RECURSIVE_NP;
1779pub const PTHREAD_MUTEX_ERRORCHECK: _bindgen_ty_2 = _bindgen_ty_2::PTHREAD_MUTEX_ERRORCHECK_NP;
1780pub const PTHREAD_MUTEX_DEFAULT: _bindgen_ty_2 = _bindgen_ty_2::PTHREAD_MUTEX_TIMED_NP;
1781#[repr(u32)]
1782#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
1783pub enum _bindgen_ty_2 {
1784    PTHREAD_MUTEX_TIMED_NP = 0,
1785    PTHREAD_MUTEX_RECURSIVE_NP = 1,
1786    PTHREAD_MUTEX_ERRORCHECK_NP = 2,
1787    PTHREAD_MUTEX_ADAPTIVE_NP = 3,
1788}
1789pub const PTHREAD_MUTEX_STALLED: _bindgen_ty_3 = _bindgen_ty_3::PTHREAD_MUTEX_STALLED;
1790pub const PTHREAD_MUTEX_STALLED_NP: _bindgen_ty_3 = _bindgen_ty_3::PTHREAD_MUTEX_STALLED;
1791pub const PTHREAD_MUTEX_ROBUST: _bindgen_ty_3 = _bindgen_ty_3::PTHREAD_MUTEX_ROBUST;
1792pub const PTHREAD_MUTEX_ROBUST_NP: _bindgen_ty_3 = _bindgen_ty_3::PTHREAD_MUTEX_ROBUST;
1793#[repr(u32)]
1794#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
1795pub enum _bindgen_ty_3 {
1796    PTHREAD_MUTEX_STALLED = 0,
1797    PTHREAD_MUTEX_ROBUST = 1,
1798}
1799pub const PTHREAD_PRIO_NONE: _bindgen_ty_4 = _bindgen_ty_4::PTHREAD_PRIO_NONE;
1800pub const PTHREAD_PRIO_INHERIT: _bindgen_ty_4 = _bindgen_ty_4::PTHREAD_PRIO_INHERIT;
1801pub const PTHREAD_PRIO_PROTECT: _bindgen_ty_4 = _bindgen_ty_4::PTHREAD_PRIO_PROTECT;
1802#[repr(u32)]
1803#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
1804pub enum _bindgen_ty_4 {
1805    PTHREAD_PRIO_NONE = 0,
1806    PTHREAD_PRIO_INHERIT = 1,
1807    PTHREAD_PRIO_PROTECT = 2,
1808}
1809pub const PTHREAD_RWLOCK_PREFER_READER_NP: _bindgen_ty_5 =
1810    _bindgen_ty_5::PTHREAD_RWLOCK_PREFER_READER_NP;
1811pub const PTHREAD_RWLOCK_PREFER_WRITER_NP: _bindgen_ty_5 =
1812    _bindgen_ty_5::PTHREAD_RWLOCK_PREFER_WRITER_NP;
1813pub const PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP: _bindgen_ty_5 =
1814    _bindgen_ty_5::PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP;
1815pub const PTHREAD_RWLOCK_DEFAULT_NP: _bindgen_ty_5 = _bindgen_ty_5::PTHREAD_RWLOCK_PREFER_READER_NP;
1816#[repr(u32)]
1817#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
1818pub enum _bindgen_ty_5 {
1819    PTHREAD_RWLOCK_PREFER_READER_NP = 0,
1820    PTHREAD_RWLOCK_PREFER_WRITER_NP = 1,
1821    PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP = 2,
1822}
1823pub const PTHREAD_INHERIT_SCHED: _bindgen_ty_6 = _bindgen_ty_6::PTHREAD_INHERIT_SCHED;
1824pub const PTHREAD_EXPLICIT_SCHED: _bindgen_ty_6 = _bindgen_ty_6::PTHREAD_EXPLICIT_SCHED;
1825#[repr(u32)]
1826#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
1827pub enum _bindgen_ty_6 {
1828    PTHREAD_INHERIT_SCHED = 0,
1829    PTHREAD_EXPLICIT_SCHED = 1,
1830}
1831pub const PTHREAD_SCOPE_SYSTEM: _bindgen_ty_7 = _bindgen_ty_7::PTHREAD_SCOPE_SYSTEM;
1832pub const PTHREAD_SCOPE_PROCESS: _bindgen_ty_7 = _bindgen_ty_7::PTHREAD_SCOPE_PROCESS;
1833#[repr(u32)]
1834#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
1835pub enum _bindgen_ty_7 {
1836    PTHREAD_SCOPE_SYSTEM = 0,
1837    PTHREAD_SCOPE_PROCESS = 1,
1838}
1839pub const PTHREAD_PROCESS_PRIVATE: _bindgen_ty_8 = _bindgen_ty_8::PTHREAD_PROCESS_PRIVATE;
1840pub const PTHREAD_PROCESS_SHARED: _bindgen_ty_8 = _bindgen_ty_8::PTHREAD_PROCESS_SHARED;
1841#[repr(u32)]
1842#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
1843pub enum _bindgen_ty_8 {
1844    PTHREAD_PROCESS_PRIVATE = 0,
1845    PTHREAD_PROCESS_SHARED = 1,
1846}
1847#[repr(C)]
1848#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
1849pub struct _pthread_cleanup_buffer {
1850    pub __routine: ::core::option::Option<unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void)>,
1851    pub __arg: *mut ::core::ffi::c_void,
1852    pub __canceltype: ::core::ffi::c_int,
1853    pub __bindgen_padding_0: [u8; 4usize],
1854    pub __prev: *mut _pthread_cleanup_buffer,
1855}
1856impl Default for _pthread_cleanup_buffer {
1857    fn default() -> Self {
1858        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
1859        unsafe {
1860            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1861            s.assume_init()
1862        }
1863    }
1864}
1865pub const PTHREAD_CANCEL_ENABLE: _bindgen_ty_9 = _bindgen_ty_9::PTHREAD_CANCEL_ENABLE;
1866pub const PTHREAD_CANCEL_DISABLE: _bindgen_ty_9 = _bindgen_ty_9::PTHREAD_CANCEL_DISABLE;
1867#[repr(u32)]
1868#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
1869pub enum _bindgen_ty_9 {
1870    PTHREAD_CANCEL_ENABLE = 0,
1871    PTHREAD_CANCEL_DISABLE = 1,
1872}
1873pub const PTHREAD_CANCEL_DEFERRED: _bindgen_ty_10 = _bindgen_ty_10::PTHREAD_CANCEL_DEFERRED;
1874pub const PTHREAD_CANCEL_ASYNCHRONOUS: _bindgen_ty_10 = _bindgen_ty_10::PTHREAD_CANCEL_ASYNCHRONOUS;
1875#[repr(u32)]
1876#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
1877pub enum _bindgen_ty_10 {
1878    PTHREAD_CANCEL_DEFERRED = 0,
1879    PTHREAD_CANCEL_ASYNCHRONOUS = 1,
1880}
1881unsafe extern "C" {
1882    pub fn pthread_create(
1883        __newthread: *mut pthread_t,
1884        __attr: *const pthread_attr_t,
1885        __start_routine: ::core::option::Option<
1886            unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void) -> *mut ::core::ffi::c_void,
1887        >,
1888        __arg: *mut ::core::ffi::c_void,
1889    ) -> ::core::ffi::c_int;
1890}
1891unsafe extern "C" {
1892    pub fn pthread_exit(__retval: *mut ::core::ffi::c_void) -> !;
1893}
1894unsafe extern "C" {
1895    pub fn pthread_join(
1896        __th: pthread_t,
1897        __thread_return: *mut *mut ::core::ffi::c_void,
1898    ) -> ::core::ffi::c_int;
1899}
1900unsafe extern "C" {
1901    pub fn pthread_detach(__th: pthread_t) -> ::core::ffi::c_int;
1902}
1903unsafe extern "C" {
1904    pub fn pthread_self() -> pthread_t;
1905}
1906unsafe extern "C" {
1907    pub fn pthread_equal(__thread1: pthread_t, __thread2: pthread_t) -> ::core::ffi::c_int;
1908}
1909unsafe extern "C" {
1910    pub fn pthread_attr_init(__attr: *mut pthread_attr_t) -> ::core::ffi::c_int;
1911}
1912unsafe extern "C" {
1913    pub fn pthread_attr_destroy(__attr: *mut pthread_attr_t) -> ::core::ffi::c_int;
1914}
1915unsafe extern "C" {
1916    pub fn pthread_attr_getdetachstate(
1917        __attr: *const pthread_attr_t,
1918        __detachstate: *mut ::core::ffi::c_int,
1919    ) -> ::core::ffi::c_int;
1920}
1921unsafe extern "C" {
1922    pub fn pthread_attr_setdetachstate(
1923        __attr: *mut pthread_attr_t,
1924        __detachstate: ::core::ffi::c_int,
1925    ) -> ::core::ffi::c_int;
1926}
1927unsafe extern "C" {
1928    pub fn pthread_attr_getguardsize(
1929        __attr: *const pthread_attr_t,
1930        __guardsize: *mut usize,
1931    ) -> ::core::ffi::c_int;
1932}
1933unsafe extern "C" {
1934    pub fn pthread_attr_setguardsize(
1935        __attr: *mut pthread_attr_t,
1936        __guardsize: usize,
1937    ) -> ::core::ffi::c_int;
1938}
1939unsafe extern "C" {
1940    pub fn pthread_attr_getschedparam(
1941        __attr: *const pthread_attr_t,
1942        __param: *mut sched_param,
1943    ) -> ::core::ffi::c_int;
1944}
1945unsafe extern "C" {
1946    pub fn pthread_attr_setschedparam(
1947        __attr: *mut pthread_attr_t,
1948        __param: *const sched_param,
1949    ) -> ::core::ffi::c_int;
1950}
1951unsafe extern "C" {
1952    pub fn pthread_attr_getschedpolicy(
1953        __attr: *const pthread_attr_t,
1954        __policy: *mut ::core::ffi::c_int,
1955    ) -> ::core::ffi::c_int;
1956}
1957unsafe extern "C" {
1958    pub fn pthread_attr_setschedpolicy(
1959        __attr: *mut pthread_attr_t,
1960        __policy: ::core::ffi::c_int,
1961    ) -> ::core::ffi::c_int;
1962}
1963unsafe extern "C" {
1964    pub fn pthread_attr_getinheritsched(
1965        __attr: *const pthread_attr_t,
1966        __inherit: *mut ::core::ffi::c_int,
1967    ) -> ::core::ffi::c_int;
1968}
1969unsafe extern "C" {
1970    pub fn pthread_attr_setinheritsched(
1971        __attr: *mut pthread_attr_t,
1972        __inherit: ::core::ffi::c_int,
1973    ) -> ::core::ffi::c_int;
1974}
1975unsafe extern "C" {
1976    pub fn pthread_attr_getscope(
1977        __attr: *const pthread_attr_t,
1978        __scope: *mut ::core::ffi::c_int,
1979    ) -> ::core::ffi::c_int;
1980}
1981unsafe extern "C" {
1982    pub fn pthread_attr_setscope(
1983        __attr: *mut pthread_attr_t,
1984        __scope: ::core::ffi::c_int,
1985    ) -> ::core::ffi::c_int;
1986}
1987unsafe extern "C" {
1988    pub fn pthread_attr_getstackaddr(
1989        __attr: *const pthread_attr_t,
1990        __stackaddr: *mut *mut ::core::ffi::c_void,
1991    ) -> ::core::ffi::c_int;
1992}
1993unsafe extern "C" {
1994    pub fn pthread_attr_setstackaddr(
1995        __attr: *mut pthread_attr_t,
1996        __stackaddr: *mut ::core::ffi::c_void,
1997    ) -> ::core::ffi::c_int;
1998}
1999unsafe extern "C" {
2000    pub fn pthread_attr_getstacksize(
2001        __attr: *const pthread_attr_t,
2002        __stacksize: *mut usize,
2003    ) -> ::core::ffi::c_int;
2004}
2005unsafe extern "C" {
2006    pub fn pthread_attr_setstacksize(
2007        __attr: *mut pthread_attr_t,
2008        __stacksize: usize,
2009    ) -> ::core::ffi::c_int;
2010}
2011unsafe extern "C" {
2012    pub fn pthread_attr_getstack(
2013        __attr: *const pthread_attr_t,
2014        __stackaddr: *mut *mut ::core::ffi::c_void,
2015        __stacksize: *mut usize,
2016    ) -> ::core::ffi::c_int;
2017}
2018unsafe extern "C" {
2019    pub fn pthread_attr_setstack(
2020        __attr: *mut pthread_attr_t,
2021        __stackaddr: *mut ::core::ffi::c_void,
2022        __stacksize: usize,
2023    ) -> ::core::ffi::c_int;
2024}
2025unsafe extern "C" {
2026    pub fn pthread_setschedparam(
2027        __target_thread: pthread_t,
2028        __policy: ::core::ffi::c_int,
2029        __param: *const sched_param,
2030    ) -> ::core::ffi::c_int;
2031}
2032unsafe extern "C" {
2033    pub fn pthread_getschedparam(
2034        __target_thread: pthread_t,
2035        __policy: *mut ::core::ffi::c_int,
2036        __param: *mut sched_param,
2037    ) -> ::core::ffi::c_int;
2038}
2039unsafe extern "C" {
2040    pub fn pthread_setschedprio(
2041        __target_thread: pthread_t,
2042        __prio: ::core::ffi::c_int,
2043    ) -> ::core::ffi::c_int;
2044}
2045unsafe extern "C" {
2046    pub fn pthread_once(
2047        __once_control: *mut pthread_once_t,
2048        __init_routine: ::core::option::Option<unsafe extern "C" fn()>,
2049    ) -> ::core::ffi::c_int;
2050}
2051unsafe extern "C" {
2052    pub fn pthread_setcancelstate(
2053        __state: ::core::ffi::c_int,
2054        __oldstate: *mut ::core::ffi::c_int,
2055    ) -> ::core::ffi::c_int;
2056}
2057unsafe extern "C" {
2058    pub fn pthread_setcanceltype(
2059        __type: ::core::ffi::c_int,
2060        __oldtype: *mut ::core::ffi::c_int,
2061    ) -> ::core::ffi::c_int;
2062}
2063unsafe extern "C" {
2064    pub fn pthread_cancel(__th: pthread_t) -> ::core::ffi::c_int;
2065}
2066unsafe extern "C" {
2067    pub fn pthread_testcancel();
2068}
2069#[repr(C)]
2070#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
2071pub struct __cancel_jmp_buf_tag {
2072    pub __cancel_jmp_buf: __jmp_buf,
2073    pub __mask_was_saved: ::core::ffi::c_int,
2074    pub __bindgen_padding_0: [u8; 4usize],
2075}
2076#[repr(C)]
2077#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
2078pub struct __pthread_unwind_buf_t {
2079    pub __cancel_jmp_buf: [__cancel_jmp_buf_tag; 1usize],
2080    pub __pad: [*mut ::core::ffi::c_void; 4usize],
2081}
2082impl Default for __pthread_unwind_buf_t {
2083    fn default() -> Self {
2084        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
2085        unsafe {
2086            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2087            s.assume_init()
2088        }
2089    }
2090}
2091#[repr(C)]
2092#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
2093pub struct __pthread_cleanup_frame {
2094    pub __cancel_routine:
2095        ::core::option::Option<unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void)>,
2096    pub __cancel_arg: *mut ::core::ffi::c_void,
2097    pub __do_it: ::core::ffi::c_int,
2098    pub __cancel_type: ::core::ffi::c_int,
2099}
2100impl Default for __pthread_cleanup_frame {
2101    fn default() -> Self {
2102        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
2103        unsafe {
2104            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2105            s.assume_init()
2106        }
2107    }
2108}
2109unsafe extern "C" {
2110    pub fn __pthread_register_cancel(__buf: *mut __pthread_unwind_buf_t);
2111}
2112unsafe extern "C" {
2113    pub fn __pthread_unregister_cancel(__buf: *mut __pthread_unwind_buf_t);
2114}
2115unsafe extern "C" {
2116    pub fn __pthread_unwind_next(__buf: *mut __pthread_unwind_buf_t) -> !;
2117}
2118unsafe extern "C" {
2119    pub fn __sigsetjmp(
2120        __env: *mut __jmp_buf_tag,
2121        __savemask: ::core::ffi::c_int,
2122    ) -> ::core::ffi::c_int;
2123}
2124unsafe extern "C" {
2125    pub fn pthread_mutex_init(
2126        __mutex: *mut pthread_mutex_t,
2127        __mutexattr: *const pthread_mutexattr_t,
2128    ) -> ::core::ffi::c_int;
2129}
2130unsafe extern "C" {
2131    pub fn pthread_mutex_destroy(__mutex: *mut pthread_mutex_t) -> ::core::ffi::c_int;
2132}
2133unsafe extern "C" {
2134    pub fn pthread_mutex_trylock(__mutex: *mut pthread_mutex_t) -> ::core::ffi::c_int;
2135}
2136unsafe extern "C" {
2137    pub fn pthread_mutex_lock(__mutex: *mut pthread_mutex_t) -> ::core::ffi::c_int;
2138}
2139unsafe extern "C" {
2140    pub fn pthread_mutex_timedlock(
2141        __mutex: *mut pthread_mutex_t,
2142        __abstime: *const timespec,
2143    ) -> ::core::ffi::c_int;
2144}
2145unsafe extern "C" {
2146    pub fn pthread_mutex_unlock(__mutex: *mut pthread_mutex_t) -> ::core::ffi::c_int;
2147}
2148unsafe extern "C" {
2149    pub fn pthread_mutex_getprioceiling(
2150        __mutex: *const pthread_mutex_t,
2151        __prioceiling: *mut ::core::ffi::c_int,
2152    ) -> ::core::ffi::c_int;
2153}
2154unsafe extern "C" {
2155    pub fn pthread_mutex_setprioceiling(
2156        __mutex: *mut pthread_mutex_t,
2157        __prioceiling: ::core::ffi::c_int,
2158        __old_ceiling: *mut ::core::ffi::c_int,
2159    ) -> ::core::ffi::c_int;
2160}
2161unsafe extern "C" {
2162    pub fn pthread_mutex_consistent(__mutex: *mut pthread_mutex_t) -> ::core::ffi::c_int;
2163}
2164unsafe extern "C" {
2165    pub fn pthread_mutexattr_init(__attr: *mut pthread_mutexattr_t) -> ::core::ffi::c_int;
2166}
2167unsafe extern "C" {
2168    pub fn pthread_mutexattr_destroy(__attr: *mut pthread_mutexattr_t) -> ::core::ffi::c_int;
2169}
2170unsafe extern "C" {
2171    pub fn pthread_mutexattr_getpshared(
2172        __attr: *const pthread_mutexattr_t,
2173        __pshared: *mut ::core::ffi::c_int,
2174    ) -> ::core::ffi::c_int;
2175}
2176unsafe extern "C" {
2177    pub fn pthread_mutexattr_setpshared(
2178        __attr: *mut pthread_mutexattr_t,
2179        __pshared: ::core::ffi::c_int,
2180    ) -> ::core::ffi::c_int;
2181}
2182unsafe extern "C" {
2183    pub fn pthread_mutexattr_gettype(
2184        __attr: *const pthread_mutexattr_t,
2185        __kind: *mut ::core::ffi::c_int,
2186    ) -> ::core::ffi::c_int;
2187}
2188unsafe extern "C" {
2189    pub fn pthread_mutexattr_settype(
2190        __attr: *mut pthread_mutexattr_t,
2191        __kind: ::core::ffi::c_int,
2192    ) -> ::core::ffi::c_int;
2193}
2194unsafe extern "C" {
2195    pub fn pthread_mutexattr_getprotocol(
2196        __attr: *const pthread_mutexattr_t,
2197        __protocol: *mut ::core::ffi::c_int,
2198    ) -> ::core::ffi::c_int;
2199}
2200unsafe extern "C" {
2201    pub fn pthread_mutexattr_setprotocol(
2202        __attr: *mut pthread_mutexattr_t,
2203        __protocol: ::core::ffi::c_int,
2204    ) -> ::core::ffi::c_int;
2205}
2206unsafe extern "C" {
2207    pub fn pthread_mutexattr_getprioceiling(
2208        __attr: *const pthread_mutexattr_t,
2209        __prioceiling: *mut ::core::ffi::c_int,
2210    ) -> ::core::ffi::c_int;
2211}
2212unsafe extern "C" {
2213    pub fn pthread_mutexattr_setprioceiling(
2214        __attr: *mut pthread_mutexattr_t,
2215        __prioceiling: ::core::ffi::c_int,
2216    ) -> ::core::ffi::c_int;
2217}
2218unsafe extern "C" {
2219    pub fn pthread_mutexattr_getrobust(
2220        __attr: *const pthread_mutexattr_t,
2221        __robustness: *mut ::core::ffi::c_int,
2222    ) -> ::core::ffi::c_int;
2223}
2224unsafe extern "C" {
2225    pub fn pthread_mutexattr_setrobust(
2226        __attr: *mut pthread_mutexattr_t,
2227        __robustness: ::core::ffi::c_int,
2228    ) -> ::core::ffi::c_int;
2229}
2230unsafe extern "C" {
2231    pub fn pthread_rwlock_init(
2232        __rwlock: *mut pthread_rwlock_t,
2233        __attr: *const pthread_rwlockattr_t,
2234    ) -> ::core::ffi::c_int;
2235}
2236unsafe extern "C" {
2237    pub fn pthread_rwlock_destroy(__rwlock: *mut pthread_rwlock_t) -> ::core::ffi::c_int;
2238}
2239unsafe extern "C" {
2240    pub fn pthread_rwlock_rdlock(__rwlock: *mut pthread_rwlock_t) -> ::core::ffi::c_int;
2241}
2242unsafe extern "C" {
2243    pub fn pthread_rwlock_tryrdlock(__rwlock: *mut pthread_rwlock_t) -> ::core::ffi::c_int;
2244}
2245unsafe extern "C" {
2246    pub fn pthread_rwlock_timedrdlock(
2247        __rwlock: *mut pthread_rwlock_t,
2248        __abstime: *const timespec,
2249    ) -> ::core::ffi::c_int;
2250}
2251unsafe extern "C" {
2252    pub fn pthread_rwlock_wrlock(__rwlock: *mut pthread_rwlock_t) -> ::core::ffi::c_int;
2253}
2254unsafe extern "C" {
2255    pub fn pthread_rwlock_trywrlock(__rwlock: *mut pthread_rwlock_t) -> ::core::ffi::c_int;
2256}
2257unsafe extern "C" {
2258    pub fn pthread_rwlock_timedwrlock(
2259        __rwlock: *mut pthread_rwlock_t,
2260        __abstime: *const timespec,
2261    ) -> ::core::ffi::c_int;
2262}
2263unsafe extern "C" {
2264    pub fn pthread_rwlock_unlock(__rwlock: *mut pthread_rwlock_t) -> ::core::ffi::c_int;
2265}
2266unsafe extern "C" {
2267    pub fn pthread_rwlockattr_init(__attr: *mut pthread_rwlockattr_t) -> ::core::ffi::c_int;
2268}
2269unsafe extern "C" {
2270    pub fn pthread_rwlockattr_destroy(__attr: *mut pthread_rwlockattr_t) -> ::core::ffi::c_int;
2271}
2272unsafe extern "C" {
2273    pub fn pthread_rwlockattr_getpshared(
2274        __attr: *const pthread_rwlockattr_t,
2275        __pshared: *mut ::core::ffi::c_int,
2276    ) -> ::core::ffi::c_int;
2277}
2278unsafe extern "C" {
2279    pub fn pthread_rwlockattr_setpshared(
2280        __attr: *mut pthread_rwlockattr_t,
2281        __pshared: ::core::ffi::c_int,
2282    ) -> ::core::ffi::c_int;
2283}
2284unsafe extern "C" {
2285    pub fn pthread_rwlockattr_getkind_np(
2286        __attr: *const pthread_rwlockattr_t,
2287        __pref: *mut ::core::ffi::c_int,
2288    ) -> ::core::ffi::c_int;
2289}
2290unsafe extern "C" {
2291    pub fn pthread_rwlockattr_setkind_np(
2292        __attr: *mut pthread_rwlockattr_t,
2293        __pref: ::core::ffi::c_int,
2294    ) -> ::core::ffi::c_int;
2295}
2296unsafe extern "C" {
2297    pub fn pthread_cond_init(
2298        __cond: *mut pthread_cond_t,
2299        __cond_attr: *const pthread_condattr_t,
2300    ) -> ::core::ffi::c_int;
2301}
2302unsafe extern "C" {
2303    pub fn pthread_cond_destroy(__cond: *mut pthread_cond_t) -> ::core::ffi::c_int;
2304}
2305unsafe extern "C" {
2306    pub fn pthread_cond_signal(__cond: *mut pthread_cond_t) -> ::core::ffi::c_int;
2307}
2308unsafe extern "C" {
2309    pub fn pthread_cond_broadcast(__cond: *mut pthread_cond_t) -> ::core::ffi::c_int;
2310}
2311unsafe extern "C" {
2312    pub fn pthread_cond_wait(
2313        __cond: *mut pthread_cond_t,
2314        __mutex: *mut pthread_mutex_t,
2315    ) -> ::core::ffi::c_int;
2316}
2317unsafe extern "C" {
2318    pub fn pthread_cond_timedwait(
2319        __cond: *mut pthread_cond_t,
2320        __mutex: *mut pthread_mutex_t,
2321        __abstime: *const timespec,
2322    ) -> ::core::ffi::c_int;
2323}
2324unsafe extern "C" {
2325    pub fn pthread_condattr_init(__attr: *mut pthread_condattr_t) -> ::core::ffi::c_int;
2326}
2327unsafe extern "C" {
2328    pub fn pthread_condattr_destroy(__attr: *mut pthread_condattr_t) -> ::core::ffi::c_int;
2329}
2330unsafe extern "C" {
2331    pub fn pthread_condattr_getpshared(
2332        __attr: *const pthread_condattr_t,
2333        __pshared: *mut ::core::ffi::c_int,
2334    ) -> ::core::ffi::c_int;
2335}
2336unsafe extern "C" {
2337    pub fn pthread_condattr_setpshared(
2338        __attr: *mut pthread_condattr_t,
2339        __pshared: ::core::ffi::c_int,
2340    ) -> ::core::ffi::c_int;
2341}
2342unsafe extern "C" {
2343    pub fn pthread_condattr_getclock(
2344        __attr: *const pthread_condattr_t,
2345        __clock_id: *mut __clockid_t,
2346    ) -> ::core::ffi::c_int;
2347}
2348unsafe extern "C" {
2349    pub fn pthread_condattr_setclock(
2350        __attr: *mut pthread_condattr_t,
2351        __clock_id: __clockid_t,
2352    ) -> ::core::ffi::c_int;
2353}
2354unsafe extern "C" {
2355    pub fn pthread_spin_init(
2356        __lock: *mut pthread_spinlock_t,
2357        __pshared: ::core::ffi::c_int,
2358    ) -> ::core::ffi::c_int;
2359}
2360unsafe extern "C" {
2361    pub fn pthread_spin_destroy(__lock: *mut pthread_spinlock_t) -> ::core::ffi::c_int;
2362}
2363unsafe extern "C" {
2364    pub fn pthread_spin_lock(__lock: *mut pthread_spinlock_t) -> ::core::ffi::c_int;
2365}
2366unsafe extern "C" {
2367    pub fn pthread_spin_trylock(__lock: *mut pthread_spinlock_t) -> ::core::ffi::c_int;
2368}
2369unsafe extern "C" {
2370    pub fn pthread_spin_unlock(__lock: *mut pthread_spinlock_t) -> ::core::ffi::c_int;
2371}
2372unsafe extern "C" {
2373    pub fn pthread_barrier_init(
2374        __barrier: *mut pthread_barrier_t,
2375        __attr: *const pthread_barrierattr_t,
2376        __count: ::core::ffi::c_uint,
2377    ) -> ::core::ffi::c_int;
2378}
2379unsafe extern "C" {
2380    pub fn pthread_barrier_destroy(__barrier: *mut pthread_barrier_t) -> ::core::ffi::c_int;
2381}
2382unsafe extern "C" {
2383    pub fn pthread_barrier_wait(__barrier: *mut pthread_barrier_t) -> ::core::ffi::c_int;
2384}
2385unsafe extern "C" {
2386    pub fn pthread_barrierattr_init(__attr: *mut pthread_barrierattr_t) -> ::core::ffi::c_int;
2387}
2388unsafe extern "C" {
2389    pub fn pthread_barrierattr_destroy(__attr: *mut pthread_barrierattr_t) -> ::core::ffi::c_int;
2390}
2391unsafe extern "C" {
2392    pub fn pthread_barrierattr_getpshared(
2393        __attr: *const pthread_barrierattr_t,
2394        __pshared: *mut ::core::ffi::c_int,
2395    ) -> ::core::ffi::c_int;
2396}
2397unsafe extern "C" {
2398    pub fn pthread_barrierattr_setpshared(
2399        __attr: *mut pthread_barrierattr_t,
2400        __pshared: ::core::ffi::c_int,
2401    ) -> ::core::ffi::c_int;
2402}
2403unsafe extern "C" {
2404    pub fn pthread_key_create(
2405        __key: *mut pthread_key_t,
2406        __destr_function: ::core::option::Option<
2407            unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void),
2408        >,
2409    ) -> ::core::ffi::c_int;
2410}
2411unsafe extern "C" {
2412    pub fn pthread_key_delete(__key: pthread_key_t) -> ::core::ffi::c_int;
2413}
2414unsafe extern "C" {
2415    pub fn pthread_getspecific(__key: pthread_key_t) -> *mut ::core::ffi::c_void;
2416}
2417unsafe extern "C" {
2418    pub fn pthread_setspecific(
2419        __key: pthread_key_t,
2420        __pointer: *const ::core::ffi::c_void,
2421    ) -> ::core::ffi::c_int;
2422}
2423unsafe extern "C" {
2424    pub fn pthread_getcpuclockid(
2425        __thread_id: pthread_t,
2426        __clock_id: *mut __clockid_t,
2427    ) -> ::core::ffi::c_int;
2428}
2429unsafe extern "C" {
2430    pub fn pthread_atfork(
2431        __prepare: ::core::option::Option<unsafe extern "C" fn()>,
2432        __parent: ::core::option::Option<unsafe extern "C" fn()>,
2433        __child: ::core::option::Option<unsafe extern "C" fn()>,
2434    ) -> ::core::ffi::c_int;
2435}
2436#[repr(C)]
2437#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
2438pub struct CThread {
2439    pub _tid: pthread_t,
2440    pub _created: ::core::ffi::c_int,
2441    pub __bindgen_padding_0: [u8; 4usize],
2442}
2443unsafe extern "C" {
2444    pub fn Thread_Close(p: *mut CThread) -> WRes;
2445}
2446pub type THREAD_FUNC_RET_TYPE = *mut ::core::ffi::c_void;
2447pub type CAffinityMask = UInt64;
2448pub type CCpuSet = cpu_set_t;
2449pub type THREAD_FUNC_TYPE = ::core::option::Option<
2450    unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void) -> THREAD_FUNC_RET_TYPE,
2451>;
2452unsafe extern "C" {
2453    pub fn Thread_Create(p: *mut CThread, func: THREAD_FUNC_TYPE, param: LPVOID) -> WRes;
2454}
2455unsafe extern "C" {
2456    pub fn Thread_Create_With_Affinity(
2457        p: *mut CThread,
2458        func: THREAD_FUNC_TYPE,
2459        param: LPVOID,
2460        affinity: CAffinityMask,
2461    ) -> WRes;
2462}
2463unsafe extern "C" {
2464    pub fn Thread_Wait_Close(p: *mut CThread) -> WRes;
2465}
2466unsafe extern "C" {
2467    pub fn Thread_Create_With_CpuSet(
2468        p: *mut CThread,
2469        func: THREAD_FUNC_TYPE,
2470        param: LPVOID,
2471        cpuSet: *const CCpuSet,
2472    ) -> WRes;
2473}
2474#[repr(C)]
2475#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
2476pub struct CThreadNextGroup {
2477    pub NumGroups: ::core::ffi::c_uint,
2478    pub NextGroup: ::core::ffi::c_uint,
2479}
2480unsafe extern "C" {
2481    pub fn ThreadNextGroup_Init(
2482        p: *mut CThreadNextGroup,
2483        numGroups: ::core::ffi::c_uint,
2484        startGroup: ::core::ffi::c_uint,
2485    );
2486}
2487unsafe extern "C" {
2488    pub fn ThreadNextGroup_GetNext(p: *mut CThreadNextGroup) -> ::core::ffi::c_uint;
2489}
2490#[repr(C)]
2491#[derive(Copy, Clone)]
2492pub struct CEvent {
2493    pub _created: ::core::ffi::c_int,
2494    pub _manual_reset: ::core::ffi::c_int,
2495    pub _state: ::core::ffi::c_int,
2496    pub __bindgen_padding_0: [u8; 4usize],
2497    pub _mutex: pthread_mutex_t,
2498    pub _cond: pthread_cond_t,
2499}
2500impl Default for CEvent {
2501    fn default() -> Self {
2502        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
2503        unsafe {
2504            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2505            s.assume_init()
2506        }
2507    }
2508}
2509impl ::core::fmt::Debug for CEvent {
2510    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
2511        write!(
2512            f,
2513            "CEvent {{ _created: {:?}, _manual_reset: {:?}, _state: {:?}, _mutex: {:?}, _cond: {:?} }}",
2514            self._created, self._manual_reset, self._state, self._mutex, self._cond
2515        )
2516    }
2517}
2518pub type CAutoResetEvent = CEvent;
2519pub type CManualResetEvent = CEvent;
2520unsafe extern "C" {
2521    pub fn ManualResetEvent_Create(p: *mut CManualResetEvent, signaled: ::core::ffi::c_int)
2522    -> WRes;
2523}
2524unsafe extern "C" {
2525    pub fn ManualResetEvent_CreateNotSignaled(p: *mut CManualResetEvent) -> WRes;
2526}
2527unsafe extern "C" {
2528    pub fn AutoResetEvent_Create(p: *mut CAutoResetEvent, signaled: ::core::ffi::c_int) -> WRes;
2529}
2530unsafe extern "C" {
2531    pub fn AutoResetEvent_CreateNotSignaled(p: *mut CAutoResetEvent) -> WRes;
2532}
2533unsafe extern "C" {
2534    pub fn Event_Set(p: *mut CEvent) -> WRes;
2535}
2536unsafe extern "C" {
2537    pub fn Event_Reset(p: *mut CEvent) -> WRes;
2538}
2539unsafe extern "C" {
2540    pub fn Event_Wait(p: *mut CEvent) -> WRes;
2541}
2542unsafe extern "C" {
2543    pub fn Event_Close(p: *mut CEvent) -> WRes;
2544}
2545#[repr(C)]
2546#[derive(Copy, Clone)]
2547pub struct CSemaphore {
2548    pub _created: ::core::ffi::c_int,
2549    pub _count: UInt32,
2550    pub _maxCount: UInt32,
2551    pub __bindgen_padding_0: [u8; 4usize],
2552    pub _mutex: pthread_mutex_t,
2553    pub _cond: pthread_cond_t,
2554}
2555impl Default for CSemaphore {
2556    fn default() -> Self {
2557        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
2558        unsafe {
2559            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2560            s.assume_init()
2561        }
2562    }
2563}
2564impl ::core::fmt::Debug for CSemaphore {
2565    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
2566        write!(
2567            f,
2568            "CSemaphore {{ _created: {:?}, _count: {:?}, _maxCount: {:?}, _mutex: {:?}, _cond: {:?} }}",
2569            self._created, self._count, self._maxCount, self._mutex, self._cond
2570        )
2571    }
2572}
2573unsafe extern "C" {
2574    pub fn Semaphore_Create(p: *mut CSemaphore, initCount: UInt32, maxCount: UInt32) -> WRes;
2575}
2576unsafe extern "C" {
2577    pub fn Semaphore_OptCreateInit(p: *mut CSemaphore, initCount: UInt32, maxCount: UInt32)
2578    -> WRes;
2579}
2580unsafe extern "C" {
2581    pub fn Semaphore_ReleaseN(p: *mut CSemaphore, num: UInt32) -> WRes;
2582}
2583unsafe extern "C" {
2584    pub fn Semaphore_Wait(p: *mut CSemaphore) -> WRes;
2585}
2586unsafe extern "C" {
2587    pub fn Semaphore_Close(p: *mut CSemaphore) -> WRes;
2588}
2589#[repr(C)]
2590#[derive(Copy, Clone)]
2591pub struct CCriticalSection {
2592    pub _mutex: pthread_mutex_t,
2593}
2594impl Default for CCriticalSection {
2595    fn default() -> Self {
2596        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
2597        unsafe {
2598            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2599            s.assume_init()
2600        }
2601    }
2602}
2603impl ::core::fmt::Debug for CCriticalSection {
2604    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
2605        write!(f, "CCriticalSection {{ _mutex: {:?} }}", self._mutex)
2606    }
2607}
2608unsafe extern "C" {
2609    pub fn CriticalSection_Init(p: *mut CCriticalSection) -> WRes;
2610}
2611unsafe extern "C" {
2612    pub fn CriticalSection_Delete(cs: *mut CCriticalSection);
2613}
2614unsafe extern "C" {
2615    pub fn CriticalSection_Enter(cs: *mut CCriticalSection);
2616}
2617unsafe extern "C" {
2618    pub fn CriticalSection_Leave(cs: *mut CCriticalSection);
2619}
2620unsafe extern "C" {
2621    pub fn InterlockedIncrement(addend: *mut LONG) -> LONG;
2622}
2623unsafe extern "C" {
2624    pub fn InterlockedDecrement(addend: *mut LONG) -> LONG;
2625}
2626unsafe extern "C" {
2627    pub fn AutoResetEvent_OptCreate_And_Reset(p: *mut CAutoResetEvent) -> WRes;
2628}
2629#[repr(C)]
2630#[derive(Copy, Clone)]
2631pub struct CMtSync {
2632    pub numProcessedBlocks: UInt32,
2633    pub affinityGroup: Int32,
2634    pub affinityInGroup: UInt64,
2635    pub affinity: UInt64,
2636    pub thread: CThread,
2637    pub wasCreated: BoolInt,
2638    pub needStart: BoolInt,
2639    pub csWasInitialized: BoolInt,
2640    pub csWasEntered: BoolInt,
2641    pub exit: BoolInt,
2642    pub stopWriting: BoolInt,
2643    pub canStart: CAutoResetEvent,
2644    pub wasStopped: CAutoResetEvent,
2645    pub freeSemaphore: CSemaphore,
2646    pub filledSemaphore: CSemaphore,
2647    pub cs: CCriticalSection,
2648}
2649impl Default for CMtSync {
2650    fn default() -> Self {
2651        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
2652        unsafe {
2653            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2654            s.assume_init()
2655        }
2656    }
2657}
2658impl ::core::fmt::Debug for CMtSync {
2659    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
2660        write!(
2661            f,
2662            "CMtSync {{ numProcessedBlocks: {:?}, affinityGroup: {:?}, affinityInGroup: {:?}, affinity: {:?}, thread: {:?}, wasCreated: {:?}, needStart: {:?}, csWasInitialized: {:?}, csWasEntered: {:?}, exit: {:?}, stopWriting: {:?}, canStart: {:?}, wasStopped: {:?}, freeSemaphore: {:?}, filledSemaphore: {:?}, cs: {:?} }}",
2663            self.numProcessedBlocks,
2664            self.affinityGroup,
2665            self.affinityInGroup,
2666            self.affinity,
2667            self.thread,
2668            self.wasCreated,
2669            self.needStart,
2670            self.csWasInitialized,
2671            self.csWasEntered,
2672            self.exit,
2673            self.stopWriting,
2674            self.canStart,
2675            self.wasStopped,
2676            self.freeSemaphore,
2677            self.filledSemaphore,
2678            self.cs
2679        )
2680    }
2681}
2682pub type Mf_Mix_Matches = ::core::option::Option<
2683    unsafe extern "C" fn(
2684        p: *mut CMatchFinderMt_,
2685        matchMinPos: UInt32,
2686        distances: *mut UInt32,
2687    ) -> *mut UInt32,
2688>;
2689pub type Mf_GetHeads = ::core::option::Option<
2690    unsafe extern "C" fn(
2691        buffer: *const Byte,
2692        pos: UInt32,
2693        hash: *mut UInt32,
2694        hashMask: UInt32,
2695        heads: *mut UInt32,
2696        numHeads: UInt32,
2697        crc: *const UInt32,
2698    ),
2699>;
2700#[repr(C)]
2701#[derive(Copy, Clone)]
2702pub struct CMatchFinderMt_ {
2703    pub pointerToCurPos: *const Byte,
2704    pub btBuf: *mut UInt32,
2705    pub btBufPos: *const UInt32,
2706    pub btBufPosLimit: *const UInt32,
2707    pub lzPos: UInt32,
2708    pub btNumAvailBytes: UInt32,
2709    pub hash: *mut UInt32,
2710    pub fixedHashSize: UInt32,
2711    pub historySize: UInt32,
2712    pub crc: *const UInt32,
2713    pub MixMatchesFunc: Mf_Mix_Matches,
2714    pub failure_LZ_BT: UInt32,
2715    pub failureBuf: [UInt32; 1usize],
2716    pub btSync: CMtSync,
2717    pub btDummy: [Byte; 128usize],
2718    pub hashBuf: *mut UInt32,
2719    pub hashBufPos: UInt32,
2720    pub hashBufPosLimit: UInt32,
2721    pub hashNumAvail: UInt32,
2722    pub failure_BT: UInt32,
2723    pub son: *mut CLzRef,
2724    pub matchMaxLen: UInt32,
2725    pub numHashBytes: UInt32,
2726    pub pos: UInt32,
2727    pub __bindgen_padding_0: [u8; 4usize],
2728    pub buffer: *const Byte,
2729    pub cyclicBufferPos: UInt32,
2730    pub cyclicBufferSize: UInt32,
2731    pub cutValue: UInt32,
2732    pub __bindgen_padding_1: [u8; 4usize],
2733    pub hashSync: CMtSync,
2734    pub GetHeadsFunc: Mf_GetHeads,
2735    pub MatchFinder: *mut CMatchFinder,
2736}
2737impl Default for CMatchFinderMt_ {
2738    fn default() -> Self {
2739        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
2740        unsafe {
2741            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2742            s.assume_init()
2743        }
2744    }
2745}
2746impl ::core::fmt::Debug for CMatchFinderMt_ {
2747    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
2748        write!(
2749            f,
2750            "CMatchFinderMt_ {{ pointerToCurPos: {:?}, btBuf: {:?}, btBufPos: {:?}, btBufPosLimit: {:?}, lzPos: {:?}, btNumAvailBytes: {:?}, hash: {:?}, fixedHashSize: {:?}, historySize: {:?}, crc: {:?}, MixMatchesFunc: {:?}, failure_LZ_BT: {:?}, failureBuf: {:?}, btSync: {:?}, btDummy: {:?}, hashBuf: {:?}, hashBufPos: {:?}, hashBufPosLimit: {:?}, hashNumAvail: {:?}, failure_BT: {:?}, son: {:?}, matchMaxLen: {:?}, numHashBytes: {:?}, pos: {:?}, buffer: {:?}, cyclicBufferPos: {:?}, cyclicBufferSize: {:?}, cutValue: {:?}, hashSync: {:?}, GetHeadsFunc: {:?}, MatchFinder: {:?} }}",
2751            self.pointerToCurPos,
2752            self.btBuf,
2753            self.btBufPos,
2754            self.btBufPosLimit,
2755            self.lzPos,
2756            self.btNumAvailBytes,
2757            self.hash,
2758            self.fixedHashSize,
2759            self.historySize,
2760            self.crc,
2761            self.MixMatchesFunc,
2762            self.failure_LZ_BT,
2763            self.failureBuf,
2764            self.btSync,
2765            self.btDummy,
2766            self.hashBuf,
2767            self.hashBufPos,
2768            self.hashBufPosLimit,
2769            self.hashNumAvail,
2770            self.failure_BT,
2771            self.son,
2772            self.matchMaxLen,
2773            self.numHashBytes,
2774            self.pos,
2775            self.buffer,
2776            self.cyclicBufferPos,
2777            self.cyclicBufferSize,
2778            self.cutValue,
2779            self.hashSync,
2780            self.GetHeadsFunc,
2781            self.MatchFinder
2782        )
2783    }
2784}
2785pub type CMatchFinderMt = CMatchFinderMt_;
2786unsafe extern "C" {
2787    pub fn MatchFinderMt_Construct(p: *mut CMatchFinderMt);
2788}
2789unsafe extern "C" {
2790    pub fn MatchFinderMt_Destruct(p: *mut CMatchFinderMt, alloc: ISzAllocPtr);
2791}
2792unsafe extern "C" {
2793    pub fn MatchFinderMt_Create(
2794        p: *mut CMatchFinderMt,
2795        historySize: UInt32,
2796        keepAddBufferBefore: UInt32,
2797        matchMaxLen: UInt32,
2798        keepAddBufferAfter: UInt32,
2799        alloc: ISzAllocPtr,
2800    ) -> SRes;
2801}
2802unsafe extern "C" {
2803    pub fn MatchFinderMt_CreateVTable(p: *mut CMatchFinderMt, vTable: *mut IMatchFinder2);
2804}
2805unsafe extern "C" {
2806    pub fn MatchFinderMt_InitMt(p: *mut CMatchFinderMt) -> SRes;
2807}
2808unsafe extern "C" {
2809    pub fn MatchFinderMt_ReleaseStream(p: *mut CMatchFinderMt);
2810}
2811unsafe extern "C" {
2812    pub fn z7_x86_cpuid(a: *mut UInt32, function: UInt32);
2813}
2814unsafe extern "C" {
2815    pub fn z7_x86_cpuid_GetMaxFunc() -> UInt32;
2816}
2817unsafe extern "C" {
2818    pub fn CPU_IsSupported_AES() -> BoolInt;
2819}
2820unsafe extern "C" {
2821    pub fn CPU_IsSupported_AVX() -> BoolInt;
2822}
2823unsafe extern "C" {
2824    pub fn CPU_IsSupported_AVX2() -> BoolInt;
2825}
2826unsafe extern "C" {
2827    pub fn CPU_IsSupported_AVX512F_AVX512VL() -> BoolInt;
2828}
2829unsafe extern "C" {
2830    pub fn CPU_IsSupported_VAES_AVX2() -> BoolInt;
2831}
2832unsafe extern "C" {
2833    pub fn CPU_IsSupported_CMOV() -> BoolInt;
2834}
2835unsafe extern "C" {
2836    pub fn CPU_IsSupported_SSE() -> BoolInt;
2837}
2838unsafe extern "C" {
2839    pub fn CPU_IsSupported_SSE2() -> BoolInt;
2840}
2841unsafe extern "C" {
2842    pub fn CPU_IsSupported_SSSE3() -> BoolInt;
2843}
2844unsafe extern "C" {
2845    pub fn CPU_IsSupported_SSE41() -> BoolInt;
2846}
2847unsafe extern "C" {
2848    pub fn CPU_IsSupported_SHA() -> BoolInt;
2849}
2850unsafe extern "C" {
2851    pub fn CPU_IsSupported_SHA512() -> BoolInt;
2852}
2853unsafe extern "C" {
2854    pub fn CPU_IsSupported_PageGB() -> BoolInt;
2855}
2856unsafe extern "C" {
2857    pub fn GetMatchesSpecN_2(
2858        lenLimit: *const Byte,
2859        pos: usize,
2860        cur: *const Byte,
2861        son: *mut CLzRef,
2862        _cutValue: UInt32,
2863        d: *mut UInt32,
2864        _maxLen: usize,
2865        hash: *const UInt32,
2866        limit: *const UInt32,
2867        size: *const UInt32,
2868        _cyclicBufferPos: usize,
2869        _cyclicBufferSize: UInt32,
2870        posRes: *mut UInt32,
2871    ) -> *mut UInt32;
2872}
2873#[repr(C)]
2874#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
2875pub struct __locale_data {
2876    pub _address: u8,
2877}