tomcrypt_sys/
bindings.rs

1/* automatically generated by rust-bindgen */
2
3pub const _ASSERT_H: ::std::os::raw::c_uint = 1;
4pub const _FEATURES_H: ::std::os::raw::c_uint = 1;
5pub const _DEFAULT_SOURCE: ::std::os::raw::c_uint = 1;
6pub const __USE_ISOC11: ::std::os::raw::c_uint = 1;
7pub const __USE_ISOC99: ::std::os::raw::c_uint = 1;
8pub const __USE_ISOC95: ::std::os::raw::c_uint = 1;
9pub const __USE_POSIX_IMPLICITLY: ::std::os::raw::c_uint = 1;
10pub const _POSIX_SOURCE: ::std::os::raw::c_uint = 1;
11pub const _POSIX_C_SOURCE: ::std::os::raw::c_uint = 200809;
12pub const __USE_POSIX: ::std::os::raw::c_uint = 1;
13pub const __USE_POSIX2: ::std::os::raw::c_uint = 1;
14pub const __USE_POSIX199309: ::std::os::raw::c_uint = 1;
15pub const __USE_POSIX199506: ::std::os::raw::c_uint = 1;
16pub const __USE_XOPEN2K: ::std::os::raw::c_uint = 1;
17pub const __USE_XOPEN2K8: ::std::os::raw::c_uint = 1;
18pub const _ATFILE_SOURCE: ::std::os::raw::c_uint = 1;
19pub const __USE_MISC: ::std::os::raw::c_uint = 1;
20pub const __USE_ATFILE: ::std::os::raw::c_uint = 1;
21pub const __USE_FORTIFY_LEVEL: ::std::os::raw::c_uint = 0;
22pub const __GLIBC_USE_DEPRECATED_GETS: ::std::os::raw::c_uint = 0;
23pub const _STDC_PREDEF_H: ::std::os::raw::c_uint = 1;
24pub const __STDC_IEC_559__: ::std::os::raw::c_uint = 1;
25pub const __STDC_IEC_559_COMPLEX__: ::std::os::raw::c_uint = 1;
26pub const __STDC_ISO_10646__: ::std::os::raw::c_uint = 201706;
27pub const __STDC_NO_THREADS__: ::std::os::raw::c_uint = 1;
28pub const __GNU_LIBRARY__: ::std::os::raw::c_uint = 6;
29pub const __GLIBC__: ::std::os::raw::c_uint = 2;
30pub const __GLIBC_MINOR__: ::std::os::raw::c_uint = 26;
31pub const _SYS_CDEFS_H: ::std::os::raw::c_uint = 1;
32pub const __glibc_c99_flexarr_available: ::std::os::raw::c_uint = 1;
33pub const __WORDSIZE: ::std::os::raw::c_uint = 64;
34pub const __WORDSIZE_TIME64_COMPAT32: ::std::os::raw::c_uint = 1;
35pub const __SYSCALL_WORDSIZE: ::std::os::raw::c_uint = 64;
36pub const __HAVE_GENERIC_SELECTION: ::std::os::raw::c_uint = 1;
37pub const _STDIO_H: ::std::os::raw::c_uint = 1;
38pub const __GLIBC_USE_LIB_EXT2: ::std::os::raw::c_uint = 0;
39pub const __GLIBC_USE_IEC_60559_BFP_EXT: ::std::os::raw::c_uint = 0;
40pub const __GLIBC_USE_IEC_60559_FUNCS_EXT: ::std::os::raw::c_uint = 0;
41pub const __GLIBC_USE_IEC_60559_TYPES_EXT: ::std::os::raw::c_uint = 0;
42pub const _BITS_TYPES_H: ::std::os::raw::c_uint = 1;
43pub const _BITS_TYPESIZES_H: ::std::os::raw::c_uint = 1;
44pub const __OFF_T_MATCHES_OFF64_T: ::std::os::raw::c_uint = 1;
45pub const __INO_T_MATCHES_INO64_T: ::std::os::raw::c_uint = 1;
46pub const __RLIM_T_MATCHES_RLIM64_T: ::std::os::raw::c_uint = 1;
47pub const __FD_SETSIZE: ::std::os::raw::c_uint = 1024;
48pub const ____FILE_defined: ::std::os::raw::c_uint = 1;
49pub const __FILE_defined: ::std::os::raw::c_uint = 1;
50pub const _G_config_h: ::std::os::raw::c_uint = 1;
51pub const ____mbstate_t_defined: ::std::os::raw::c_uint = 1;
52pub const _G_HAVE_MMAP: ::std::os::raw::c_uint = 1;
53pub const _G_HAVE_MREMAP: ::std::os::raw::c_uint = 1;
54pub const _G_IO_IO_FILE_VERSION: ::std::os::raw::c_uint = 131073;
55pub const _G_BUFSIZ: ::std::os::raw::c_uint = 8192;
56pub const _IO_BUFSIZ: ::std::os::raw::c_uint = 8192;
57pub const __GNUC_VA_LIST: ::std::os::raw::c_uint = 1;
58pub const _IO_UNIFIED_JUMPTABLES: ::std::os::raw::c_uint = 1;
59pub const EOF: ::std::os::raw::c_int = -1;
60pub const _IOS_INPUT: ::std::os::raw::c_uint = 1;
61pub const _IOS_OUTPUT: ::std::os::raw::c_uint = 2;
62pub const _IOS_ATEND: ::std::os::raw::c_uint = 4;
63pub const _IOS_APPEND: ::std::os::raw::c_uint = 8;
64pub const _IOS_TRUNC: ::std::os::raw::c_uint = 16;
65pub const _IOS_NOCREATE: ::std::os::raw::c_uint = 32;
66pub const _IOS_NOREPLACE: ::std::os::raw::c_uint = 64;
67pub const _IOS_BIN: ::std::os::raw::c_uint = 128;
68pub const _IO_MAGIC: ::std::os::raw::c_uint = 4222418944;
69pub const _OLD_STDIO_MAGIC: ::std::os::raw::c_uint = 4206624768;
70pub const _IO_MAGIC_MASK: ::std::os::raw::c_uint = 4294901760;
71pub const _IO_USER_BUF: ::std::os::raw::c_uint = 1;
72pub const _IO_UNBUFFERED: ::std::os::raw::c_uint = 2;
73pub const _IO_NO_READS: ::std::os::raw::c_uint = 4;
74pub const _IO_NO_WRITES: ::std::os::raw::c_uint = 8;
75pub const _IO_EOF_SEEN: ::std::os::raw::c_uint = 16;
76pub const _IO_ERR_SEEN: ::std::os::raw::c_uint = 32;
77pub const _IO_DELETE_DONT_CLOSE: ::std::os::raw::c_uint = 64;
78pub const _IO_LINKED: ::std::os::raw::c_uint = 128;
79pub const _IO_IN_BACKUP: ::std::os::raw::c_uint = 256;
80pub const _IO_LINE_BUF: ::std::os::raw::c_uint = 512;
81pub const _IO_TIED_PUT_GET: ::std::os::raw::c_uint = 1024;
82pub const _IO_CURRENTLY_PUTTING: ::std::os::raw::c_uint = 2048;
83pub const _IO_IS_APPENDING: ::std::os::raw::c_uint = 4096;
84pub const _IO_IS_FILEBUF: ::std::os::raw::c_uint = 8192;
85pub const _IO_BAD_SEEN: ::std::os::raw::c_uint = 16384;
86pub const _IO_USER_LOCK: ::std::os::raw::c_uint = 32768;
87pub const _IO_FLAGS2_MMAP: ::std::os::raw::c_uint = 1;
88pub const _IO_FLAGS2_NOTCANCEL: ::std::os::raw::c_uint = 2;
89pub const _IO_FLAGS2_USER_WBUF: ::std::os::raw::c_uint = 8;
90pub const _IO_SKIPWS: ::std::os::raw::c_uint = 1;
91pub const _IO_LEFT: ::std::os::raw::c_uint = 2;
92pub const _IO_RIGHT: ::std::os::raw::c_uint = 4;
93pub const _IO_INTERNAL: ::std::os::raw::c_uint = 8;
94pub const _IO_DEC: ::std::os::raw::c_uint = 16;
95pub const _IO_OCT: ::std::os::raw::c_uint = 32;
96pub const _IO_HEX: ::std::os::raw::c_uint = 64;
97pub const _IO_SHOWBASE: ::std::os::raw::c_uint = 128;
98pub const _IO_SHOWPOINT: ::std::os::raw::c_uint = 256;
99pub const _IO_UPPERCASE: ::std::os::raw::c_uint = 512;
100pub const _IO_SHOWPOS: ::std::os::raw::c_uint = 1024;
101pub const _IO_SCIENTIFIC: ::std::os::raw::c_uint = 2048;
102pub const _IO_FIXED: ::std::os::raw::c_uint = 4096;
103pub const _IO_UNITBUF: ::std::os::raw::c_uint = 8192;
104pub const _IO_STDIO: ::std::os::raw::c_uint = 16384;
105pub const _IO_DONT_CLOSE: ::std::os::raw::c_uint = 32768;
106pub const _IO_BOOLALPHA: ::std::os::raw::c_uint = 65536;
107pub const _IOFBF: ::std::os::raw::c_uint = 0;
108pub const _IOLBF: ::std::os::raw::c_uint = 1;
109pub const _IONBF: ::std::os::raw::c_uint = 2;
110pub const BUFSIZ: ::std::os::raw::c_uint = 8192;
111pub const SEEK_SET: ::std::os::raw::c_uint = 0;
112pub const SEEK_CUR: ::std::os::raw::c_uint = 1;
113pub const SEEK_END: ::std::os::raw::c_uint = 2;
114pub const P_tmpdir: &'static [u8; 5usize] = b"/tmp\x00";
115pub const _BITS_STDIO_LIM_H: ::std::os::raw::c_uint = 1;
116pub const L_tmpnam: ::std::os::raw::c_uint = 20;
117pub const TMP_MAX: ::std::os::raw::c_uint = 238328;
118pub const FILENAME_MAX: ::std::os::raw::c_uint = 4096;
119pub const L_ctermid: ::std::os::raw::c_uint = 9;
120pub const FOPEN_MAX: ::std::os::raw::c_uint = 16;
121pub const _STRING_H: ::std::os::raw::c_uint = 1;
122pub const _BITS_TYPES_LOCALE_T_H: ::std::os::raw::c_uint = 1;
123pub const _BITS_TYPES___LOCALE_T_H: ::std::os::raw::c_uint = 1;
124pub const _STRINGS_H: ::std::os::raw::c_uint = 1;
125pub const _STDLIB_H: ::std::os::raw::c_uint = 1;
126pub const WNOHANG: ::std::os::raw::c_uint = 1;
127pub const WUNTRACED: ::std::os::raw::c_uint = 2;
128pub const WSTOPPED: ::std::os::raw::c_uint = 2;
129pub const WEXITED: ::std::os::raw::c_uint = 4;
130pub const WCONTINUED: ::std::os::raw::c_uint = 8;
131pub const WNOWAIT: ::std::os::raw::c_uint = 16777216;
132pub const __WNOTHREAD: ::std::os::raw::c_uint = 536870912;
133pub const __WALL: ::std::os::raw::c_uint = 1073741824;
134pub const __WCLONE: ::std::os::raw::c_uint = 2147483648;
135pub const __W_CONTINUED: ::std::os::raw::c_uint = 65535;
136pub const __WCOREFLAG: ::std::os::raw::c_uint = 128;
137pub const __HAVE_FLOAT128: ::std::os::raw::c_uint = 0;
138pub const __HAVE_DISTINCT_FLOAT128: ::std::os::raw::c_uint = 0;
139pub const __ldiv_t_defined: ::std::os::raw::c_uint = 1;
140pub const __lldiv_t_defined: ::std::os::raw::c_uint = 1;
141pub const RAND_MAX: ::std::os::raw::c_uint = 2147483647;
142pub const EXIT_FAILURE: ::std::os::raw::c_uint = 1;
143pub const EXIT_SUCCESS: ::std::os::raw::c_uint = 0;
144pub const _SYS_TYPES_H: ::std::os::raw::c_uint = 1;
145pub const __clock_t_defined: ::std::os::raw::c_uint = 1;
146pub const __clockid_t_defined: ::std::os::raw::c_uint = 1;
147pub const __time_t_defined: ::std::os::raw::c_uint = 1;
148pub const __timer_t_defined: ::std::os::raw::c_uint = 1;
149pub const _BITS_STDINT_INTN_H: ::std::os::raw::c_uint = 1;
150pub const __BIT_TYPES_DEFINED__: ::std::os::raw::c_uint = 1;
151pub const _ENDIAN_H: ::std::os::raw::c_uint = 1;
152pub const __LITTLE_ENDIAN: ::std::os::raw::c_uint = 1234;
153pub const __BIG_ENDIAN: ::std::os::raw::c_uint = 4321;
154pub const __PDP_ENDIAN: ::std::os::raw::c_uint = 3412;
155pub const __BYTE_ORDER: ::std::os::raw::c_uint = 1234;
156pub const __FLOAT_WORD_ORDER: ::std::os::raw::c_uint = 1234;
157pub const LITTLE_ENDIAN: ::std::os::raw::c_uint = 1234;
158pub const BIG_ENDIAN: ::std::os::raw::c_uint = 4321;
159pub const PDP_ENDIAN: ::std::os::raw::c_uint = 3412;
160pub const BYTE_ORDER: ::std::os::raw::c_uint = 1234;
161pub const _BITS_BYTESWAP_H: ::std::os::raw::c_uint = 1;
162pub const _BITS_UINTN_IDENTITY_H: ::std::os::raw::c_uint = 1;
163pub const _SYS_SELECT_H: ::std::os::raw::c_uint = 1;
164pub const __FD_ZERO_STOS: &'static [u8; 6usize] = b"stosq\x00";
165pub const __sigset_t_defined: ::std::os::raw::c_uint = 1;
166pub const __timeval_defined: ::std::os::raw::c_uint = 1;
167pub const __timespec_defined: ::std::os::raw::c_uint = 1;
168pub const FD_SETSIZE: ::std::os::raw::c_uint = 1024;
169pub const _SYS_SYSMACROS_H: ::std::os::raw::c_uint = 1;
170pub const _BITS_SYSMACROS_H: ::std::os::raw::c_uint = 1;
171pub const _BITS_PTHREADTYPES_COMMON_H: ::std::os::raw::c_uint = 1;
172pub const _THREAD_SHARED_TYPES_H: ::std::os::raw::c_uint = 1;
173pub const _BITS_PTHREADTYPES_ARCH_H: ::std::os::raw::c_uint = 1;
174pub const __SIZEOF_PTHREAD_MUTEX_T: ::std::os::raw::c_uint = 40;
175pub const __SIZEOF_PTHREAD_ATTR_T: ::std::os::raw::c_uint = 56;
176pub const __SIZEOF_PTHREAD_RWLOCK_T: ::std::os::raw::c_uint = 56;
177pub const __SIZEOF_PTHREAD_BARRIER_T: ::std::os::raw::c_uint = 32;
178pub const __SIZEOF_PTHREAD_MUTEXATTR_T: ::std::os::raw::c_uint = 4;
179pub const __SIZEOF_PTHREAD_COND_T: ::std::os::raw::c_uint = 48;
180pub const __SIZEOF_PTHREAD_CONDATTR_T: ::std::os::raw::c_uint = 4;
181pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: ::std::os::raw::c_uint = 8;
182pub const __SIZEOF_PTHREAD_BARRIERATTR_T: ::std::os::raw::c_uint = 4;
183pub const __PTHREAD_MUTEX_LOCK_ELISION: ::std::os::raw::c_uint = 1;
184pub const __PTHREAD_RWLOCK_INT_FLAGS_SHARED: ::std::os::raw::c_uint = 1;
185pub const __PTHREAD_MUTEX_HAVE_PREV: ::std::os::raw::c_uint = 1;
186pub const __have_pthread_attr_t: ::std::os::raw::c_uint = 1;
187pub const _ALLOCA_H: ::std::os::raw::c_uint = 1;
188pub const _TIME_H: ::std::os::raw::c_uint = 1;
189pub const _BITS_TIME_H: ::std::os::raw::c_uint = 1;
190pub const CLOCK_REALTIME: ::std::os::raw::c_uint = 0;
191pub const CLOCK_MONOTONIC: ::std::os::raw::c_uint = 1;
192pub const CLOCK_PROCESS_CPUTIME_ID: ::std::os::raw::c_uint = 2;
193pub const CLOCK_THREAD_CPUTIME_ID: ::std::os::raw::c_uint = 3;
194pub const CLOCK_MONOTONIC_RAW: ::std::os::raw::c_uint = 4;
195pub const CLOCK_REALTIME_COARSE: ::std::os::raw::c_uint = 5;
196pub const CLOCK_MONOTONIC_COARSE: ::std::os::raw::c_uint = 6;
197pub const CLOCK_BOOTTIME: ::std::os::raw::c_uint = 7;
198pub const CLOCK_REALTIME_ALARM: ::std::os::raw::c_uint = 8;
199pub const CLOCK_BOOTTIME_ALARM: ::std::os::raw::c_uint = 9;
200pub const CLOCK_TAI: ::std::os::raw::c_uint = 11;
201pub const TIMER_ABSTIME: ::std::os::raw::c_uint = 1;
202pub const __struct_tm_defined: ::std::os::raw::c_uint = 1;
203pub const __itimerspec_defined: ::std::os::raw::c_uint = 1;
204pub const TIME_UTC: ::std::os::raw::c_uint = 1;
205pub const _CTYPE_H: ::std::os::raw::c_uint = 1;
206pub const _LIBC_LIMITS_H_: ::std::os::raw::c_uint = 1;
207pub const MB_LEN_MAX: ::std::os::raw::c_uint = 16;
208pub const _BITS_POSIX1_LIM_H: ::std::os::raw::c_uint = 1;
209pub const _POSIX_AIO_LISTIO_MAX: ::std::os::raw::c_uint = 2;
210pub const _POSIX_AIO_MAX: ::std::os::raw::c_uint = 1;
211pub const _POSIX_ARG_MAX: ::std::os::raw::c_uint = 4096;
212pub const _POSIX_CHILD_MAX: ::std::os::raw::c_uint = 25;
213pub const _POSIX_DELAYTIMER_MAX: ::std::os::raw::c_uint = 32;
214pub const _POSIX_HOST_NAME_MAX: ::std::os::raw::c_uint = 255;
215pub const _POSIX_LINK_MAX: ::std::os::raw::c_uint = 8;
216pub const _POSIX_LOGIN_NAME_MAX: ::std::os::raw::c_uint = 9;
217pub const _POSIX_MAX_CANON: ::std::os::raw::c_uint = 255;
218pub const _POSIX_MAX_INPUT: ::std::os::raw::c_uint = 255;
219pub const _POSIX_MQ_OPEN_MAX: ::std::os::raw::c_uint = 8;
220pub const _POSIX_MQ_PRIO_MAX: ::std::os::raw::c_uint = 32;
221pub const _POSIX_NAME_MAX: ::std::os::raw::c_uint = 14;
222pub const _POSIX_NGROUPS_MAX: ::std::os::raw::c_uint = 8;
223pub const _POSIX_OPEN_MAX: ::std::os::raw::c_uint = 20;
224pub const _POSIX_PATH_MAX: ::std::os::raw::c_uint = 256;
225pub const _POSIX_PIPE_BUF: ::std::os::raw::c_uint = 512;
226pub const _POSIX_RE_DUP_MAX: ::std::os::raw::c_uint = 255;
227pub const _POSIX_RTSIG_MAX: ::std::os::raw::c_uint = 8;
228pub const _POSIX_SEM_NSEMS_MAX: ::std::os::raw::c_uint = 256;
229pub const _POSIX_SEM_VALUE_MAX: ::std::os::raw::c_uint = 32767;
230pub const _POSIX_SIGQUEUE_MAX: ::std::os::raw::c_uint = 32;
231pub const _POSIX_SSIZE_MAX: ::std::os::raw::c_uint = 32767;
232pub const _POSIX_STREAM_MAX: ::std::os::raw::c_uint = 8;
233pub const _POSIX_SYMLINK_MAX: ::std::os::raw::c_uint = 255;
234pub const _POSIX_SYMLOOP_MAX: ::std::os::raw::c_uint = 8;
235pub const _POSIX_TIMER_MAX: ::std::os::raw::c_uint = 32;
236pub const _POSIX_TTY_NAME_MAX: ::std::os::raw::c_uint = 9;
237pub const _POSIX_TZNAME_MAX: ::std::os::raw::c_uint = 6;
238pub const _POSIX_CLOCKRES_MIN: ::std::os::raw::c_uint = 20000000;
239pub const NR_OPEN: ::std::os::raw::c_uint = 1024;
240pub const NGROUPS_MAX: ::std::os::raw::c_uint = 65536;
241pub const ARG_MAX: ::std::os::raw::c_uint = 131072;
242pub const LINK_MAX: ::std::os::raw::c_uint = 127;
243pub const MAX_CANON: ::std::os::raw::c_uint = 255;
244pub const MAX_INPUT: ::std::os::raw::c_uint = 255;
245pub const NAME_MAX: ::std::os::raw::c_uint = 255;
246pub const PATH_MAX: ::std::os::raw::c_uint = 4096;
247pub const PIPE_BUF: ::std::os::raw::c_uint = 4096;
248pub const XATTR_NAME_MAX: ::std::os::raw::c_uint = 255;
249pub const XATTR_SIZE_MAX: ::std::os::raw::c_uint = 65536;
250pub const XATTR_LIST_MAX: ::std::os::raw::c_uint = 65536;
251pub const RTSIG_MAX: ::std::os::raw::c_uint = 32;
252pub const _POSIX_THREAD_KEYS_MAX: ::std::os::raw::c_uint = 128;
253pub const PTHREAD_KEYS_MAX: ::std::os::raw::c_uint = 1024;
254pub const _POSIX_THREAD_DESTRUCTOR_ITERATIONS: ::std::os::raw::c_uint = 4;
255pub const PTHREAD_DESTRUCTOR_ITERATIONS: ::std::os::raw::c_uint = 4;
256pub const _POSIX_THREAD_THREADS_MAX: ::std::os::raw::c_uint = 64;
257pub const AIO_PRIO_DELTA_MAX: ::std::os::raw::c_uint = 20;
258pub const PTHREAD_STACK_MIN: ::std::os::raw::c_uint = 16384;
259pub const DELAYTIMER_MAX: ::std::os::raw::c_uint = 2147483647;
260pub const TTY_NAME_MAX: ::std::os::raw::c_uint = 32;
261pub const LOGIN_NAME_MAX: ::std::os::raw::c_uint = 256;
262pub const HOST_NAME_MAX: ::std::os::raw::c_uint = 64;
263pub const MQ_PRIO_MAX: ::std::os::raw::c_uint = 32768;
264pub const SEM_VALUE_MAX: ::std::os::raw::c_uint = 2147483647;
265pub const _BITS_POSIX2_LIM_H: ::std::os::raw::c_uint = 1;
266pub const _POSIX2_BC_BASE_MAX: ::std::os::raw::c_uint = 99;
267pub const _POSIX2_BC_DIM_MAX: ::std::os::raw::c_uint = 2048;
268pub const _POSIX2_BC_SCALE_MAX: ::std::os::raw::c_uint = 99;
269pub const _POSIX2_BC_STRING_MAX: ::std::os::raw::c_uint = 1000;
270pub const _POSIX2_COLL_WEIGHTS_MAX: ::std::os::raw::c_uint = 2;
271pub const _POSIX2_EXPR_NEST_MAX: ::std::os::raw::c_uint = 32;
272pub const _POSIX2_LINE_MAX: ::std::os::raw::c_uint = 2048;
273pub const _POSIX2_RE_DUP_MAX: ::std::os::raw::c_uint = 255;
274pub const _POSIX2_CHARCLASS_NAME_MAX: ::std::os::raw::c_uint = 14;
275pub const BC_BASE_MAX: ::std::os::raw::c_uint = 99;
276pub const BC_DIM_MAX: ::std::os::raw::c_uint = 2048;
277pub const BC_SCALE_MAX: ::std::os::raw::c_uint = 99;
278pub const BC_STRING_MAX: ::std::os::raw::c_uint = 1000;
279pub const COLL_WEIGHTS_MAX: ::std::os::raw::c_uint = 255;
280pub const EXPR_NEST_MAX: ::std::os::raw::c_uint = 32;
281pub const LINE_MAX: ::std::os::raw::c_uint = 2048;
282pub const CHARCLASS_NAME_MAX: ::std::os::raw::c_uint = 2048;
283pub const RE_DUP_MAX: ::std::os::raw::c_uint = 32767;
284pub const LTC_YARROW_AES: ::std::os::raw::c_uint = 2;
285pub const LTC_FORTUNA_WD: ::std::os::raw::c_uint = 10;
286pub const LTC_FORTUNA_POOLS: ::std::os::raw::c_uint = 32;
287pub const LTC_PK_MAX_RETRIES: ::std::os::raw::c_uint = 20;
288pub const LTC_FILE_READ_BUFSIZE: ::std::os::raw::c_uint = 8192;
289pub const CRYPT: ::std::os::raw::c_uint = 280;
290pub const SCRYPT: &'static [u8; 7usize] = b"1.18.0\x00";
291pub const MAXBLOCKSIZE: ::std::os::raw::c_uint = 128;
292pub const TAB_SIZE: ::std::os::raw::c_uint = 32;
293pub const ARGTYPE: ::std::os::raw::c_uint = 0;
294pub const LTC_ENCRYPT: ::std::os::raw::c_uint = 0;
295pub const LTC_DECRYPT: ::std::os::raw::c_uint = 1;
296pub const LTC_SAFER_K64_DEFAULT_NOF_ROUNDS: ::std::os::raw::c_uint = 6;
297pub const LTC_SAFER_K128_DEFAULT_NOF_ROUNDS: ::std::os::raw::c_uint = 10;
298pub const LTC_SAFER_SK64_DEFAULT_NOF_ROUNDS: ::std::os::raw::c_uint = 8;
299pub const LTC_SAFER_SK128_DEFAULT_NOF_ROUNDS: ::std::os::raw::c_uint = 10;
300pub const LTC_SAFER_MAX_NOF_ROUNDS: ::std::os::raw::c_uint = 13;
301pub const LTC_SAFER_BLOCK_LEN: ::std::os::raw::c_uint = 8;
302pub const LTC_SAFER_KEY_LEN: ::std::os::raw::c_uint = 217;
303pub const CTR_COUNTER_LITTLE_ENDIAN: ::std::os::raw::c_uint = 0;
304pub const CTR_COUNTER_BIG_ENDIAN: ::std::os::raw::c_uint = 4096;
305pub const LTC_CTR_RFC3686: ::std::os::raw::c_uint = 8192;
306pub const LRW_ENCRYPT: ::std::os::raw::c_uint = 0;
307pub const LRW_DECRYPT: ::std::os::raw::c_uint = 1;
308pub const CCM_ENCRYPT: ::std::os::raw::c_uint = 0;
309pub const CCM_DECRYPT: ::std::os::raw::c_uint = 1;
310pub const GCM_ENCRYPT: ::std::os::raw::c_uint = 0;
311pub const GCM_DECRYPT: ::std::os::raw::c_uint = 1;
312pub const LTC_GCM_MODE_IV: ::std::os::raw::c_uint = 0;
313pub const LTC_GCM_MODE_AAD: ::std::os::raw::c_uint = 1;
314pub const LTC_GCM_MODE_TEXT: ::std::os::raw::c_uint = 2;
315pub const LTC_XCBC_PURE: ::std::os::raw::c_uint = 32768;
316pub const CHCHA20POLY1305_ENCRYPT: ::std::os::raw::c_uint = 0;
317pub const CHCHA20POLY1305_DECRYPT: ::std::os::raw::c_uint = 1;
318pub const PK_STD: ::std::os::raw::c_uint = 4096;
319pub const ECC_BUF_SIZE: ::std::os::raw::c_uint = 256;
320pub const ECC_MAXSIZE: ::std::os::raw::c_uint = 66;
321pub const LTC_MDSA_DELTA: ::std::os::raw::c_uint = 512;
322pub const LTC_MDSA_MAX_GROUP: ::std::os::raw::c_uint = 512;
323pub const _WCHAR_H: ::std::os::raw::c_uint = 1;
324pub const _BITS_WCHAR_H: ::std::os::raw::c_uint = 1;
325pub const __wint_t_defined: ::std::os::raw::c_uint = 1;
326pub const _WINT_T: ::std::os::raw::c_uint = 1;
327pub const __mbstate_t_defined: ::std::os::raw::c_uint = 1;
328pub const WEOF: ::std::os::raw::c_uint = 4294967295;
329pub const LTC_MP_LT: ::std::os::raw::c_int = -1;
330pub const LTC_MP_EQ: ::std::os::raw::c_uint = 0;
331pub const LTC_MP_GT: ::std::os::raw::c_uint = 1;
332pub const LTC_MP_NO: ::std::os::raw::c_uint = 0;
333pub const LTC_MP_YES: ::std::os::raw::c_uint = 1;
334pub const LTC_MILLER_RABIN_REPS: ::std::os::raw::c_uint = 40;
335pub const _BITS_SIGNUM_H: ::std::os::raw::c_uint = 1;
336pub const _BITS_SIGNUM_GENERIC_H: ::std::os::raw::c_uint = 1;
337pub const SIGINT: ::std::os::raw::c_uint = 2;
338pub const SIGILL: ::std::os::raw::c_uint = 4;
339pub const SIGABRT: ::std::os::raw::c_uint = 6;
340pub const SIGFPE: ::std::os::raw::c_uint = 8;
341pub const SIGSEGV: ::std::os::raw::c_uint = 11;
342pub const SIGTERM: ::std::os::raw::c_uint = 15;
343pub const SIGHUP: ::std::os::raw::c_uint = 1;
344pub const SIGQUIT: ::std::os::raw::c_uint = 3;
345pub const SIGTRAP: ::std::os::raw::c_uint = 5;
346pub const SIGKILL: ::std::os::raw::c_uint = 9;
347pub const SIGBUS: ::std::os::raw::c_uint = 10;
348pub const SIGSYS: ::std::os::raw::c_uint = 12;
349pub const SIGPIPE: ::std::os::raw::c_uint = 13;
350pub const SIGALRM: ::std::os::raw::c_uint = 14;
351pub const SIGURG: ::std::os::raw::c_uint = 16;
352pub const SIGSTOP: ::std::os::raw::c_uint = 17;
353pub const SIGTSTP: ::std::os::raw::c_uint = 18;
354pub const SIGCONT: ::std::os::raw::c_uint = 19;
355pub const SIGCHLD: ::std::os::raw::c_uint = 20;
356pub const SIGTTIN: ::std::os::raw::c_uint = 21;
357pub const SIGTTOU: ::std::os::raw::c_uint = 22;
358pub const SIGPOLL: ::std::os::raw::c_uint = 23;
359pub const SIGXCPU: ::std::os::raw::c_uint = 24;
360pub const SIGXFSZ: ::std::os::raw::c_uint = 25;
361pub const SIGVTALRM: ::std::os::raw::c_uint = 26;
362pub const SIGPROF: ::std::os::raw::c_uint = 27;
363pub const SIGUSR1: ::std::os::raw::c_uint = 30;
364pub const SIGUSR2: ::std::os::raw::c_uint = 31;
365pub const SIGWINCH: ::std::os::raw::c_uint = 28;
366pub const SIGIO: ::std::os::raw::c_uint = 23;
367pub const SIGIOT: ::std::os::raw::c_uint = 6;
368pub const SIGCLD: ::std::os::raw::c_uint = 20;
369pub const __SIGRTMIN: ::std::os::raw::c_uint = 32;
370pub const __SIGRTMAX: ::std::os::raw::c_uint = 32;
371pub const _NSIG: ::std::os::raw::c_uint = 33;
372pub const SIGSTKFLT: ::std::os::raw::c_uint = 16;
373pub const SIGPWR: ::std::os::raw::c_uint = 30;
374pub const __sig_atomic_t_defined: ::std::os::raw::c_uint = 1;
375pub const __siginfo_t_defined: ::std::os::raw::c_uint = 1;
376pub const __SI_MAX_SIZE: ::std::os::raw::c_uint = 128;
377pub const _BITS_SIGINFO_ARCH_H: ::std::os::raw::c_uint = 1;
378pub const __SI_ERRNO_THEN_CODE: ::std::os::raw::c_uint = 1;
379pub const __SI_HAVE_SIGSYS: ::std::os::raw::c_uint = 1;
380pub const _BITS_SIGINFO_CONSTS_H: ::std::os::raw::c_uint = 1;
381pub const __SI_ASYNCIO_AFTER_SIGIO: ::std::os::raw::c_uint = 1;
382pub const __sigevent_t_defined: ::std::os::raw::c_uint = 1;
383pub const __SIGEV_MAX_SIZE: ::std::os::raw::c_uint = 64;
384pub const _BITS_SIGEVENT_CONSTS_H: ::std::os::raw::c_uint = 1;
385pub const NSIG: ::std::os::raw::c_uint = 33;
386pub const SA_NOCLDSTOP: ::std::os::raw::c_uint = 1;
387pub const SA_NOCLDWAIT: ::std::os::raw::c_uint = 2;
388pub const SA_SIGINFO: ::std::os::raw::c_uint = 4;
389pub const SA_ONSTACK: ::std::os::raw::c_uint = 134217728;
390pub const SA_RESTART: ::std::os::raw::c_uint = 268435456;
391pub const SA_NODEFER: ::std::os::raw::c_uint = 1073741824;
392pub const SA_RESETHAND: ::std::os::raw::c_uint = 2147483648;
393pub const SA_INTERRUPT: ::std::os::raw::c_uint = 536870912;
394pub const SA_NOMASK: ::std::os::raw::c_uint = 1073741824;
395pub const SA_ONESHOT: ::std::os::raw::c_uint = 2147483648;
396pub const SA_STACK: ::std::os::raw::c_uint = 134217728;
397pub const SIG_BLOCK: ::std::os::raw::c_uint = 0;
398pub const SIG_UNBLOCK: ::std::os::raw::c_uint = 1;
399pub const SIG_SETMASK: ::std::os::raw::c_uint = 2;
400pub const _BITS_SIGCONTEXT_H: ::std::os::raw::c_uint = 1;
401pub const FP_XSTATE_MAGIC1: ::std::os::raw::c_uint = 1179670611;
402pub const FP_XSTATE_MAGIC2: ::std::os::raw::c_uint = 1179670597;
403pub const __stack_t_defined: ::std::os::raw::c_uint = 1;
404pub const _SYS_UCONTEXT_H: ::std::os::raw::c_uint = 1;
405pub const __NGREG: ::std::os::raw::c_uint = 23;
406pub const NGREG: ::std::os::raw::c_uint = 23;
407pub const _BITS_SIGSTACK_H: ::std::os::raw::c_uint = 1;
408pub const MINSIGSTKSZ: ::std::os::raw::c_uint = 2048;
409pub const SIGSTKSZ: ::std::os::raw::c_uint = 8192;
410pub const _BITS_SS_FLAGS_H: ::std::os::raw::c_uint = 1;
411pub const __sigstack_defined: ::std::os::raw::c_uint = 1;
412pub const _BITS_SIGTHREAD_H: ::std::os::raw::c_uint = 1;
413extern "C" {
414    pub fn __assert_fail(__assertion: *const ::std::os::raw::c_char,
415                         __file: *const ::std::os::raw::c_char,
416                         __line: ::std::os::raw::c_uint,
417                         __function: *const ::std::os::raw::c_char);
418}
419extern "C" {
420    pub fn __assert_perror_fail(__errnum: ::std::os::raw::c_int,
421                                __file: *const ::std::os::raw::c_char,
422                                __line: ::std::os::raw::c_uint,
423                                __function: *const ::std::os::raw::c_char);
424}
425extern "C" {
426    pub fn __assert(__assertion: *const ::std::os::raw::c_char,
427                    __file: *const ::std::os::raw::c_char,
428                    __line: ::std::os::raw::c_int);
429}
430pub type __u_char = ::std::os::raw::c_uchar;
431pub type __u_short = ::std::os::raw::c_ushort;
432pub type __u_int = ::std::os::raw::c_uint;
433pub type __u_long = ::std::os::raw::c_ulong;
434pub type __int8_t = ::std::os::raw::c_schar;
435pub type __uint8_t = ::std::os::raw::c_uchar;
436pub type __int16_t = ::std::os::raw::c_short;
437pub type __uint16_t = ::std::os::raw::c_ushort;
438pub type __int32_t = ::std::os::raw::c_int;
439pub type __uint32_t = ::std::os::raw::c_uint;
440pub type __int64_t = ::std::os::raw::c_long;
441pub type __uint64_t = ::std::os::raw::c_ulong;
442pub type __quad_t = ::std::os::raw::c_long;
443pub type __u_quad_t = ::std::os::raw::c_ulong;
444pub type __intmax_t = ::std::os::raw::c_long;
445pub type __uintmax_t = ::std::os::raw::c_ulong;
446pub type __dev_t = ::std::os::raw::c_ulong;
447pub type __uid_t = ::std::os::raw::c_uint;
448pub type __gid_t = ::std::os::raw::c_uint;
449pub type __ino_t = ::std::os::raw::c_ulong;
450pub type __ino64_t = ::std::os::raw::c_ulong;
451pub type __mode_t = ::std::os::raw::c_uint;
452pub type __nlink_t = ::std::os::raw::c_ulong;
453pub type __off_t = ::std::os::raw::c_long;
454pub type __off64_t = ::std::os::raw::c_long;
455pub type __pid_t = ::std::os::raw::c_int;
456#[repr(C)]
457#[derive(Debug, Copy)]
458pub struct __fsid_t {
459    pub __val: [::std::os::raw::c_int; 2usize],
460}
461#[test]
462fn bindgen_test_layout___fsid_t() {
463    assert_eq!(::std::mem::size_of::<__fsid_t>() , 8usize , concat ! (
464               "Size of: " , stringify ! ( __fsid_t ) ));
465    assert_eq! (::std::mem::align_of::<__fsid_t>() , 4usize , concat ! (
466                "Alignment of " , stringify ! ( __fsid_t ) ));
467    assert_eq! (unsafe {
468                & ( * ( 0 as * const __fsid_t ) ) . __val as * const _ as
469                usize } , 0usize , concat ! (
470                "Alignment of field: " , stringify ! ( __fsid_t ) , "::" ,
471                stringify ! ( __val ) ));
472}
473impl Clone for __fsid_t {
474    fn clone(&self) -> Self { *self }
475}
476pub type __clock_t = ::std::os::raw::c_long;
477pub type __rlim_t = ::std::os::raw::c_ulong;
478pub type __rlim64_t = ::std::os::raw::c_ulong;
479pub type __id_t = ::std::os::raw::c_uint;
480pub type __time_t = ::std::os::raw::c_long;
481pub type __useconds_t = ::std::os::raw::c_uint;
482pub type __suseconds_t = ::std::os::raw::c_long;
483pub type __daddr_t = ::std::os::raw::c_int;
484pub type __key_t = ::std::os::raw::c_int;
485pub type __clockid_t = ::std::os::raw::c_int;
486pub type __timer_t = *mut ::std::os::raw::c_void;
487pub type __blksize_t = ::std::os::raw::c_long;
488pub type __blkcnt_t = ::std::os::raw::c_long;
489pub type __blkcnt64_t = ::std::os::raw::c_long;
490pub type __fsblkcnt_t = ::std::os::raw::c_ulong;
491pub type __fsblkcnt64_t = ::std::os::raw::c_ulong;
492pub type __fsfilcnt_t = ::std::os::raw::c_ulong;
493pub type __fsfilcnt64_t = ::std::os::raw::c_ulong;
494pub type __fsword_t = ::std::os::raw::c_long;
495pub type __ssize_t = ::std::os::raw::c_long;
496pub type __syscall_slong_t = ::std::os::raw::c_long;
497pub type __syscall_ulong_t = ::std::os::raw::c_ulong;
498pub type __loff_t = __off64_t;
499pub type __qaddr_t = *mut __quad_t;
500pub type __caddr_t = *mut ::std::os::raw::c_char;
501pub type __intptr_t = ::std::os::raw::c_long;
502pub type __socklen_t = ::std::os::raw::c_uint;
503pub type __sig_atomic_t = ::std::os::raw::c_int;
504#[repr(C)]
505#[derive(Debug, Copy)]
506pub struct _IO_FILE {
507    pub _flags: ::std::os::raw::c_int,
508    pub _IO_read_ptr: *mut ::std::os::raw::c_char,
509    pub _IO_read_end: *mut ::std::os::raw::c_char,
510    pub _IO_read_base: *mut ::std::os::raw::c_char,
511    pub _IO_write_base: *mut ::std::os::raw::c_char,
512    pub _IO_write_ptr: *mut ::std::os::raw::c_char,
513    pub _IO_write_end: *mut ::std::os::raw::c_char,
514    pub _IO_buf_base: *mut ::std::os::raw::c_char,
515    pub _IO_buf_end: *mut ::std::os::raw::c_char,
516    pub _IO_save_base: *mut ::std::os::raw::c_char,
517    pub _IO_backup_base: *mut ::std::os::raw::c_char,
518    pub _IO_save_end: *mut ::std::os::raw::c_char,
519    pub _markers: *mut _IO_marker,
520    pub _chain: *mut _IO_FILE,
521    pub _fileno: ::std::os::raw::c_int,
522    pub _flags2: ::std::os::raw::c_int,
523    pub _old_offset: __off_t,
524    pub _cur_column: ::std::os::raw::c_ushort,
525    pub _vtable_offset: ::std::os::raw::c_schar,
526    pub _shortbuf: [::std::os::raw::c_char; 1usize],
527    pub _lock: *mut _IO_lock_t,
528    pub _offset: __off64_t,
529    pub __pad1: *mut ::std::os::raw::c_void,
530    pub __pad2: *mut ::std::os::raw::c_void,
531    pub __pad3: *mut ::std::os::raw::c_void,
532    pub __pad4: *mut ::std::os::raw::c_void,
533    pub __pad5: usize,
534    pub _mode: ::std::os::raw::c_int,
535    pub _unused2: [::std::os::raw::c_char; 20usize],
536}
537#[test]
538fn bindgen_test_layout__IO_FILE() {
539    assert_eq!(::std::mem::size_of::<_IO_FILE>() , 216usize , concat ! (
540               "Size of: " , stringify ! ( _IO_FILE ) ));
541    assert_eq! (::std::mem::align_of::<_IO_FILE>() , 8usize , concat ! (
542                "Alignment of " , stringify ! ( _IO_FILE ) ));
543    assert_eq! (unsafe {
544                & ( * ( 0 as * const _IO_FILE ) ) . _flags as * const _ as
545                usize } , 0usize , concat ! (
546                "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
547                stringify ! ( _flags ) ));
548    assert_eq! (unsafe {
549                & ( * ( 0 as * const _IO_FILE ) ) . _IO_read_ptr as * const _
550                as usize } , 8usize , concat ! (
551                "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
552                stringify ! ( _IO_read_ptr ) ));
553    assert_eq! (unsafe {
554                & ( * ( 0 as * const _IO_FILE ) ) . _IO_read_end as * const _
555                as usize } , 16usize , concat ! (
556                "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
557                stringify ! ( _IO_read_end ) ));
558    assert_eq! (unsafe {
559                & ( * ( 0 as * const _IO_FILE ) ) . _IO_read_base as * const _
560                as usize } , 24usize , concat ! (
561                "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
562                stringify ! ( _IO_read_base ) ));
563    assert_eq! (unsafe {
564                & ( * ( 0 as * const _IO_FILE ) ) . _IO_write_base as * const
565                _ as usize } , 32usize , concat ! (
566                "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
567                stringify ! ( _IO_write_base ) ));
568    assert_eq! (unsafe {
569                & ( * ( 0 as * const _IO_FILE ) ) . _IO_write_ptr as * const _
570                as usize } , 40usize , concat ! (
571                "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
572                stringify ! ( _IO_write_ptr ) ));
573    assert_eq! (unsafe {
574                & ( * ( 0 as * const _IO_FILE ) ) . _IO_write_end as * const _
575                as usize } , 48usize , concat ! (
576                "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
577                stringify ! ( _IO_write_end ) ));
578    assert_eq! (unsafe {
579                & ( * ( 0 as * const _IO_FILE ) ) . _IO_buf_base as * const _
580                as usize } , 56usize , concat ! (
581                "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
582                stringify ! ( _IO_buf_base ) ));
583    assert_eq! (unsafe {
584                & ( * ( 0 as * const _IO_FILE ) ) . _IO_buf_end as * const _
585                as usize } , 64usize , concat ! (
586                "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
587                stringify ! ( _IO_buf_end ) ));
588    assert_eq! (unsafe {
589                & ( * ( 0 as * const _IO_FILE ) ) . _IO_save_base as * const _
590                as usize } , 72usize , concat ! (
591                "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
592                stringify ! ( _IO_save_base ) ));
593    assert_eq! (unsafe {
594                & ( * ( 0 as * const _IO_FILE ) ) . _IO_backup_base as * const
595                _ as usize } , 80usize , concat ! (
596                "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
597                stringify ! ( _IO_backup_base ) ));
598    assert_eq! (unsafe {
599                & ( * ( 0 as * const _IO_FILE ) ) . _IO_save_end as * const _
600                as usize } , 88usize , concat ! (
601                "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
602                stringify ! ( _IO_save_end ) ));
603    assert_eq! (unsafe {
604                & ( * ( 0 as * const _IO_FILE ) ) . _markers as * const _ as
605                usize } , 96usize , concat ! (
606                "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
607                stringify ! ( _markers ) ));
608    assert_eq! (unsafe {
609                & ( * ( 0 as * const _IO_FILE ) ) . _chain as * const _ as
610                usize } , 104usize , concat ! (
611                "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
612                stringify ! ( _chain ) ));
613    assert_eq! (unsafe {
614                & ( * ( 0 as * const _IO_FILE ) ) . _fileno as * const _ as
615                usize } , 112usize , concat ! (
616                "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
617                stringify ! ( _fileno ) ));
618    assert_eq! (unsafe {
619                & ( * ( 0 as * const _IO_FILE ) ) . _flags2 as * const _ as
620                usize } , 116usize , concat ! (
621                "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
622                stringify ! ( _flags2 ) ));
623    assert_eq! (unsafe {
624                & ( * ( 0 as * const _IO_FILE ) ) . _old_offset as * const _
625                as usize } , 120usize , concat ! (
626                "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
627                stringify ! ( _old_offset ) ));
628    assert_eq! (unsafe {
629                & ( * ( 0 as * const _IO_FILE ) ) . _cur_column as * const _
630                as usize } , 128usize , concat ! (
631                "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
632                stringify ! ( _cur_column ) ));
633    assert_eq! (unsafe {
634                & ( * ( 0 as * const _IO_FILE ) ) . _vtable_offset as * const
635                _ as usize } , 130usize , concat ! (
636                "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
637                stringify ! ( _vtable_offset ) ));
638    assert_eq! (unsafe {
639                & ( * ( 0 as * const _IO_FILE ) ) . _shortbuf as * const _ as
640                usize } , 131usize , concat ! (
641                "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
642                stringify ! ( _shortbuf ) ));
643    assert_eq! (unsafe {
644                & ( * ( 0 as * const _IO_FILE ) ) . _lock as * const _ as
645                usize } , 136usize , concat ! (
646                "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
647                stringify ! ( _lock ) ));
648    assert_eq! (unsafe {
649                & ( * ( 0 as * const _IO_FILE ) ) . _offset as * const _ as
650                usize } , 144usize , concat ! (
651                "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
652                stringify ! ( _offset ) ));
653    assert_eq! (unsafe {
654                & ( * ( 0 as * const _IO_FILE ) ) . __pad1 as * const _ as
655                usize } , 152usize , concat ! (
656                "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
657                stringify ! ( __pad1 ) ));
658    assert_eq! (unsafe {
659                & ( * ( 0 as * const _IO_FILE ) ) . __pad2 as * const _ as
660                usize } , 160usize , concat ! (
661                "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
662                stringify ! ( __pad2 ) ));
663    assert_eq! (unsafe {
664                & ( * ( 0 as * const _IO_FILE ) ) . __pad3 as * const _ as
665                usize } , 168usize , concat ! (
666                "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
667                stringify ! ( __pad3 ) ));
668    assert_eq! (unsafe {
669                & ( * ( 0 as * const _IO_FILE ) ) . __pad4 as * const _ as
670                usize } , 176usize , concat ! (
671                "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
672                stringify ! ( __pad4 ) ));
673    assert_eq! (unsafe {
674                & ( * ( 0 as * const _IO_FILE ) ) . __pad5 as * const _ as
675                usize } , 184usize , concat ! (
676                "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
677                stringify ! ( __pad5 ) ));
678    assert_eq! (unsafe {
679                & ( * ( 0 as * const _IO_FILE ) ) . _mode as * const _ as
680                usize } , 192usize , concat ! (
681                "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
682                stringify ! ( _mode ) ));
683    assert_eq! (unsafe {
684                & ( * ( 0 as * const _IO_FILE ) ) . _unused2 as * const _ as
685                usize } , 196usize , concat ! (
686                "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
687                stringify ! ( _unused2 ) ));
688}
689impl Clone for _IO_FILE {
690    fn clone(&self) -> Self { *self }
691}
692pub type __FILE = _IO_FILE;
693pub type FILE = _IO_FILE;
694#[repr(C)]
695#[derive(Copy)]
696pub struct __mbstate_t {
697    pub __count: ::std::os::raw::c_int,
698    pub __value: __mbstate_t__bindgen_ty_1,
699}
700#[repr(C)]
701#[derive(Copy)]
702pub union __mbstate_t__bindgen_ty_1 {
703    pub __wch: ::std::os::raw::c_uint,
704    pub __wchb: [::std::os::raw::c_char; 4usize],
705    _bindgen_union_align: u32,
706}
707#[test]
708fn bindgen_test_layout___mbstate_t__bindgen_ty_1() {
709    assert_eq!(::std::mem::size_of::<__mbstate_t__bindgen_ty_1>() , 4usize ,
710               concat ! (
711               "Size of: " , stringify ! ( __mbstate_t__bindgen_ty_1 ) ));
712    assert_eq! (::std::mem::align_of::<__mbstate_t__bindgen_ty_1>() , 4usize ,
713                concat ! (
714                "Alignment of " , stringify ! ( __mbstate_t__bindgen_ty_1 )
715                ));
716    assert_eq! (unsafe {
717                & ( * ( 0 as * const __mbstate_t__bindgen_ty_1 ) ) . __wch as
718                * const _ as usize } , 0usize , concat ! (
719                "Alignment of field: " , stringify ! (
720                __mbstate_t__bindgen_ty_1 ) , "::" , stringify ! ( __wch ) ));
721    assert_eq! (unsafe {
722                & ( * ( 0 as * const __mbstate_t__bindgen_ty_1 ) ) . __wchb as
723                * const _ as usize } , 0usize , concat ! (
724                "Alignment of field: " , stringify ! (
725                __mbstate_t__bindgen_ty_1 ) , "::" , stringify ! ( __wchb )
726                ));
727}
728impl Clone for __mbstate_t__bindgen_ty_1 {
729    fn clone(&self) -> Self { *self }
730}
731#[test]
732fn bindgen_test_layout___mbstate_t() {
733    assert_eq!(::std::mem::size_of::<__mbstate_t>() , 8usize , concat ! (
734               "Size of: " , stringify ! ( __mbstate_t ) ));
735    assert_eq! (::std::mem::align_of::<__mbstate_t>() , 4usize , concat ! (
736                "Alignment of " , stringify ! ( __mbstate_t ) ));
737    assert_eq! (unsafe {
738                & ( * ( 0 as * const __mbstate_t ) ) . __count as * const _ as
739                usize } , 0usize , concat ! (
740                "Alignment of field: " , stringify ! ( __mbstate_t ) , "::" ,
741                stringify ! ( __count ) ));
742    assert_eq! (unsafe {
743                & ( * ( 0 as * const __mbstate_t ) ) . __value as * const _ as
744                usize } , 4usize , concat ! (
745                "Alignment of field: " , stringify ! ( __mbstate_t ) , "::" ,
746                stringify ! ( __value ) ));
747}
748impl Clone for __mbstate_t {
749    fn clone(&self) -> Self { *self }
750}
751#[repr(C)]
752#[derive(Copy)]
753pub struct _G_fpos_t {
754    pub __pos: __off_t,
755    pub __state: __mbstate_t,
756}
757#[test]
758fn bindgen_test_layout__G_fpos_t() {
759    assert_eq!(::std::mem::size_of::<_G_fpos_t>() , 16usize , concat ! (
760               "Size of: " , stringify ! ( _G_fpos_t ) ));
761    assert_eq! (::std::mem::align_of::<_G_fpos_t>() , 8usize , concat ! (
762                "Alignment of " , stringify ! ( _G_fpos_t ) ));
763    assert_eq! (unsafe {
764                & ( * ( 0 as * const _G_fpos_t ) ) . __pos as * const _ as
765                usize } , 0usize , concat ! (
766                "Alignment of field: " , stringify ! ( _G_fpos_t ) , "::" ,
767                stringify ! ( __pos ) ));
768    assert_eq! (unsafe {
769                & ( * ( 0 as * const _G_fpos_t ) ) . __state as * const _ as
770                usize } , 8usize , concat ! (
771                "Alignment of field: " , stringify ! ( _G_fpos_t ) , "::" ,
772                stringify ! ( __state ) ));
773}
774impl Clone for _G_fpos_t {
775    fn clone(&self) -> Self { *self }
776}
777#[repr(C)]
778#[derive(Copy)]
779pub struct _G_fpos64_t {
780    pub __pos: __off64_t,
781    pub __state: __mbstate_t,
782}
783#[test]
784fn bindgen_test_layout__G_fpos64_t() {
785    assert_eq!(::std::mem::size_of::<_G_fpos64_t>() , 16usize , concat ! (
786               "Size of: " , stringify ! ( _G_fpos64_t ) ));
787    assert_eq! (::std::mem::align_of::<_G_fpos64_t>() , 8usize , concat ! (
788                "Alignment of " , stringify ! ( _G_fpos64_t ) ));
789    assert_eq! (unsafe {
790                & ( * ( 0 as * const _G_fpos64_t ) ) . __pos as * const _ as
791                usize } , 0usize , concat ! (
792                "Alignment of field: " , stringify ! ( _G_fpos64_t ) , "::" ,
793                stringify ! ( __pos ) ));
794    assert_eq! (unsafe {
795                & ( * ( 0 as * const _G_fpos64_t ) ) . __state as * const _ as
796                usize } , 8usize , concat ! (
797                "Alignment of field: " , stringify ! ( _G_fpos64_t ) , "::" ,
798                stringify ! ( __state ) ));
799}
800impl Clone for _G_fpos64_t {
801    fn clone(&self) -> Self { *self }
802}
803pub type va_list = __builtin_va_list;
804pub type __gnuc_va_list = __builtin_va_list;
805#[repr(C)]
806#[derive(Debug, Copy, Clone)]
807pub struct _IO_jump_t {
808    _unused: [u8; 0],
809}
810pub type _IO_lock_t = ::std::os::raw::c_void;
811#[repr(C)]
812#[derive(Debug, Copy)]
813pub struct _IO_marker {
814    pub _next: *mut _IO_marker,
815    pub _sbuf: *mut _IO_FILE,
816    pub _pos: ::std::os::raw::c_int,
817}
818#[test]
819fn bindgen_test_layout__IO_marker() {
820    assert_eq!(::std::mem::size_of::<_IO_marker>() , 24usize , concat ! (
821               "Size of: " , stringify ! ( _IO_marker ) ));
822    assert_eq! (::std::mem::align_of::<_IO_marker>() , 8usize , concat ! (
823                "Alignment of " , stringify ! ( _IO_marker ) ));
824    assert_eq! (unsafe {
825                & ( * ( 0 as * const _IO_marker ) ) . _next as * const _ as
826                usize } , 0usize , concat ! (
827                "Alignment of field: " , stringify ! ( _IO_marker ) , "::" ,
828                stringify ! ( _next ) ));
829    assert_eq! (unsafe {
830                & ( * ( 0 as * const _IO_marker ) ) . _sbuf as * const _ as
831                usize } , 8usize , concat ! (
832                "Alignment of field: " , stringify ! ( _IO_marker ) , "::" ,
833                stringify ! ( _sbuf ) ));
834    assert_eq! (unsafe {
835                & ( * ( 0 as * const _IO_marker ) ) . _pos as * const _ as
836                usize } , 16usize , concat ! (
837                "Alignment of field: " , stringify ! ( _IO_marker ) , "::" ,
838                stringify ! ( _pos ) ));
839}
840impl Clone for _IO_marker {
841    fn clone(&self) -> Self { *self }
842}
843#[repr(u32)]
844#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
845pub enum __codecvt_result {
846    __codecvt_ok = 0,
847    __codecvt_partial = 1,
848    __codecvt_error = 2,
849    __codecvt_noconv = 3,
850}
851#[repr(C)]
852#[derive(Debug, Copy, Clone)]
853pub struct _IO_FILE_plus {
854    _unused: [u8; 0],
855}
856extern "C" {
857    #[link_name = "_IO_2_1_stdin_"]
858    pub static mut _IO_2_1_stdin_: _IO_FILE_plus;
859}
860extern "C" {
861    #[link_name = "_IO_2_1_stdout_"]
862    pub static mut _IO_2_1_stdout_: _IO_FILE_plus;
863}
864extern "C" {
865    #[link_name = "_IO_2_1_stderr_"]
866    pub static mut _IO_2_1_stderr_: _IO_FILE_plus;
867}
868pub type __io_read_fn =
869    ::std::option::Option<unsafe extern "C" fn(__cookie:
870                                                   *mut ::std::os::raw::c_void,
871                                               __buf:
872                                                   *mut ::std::os::raw::c_char,
873                                               __nbytes: usize) -> __ssize_t>;
874pub type __io_write_fn =
875    ::std::option::Option<unsafe extern "C" fn(__cookie:
876                                                   *mut ::std::os::raw::c_void,
877                                               __buf:
878                                                   *const ::std::os::raw::c_char,
879                                               __n: usize) -> __ssize_t>;
880pub type __io_seek_fn =
881    ::std::option::Option<unsafe extern "C" fn(__cookie:
882                                                   *mut ::std::os::raw::c_void,
883                                               __pos: *mut __off64_t,
884                                               __w: ::std::os::raw::c_int)
885                              -> ::std::os::raw::c_int>;
886pub type __io_close_fn =
887    ::std::option::Option<unsafe extern "C" fn(__cookie:
888                                                   *mut ::std::os::raw::c_void)
889                              -> ::std::os::raw::c_int>;
890extern "C" {
891    pub fn __underflow(arg1: *mut _IO_FILE) -> ::std::os::raw::c_int;
892}
893extern "C" {
894    pub fn __uflow(arg1: *mut _IO_FILE) -> ::std::os::raw::c_int;
895}
896extern "C" {
897    pub fn __overflow(arg1: *mut _IO_FILE, arg2: ::std::os::raw::c_int)
898     -> ::std::os::raw::c_int;
899}
900extern "C" {
901    pub fn _IO_getc(__fp: *mut _IO_FILE) -> ::std::os::raw::c_int;
902}
903extern "C" {
904    pub fn _IO_putc(__c: ::std::os::raw::c_int, __fp: *mut _IO_FILE)
905     -> ::std::os::raw::c_int;
906}
907extern "C" {
908    pub fn _IO_feof(__fp: *mut _IO_FILE) -> ::std::os::raw::c_int;
909}
910extern "C" {
911    pub fn _IO_ferror(__fp: *mut _IO_FILE) -> ::std::os::raw::c_int;
912}
913extern "C" {
914    pub fn _IO_peekc_locked(__fp: *mut _IO_FILE) -> ::std::os::raw::c_int;
915}
916extern "C" {
917    pub fn _IO_flockfile(arg1: *mut _IO_FILE);
918}
919extern "C" {
920    pub fn _IO_funlockfile(arg1: *mut _IO_FILE);
921}
922extern "C" {
923    pub fn _IO_ftrylockfile(arg1: *mut _IO_FILE) -> ::std::os::raw::c_int;
924}
925extern "C" {
926    pub fn _IO_vfscanf(arg1: *mut _IO_FILE,
927                       arg2: *const ::std::os::raw::c_char,
928                       arg3: *mut __va_list_tag,
929                       arg4: *mut ::std::os::raw::c_int)
930     -> ::std::os::raw::c_int;
931}
932extern "C" {
933    pub fn _IO_vfprintf(arg1: *mut _IO_FILE,
934                        arg2: *const ::std::os::raw::c_char,
935                        arg3: *mut __va_list_tag) -> ::std::os::raw::c_int;
936}
937extern "C" {
938    pub fn _IO_padn(arg1: *mut _IO_FILE, arg2: ::std::os::raw::c_int,
939                    arg3: __ssize_t) -> __ssize_t;
940}
941extern "C" {
942    pub fn _IO_sgetn(arg1: *mut _IO_FILE, arg2: *mut ::std::os::raw::c_void,
943                     arg3: usize) -> usize;
944}
945extern "C" {
946    pub fn _IO_seekoff(arg1: *mut _IO_FILE, arg2: __off64_t,
947                       arg3: ::std::os::raw::c_int,
948                       arg4: ::std::os::raw::c_int) -> __off64_t;
949}
950extern "C" {
951    pub fn _IO_seekpos(arg1: *mut _IO_FILE, arg2: __off64_t,
952                       arg3: ::std::os::raw::c_int) -> __off64_t;
953}
954extern "C" {
955    pub fn _IO_free_backup_area(arg1: *mut _IO_FILE);
956}
957pub type off_t = __off_t;
958pub type fpos_t = _G_fpos_t;
959extern "C" {
960    #[link_name = "stdin"]
961    pub static mut stdin: *mut _IO_FILE;
962}
963extern "C" {
964    #[link_name = "stdout"]
965    pub static mut stdout: *mut _IO_FILE;
966}
967extern "C" {
968    #[link_name = "stderr"]
969    pub static mut stderr: *mut _IO_FILE;
970}
971extern "C" {
972    pub fn remove(__filename: *const ::std::os::raw::c_char)
973     -> ::std::os::raw::c_int;
974}
975extern "C" {
976    pub fn rename(__old: *const ::std::os::raw::c_char,
977                  __new: *const ::std::os::raw::c_char)
978     -> ::std::os::raw::c_int;
979}
980extern "C" {
981    pub fn renameat(__oldfd: ::std::os::raw::c_int,
982                    __old: *const ::std::os::raw::c_char,
983                    __newfd: ::std::os::raw::c_int,
984                    __new: *const ::std::os::raw::c_char)
985     -> ::std::os::raw::c_int;
986}
987extern "C" {
988    pub fn tmpfile() -> *mut FILE;
989}
990extern "C" {
991    pub fn tmpnam(__s: *mut ::std::os::raw::c_char)
992     -> *mut ::std::os::raw::c_char;
993}
994extern "C" {
995    pub fn tmpnam_r(__s: *mut ::std::os::raw::c_char)
996     -> *mut ::std::os::raw::c_char;
997}
998extern "C" {
999    pub fn tempnam(__dir: *const ::std::os::raw::c_char,
1000                   __pfx: *const ::std::os::raw::c_char)
1001     -> *mut ::std::os::raw::c_char;
1002}
1003extern "C" {
1004    pub fn fclose(__stream: *mut FILE) -> ::std::os::raw::c_int;
1005}
1006extern "C" {
1007    pub fn fflush(__stream: *mut FILE) -> ::std::os::raw::c_int;
1008}
1009extern "C" {
1010    pub fn fflush_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
1011}
1012extern "C" {
1013    pub fn fopen(__filename: *const ::std::os::raw::c_char,
1014                 __modes: *const ::std::os::raw::c_char) -> *mut FILE;
1015}
1016extern "C" {
1017    pub fn freopen(__filename: *const ::std::os::raw::c_char,
1018                   __modes: *const ::std::os::raw::c_char,
1019                   __stream: *mut FILE) -> *mut FILE;
1020}
1021extern "C" {
1022    pub fn fdopen(__fd: ::std::os::raw::c_int,
1023                  __modes: *const ::std::os::raw::c_char) -> *mut FILE;
1024}
1025extern "C" {
1026    pub fn fmemopen(__s: *mut ::std::os::raw::c_void, __len: usize,
1027                    __modes: *const ::std::os::raw::c_char) -> *mut FILE;
1028}
1029extern "C" {
1030    pub fn open_memstream(__bufloc: *mut *mut ::std::os::raw::c_char,
1031                          __sizeloc: *mut usize) -> *mut FILE;
1032}
1033extern "C" {
1034    pub fn setbuf(__stream: *mut FILE, __buf: *mut ::std::os::raw::c_char);
1035}
1036extern "C" {
1037    pub fn setvbuf(__stream: *mut FILE, __buf: *mut ::std::os::raw::c_char,
1038                   __modes: ::std::os::raw::c_int, __n: usize)
1039     -> ::std::os::raw::c_int;
1040}
1041extern "C" {
1042    pub fn setbuffer(__stream: *mut FILE, __buf: *mut ::std::os::raw::c_char,
1043                     __size: usize);
1044}
1045extern "C" {
1046    pub fn setlinebuf(__stream: *mut FILE);
1047}
1048extern "C" {
1049    pub fn fprintf(__stream: *mut FILE,
1050                   __format: *const ::std::os::raw::c_char, ...)
1051     -> ::std::os::raw::c_int;
1052}
1053extern "C" {
1054    pub fn printf(__format: *const ::std::os::raw::c_char, ...)
1055     -> ::std::os::raw::c_int;
1056}
1057extern "C" {
1058    pub fn sprintf(__s: *mut ::std::os::raw::c_char,
1059                   __format: *const ::std::os::raw::c_char, ...)
1060     -> ::std::os::raw::c_int;
1061}
1062extern "C" {
1063    pub fn vfprintf(__s: *mut FILE, __format: *const ::std::os::raw::c_char,
1064                    __arg: *mut __va_list_tag) -> ::std::os::raw::c_int;
1065}
1066extern "C" {
1067    pub fn vprintf(__format: *const ::std::os::raw::c_char,
1068                   __arg: *mut __va_list_tag) -> ::std::os::raw::c_int;
1069}
1070extern "C" {
1071    pub fn vsprintf(__s: *mut ::std::os::raw::c_char,
1072                    __format: *const ::std::os::raw::c_char,
1073                    __arg: *mut __va_list_tag) -> ::std::os::raw::c_int;
1074}
1075extern "C" {
1076    pub fn snprintf(__s: *mut ::std::os::raw::c_char, __maxlen: usize,
1077                    __format: *const ::std::os::raw::c_char, ...)
1078     -> ::std::os::raw::c_int;
1079}
1080extern "C" {
1081    pub fn vsnprintf(__s: *mut ::std::os::raw::c_char, __maxlen: usize,
1082                     __format: *const ::std::os::raw::c_char,
1083                     __arg: *mut __va_list_tag) -> ::std::os::raw::c_int;
1084}
1085extern "C" {
1086    pub fn vdprintf(__fd: ::std::os::raw::c_int,
1087                    __fmt: *const ::std::os::raw::c_char,
1088                    __arg: *mut __va_list_tag) -> ::std::os::raw::c_int;
1089}
1090extern "C" {
1091    pub fn dprintf(__fd: ::std::os::raw::c_int,
1092                   __fmt: *const ::std::os::raw::c_char, ...)
1093     -> ::std::os::raw::c_int;
1094}
1095extern "C" {
1096    pub fn fscanf(__stream: *mut FILE,
1097                  __format: *const ::std::os::raw::c_char, ...)
1098     -> ::std::os::raw::c_int;
1099}
1100extern "C" {
1101    pub fn scanf(__format: *const ::std::os::raw::c_char, ...)
1102     -> ::std::os::raw::c_int;
1103}
1104extern "C" {
1105    pub fn sscanf(__s: *const ::std::os::raw::c_char,
1106                  __format: *const ::std::os::raw::c_char, ...)
1107     -> ::std::os::raw::c_int;
1108}
1109extern "C" {
1110    #[link_name = "__isoc99_fscanf"]
1111    pub fn fscanf1(__stream: *mut FILE,
1112                   __format: *const ::std::os::raw::c_char, ...)
1113     -> ::std::os::raw::c_int;
1114}
1115extern "C" {
1116    #[link_name = "__isoc99_scanf"]
1117    pub fn scanf1(__format: *const ::std::os::raw::c_char, ...)
1118     -> ::std::os::raw::c_int;
1119}
1120extern "C" {
1121    #[link_name = "__isoc99_sscanf"]
1122    pub fn sscanf1(__s: *const ::std::os::raw::c_char,
1123                   __format: *const ::std::os::raw::c_char, ...)
1124     -> ::std::os::raw::c_int;
1125}
1126extern "C" {
1127    pub fn vfscanf(__s: *mut FILE, __format: *const ::std::os::raw::c_char,
1128                   __arg: *mut __va_list_tag) -> ::std::os::raw::c_int;
1129}
1130extern "C" {
1131    pub fn vscanf(__format: *const ::std::os::raw::c_char,
1132                  __arg: *mut __va_list_tag) -> ::std::os::raw::c_int;
1133}
1134extern "C" {
1135    pub fn vsscanf(__s: *const ::std::os::raw::c_char,
1136                   __format: *const ::std::os::raw::c_char,
1137                   __arg: *mut __va_list_tag) -> ::std::os::raw::c_int;
1138}
1139extern "C" {
1140    #[link_name = "__isoc99_vfscanf"]
1141    pub fn vfscanf1(__s: *mut FILE, __format: *const ::std::os::raw::c_char,
1142                    __arg: *mut __va_list_tag) -> ::std::os::raw::c_int;
1143}
1144extern "C" {
1145    #[link_name = "__isoc99_vscanf"]
1146    pub fn vscanf1(__format: *const ::std::os::raw::c_char,
1147                   __arg: *mut __va_list_tag) -> ::std::os::raw::c_int;
1148}
1149extern "C" {
1150    #[link_name = "__isoc99_vsscanf"]
1151    pub fn vsscanf1(__s: *const ::std::os::raw::c_char,
1152                    __format: *const ::std::os::raw::c_char,
1153                    __arg: *mut __va_list_tag) -> ::std::os::raw::c_int;
1154}
1155extern "C" {
1156    pub fn fgetc(__stream: *mut FILE) -> ::std::os::raw::c_int;
1157}
1158extern "C" {
1159    pub fn getc(__stream: *mut FILE) -> ::std::os::raw::c_int;
1160}
1161extern "C" {
1162    pub fn getchar() -> ::std::os::raw::c_int;
1163}
1164extern "C" {
1165    pub fn getc_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
1166}
1167extern "C" {
1168    pub fn getchar_unlocked() -> ::std::os::raw::c_int;
1169}
1170extern "C" {
1171    pub fn fgetc_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
1172}
1173extern "C" {
1174    pub fn fputc(__c: ::std::os::raw::c_int, __stream: *mut FILE)
1175     -> ::std::os::raw::c_int;
1176}
1177extern "C" {
1178    pub fn putc(__c: ::std::os::raw::c_int, __stream: *mut FILE)
1179     -> ::std::os::raw::c_int;
1180}
1181extern "C" {
1182    pub fn putchar(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
1183}
1184extern "C" {
1185    pub fn fputc_unlocked(__c: ::std::os::raw::c_int, __stream: *mut FILE)
1186     -> ::std::os::raw::c_int;
1187}
1188extern "C" {
1189    pub fn putc_unlocked(__c: ::std::os::raw::c_int, __stream: *mut FILE)
1190     -> ::std::os::raw::c_int;
1191}
1192extern "C" {
1193    pub fn putchar_unlocked(__c: ::std::os::raw::c_int)
1194     -> ::std::os::raw::c_int;
1195}
1196extern "C" {
1197    pub fn getw(__stream: *mut FILE) -> ::std::os::raw::c_int;
1198}
1199extern "C" {
1200    pub fn putw(__w: ::std::os::raw::c_int, __stream: *mut FILE)
1201     -> ::std::os::raw::c_int;
1202}
1203extern "C" {
1204    pub fn fgets(__s: *mut ::std::os::raw::c_char, __n: ::std::os::raw::c_int,
1205                 __stream: *mut FILE) -> *mut ::std::os::raw::c_char;
1206}
1207extern "C" {
1208    pub fn __getdelim(__lineptr: *mut *mut ::std::os::raw::c_char,
1209                      __n: *mut usize, __delimiter: ::std::os::raw::c_int,
1210                      __stream: *mut FILE) -> __ssize_t;
1211}
1212extern "C" {
1213    pub fn getdelim(__lineptr: *mut *mut ::std::os::raw::c_char,
1214                    __n: *mut usize, __delimiter: ::std::os::raw::c_int,
1215                    __stream: *mut FILE) -> __ssize_t;
1216}
1217extern "C" {
1218    pub fn getline(__lineptr: *mut *mut ::std::os::raw::c_char,
1219                   __n: *mut usize, __stream: *mut FILE) -> __ssize_t;
1220}
1221extern "C" {
1222    pub fn fputs(__s: *const ::std::os::raw::c_char, __stream: *mut FILE)
1223     -> ::std::os::raw::c_int;
1224}
1225extern "C" {
1226    pub fn puts(__s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
1227}
1228extern "C" {
1229    pub fn ungetc(__c: ::std::os::raw::c_int, __stream: *mut FILE)
1230     -> ::std::os::raw::c_int;
1231}
1232extern "C" {
1233    pub fn fread(__ptr: *mut ::std::os::raw::c_void, __size: usize,
1234                 __n: usize, __stream: *mut FILE) -> usize;
1235}
1236extern "C" {
1237    pub fn fwrite(__ptr: *const ::std::os::raw::c_void, __size: usize,
1238                  __n: usize, __s: *mut FILE) -> usize;
1239}
1240extern "C" {
1241    pub fn fread_unlocked(__ptr: *mut ::std::os::raw::c_void, __size: usize,
1242                          __n: usize, __stream: *mut FILE) -> usize;
1243}
1244extern "C" {
1245    pub fn fwrite_unlocked(__ptr: *const ::std::os::raw::c_void,
1246                           __size: usize, __n: usize, __stream: *mut FILE)
1247     -> usize;
1248}
1249extern "C" {
1250    pub fn fseek(__stream: *mut FILE, __off: ::std::os::raw::c_long,
1251                 __whence: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
1252}
1253extern "C" {
1254    pub fn ftell(__stream: *mut FILE) -> ::std::os::raw::c_long;
1255}
1256extern "C" {
1257    pub fn rewind(__stream: *mut FILE);
1258}
1259extern "C" {
1260    pub fn fseeko(__stream: *mut FILE, __off: __off_t,
1261                  __whence: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
1262}
1263extern "C" {
1264    pub fn ftello(__stream: *mut FILE) -> __off_t;
1265}
1266extern "C" {
1267    pub fn fgetpos(__stream: *mut FILE, __pos: *mut fpos_t)
1268     -> ::std::os::raw::c_int;
1269}
1270extern "C" {
1271    pub fn fsetpos(__stream: *mut FILE, __pos: *const fpos_t)
1272     -> ::std::os::raw::c_int;
1273}
1274extern "C" {
1275    pub fn clearerr(__stream: *mut FILE);
1276}
1277extern "C" {
1278    pub fn feof(__stream: *mut FILE) -> ::std::os::raw::c_int;
1279}
1280extern "C" {
1281    pub fn ferror(__stream: *mut FILE) -> ::std::os::raw::c_int;
1282}
1283extern "C" {
1284    pub fn clearerr_unlocked(__stream: *mut FILE);
1285}
1286extern "C" {
1287    pub fn feof_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
1288}
1289extern "C" {
1290    pub fn ferror_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
1291}
1292extern "C" {
1293    pub fn perror(__s: *const ::std::os::raw::c_char);
1294}
1295extern "C" {
1296    #[link_name = "sys_nerr"]
1297    pub static mut sys_nerr: ::std::os::raw::c_int;
1298}
1299extern "C" {
1300    #[link_name = "sys_errlist"]
1301    pub static mut sys_errlist: [*const ::std::os::raw::c_char; 0usize];
1302}
1303extern "C" {
1304    pub fn fileno(__stream: *mut FILE) -> ::std::os::raw::c_int;
1305}
1306extern "C" {
1307    pub fn fileno_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
1308}
1309extern "C" {
1310    pub fn popen(__command: *const ::std::os::raw::c_char,
1311                 __modes: *const ::std::os::raw::c_char) -> *mut FILE;
1312}
1313extern "C" {
1314    pub fn pclose(__stream: *mut FILE) -> ::std::os::raw::c_int;
1315}
1316extern "C" {
1317    pub fn ctermid(__s: *mut ::std::os::raw::c_char)
1318     -> *mut ::std::os::raw::c_char;
1319}
1320extern "C" {
1321    pub fn flockfile(__stream: *mut FILE);
1322}
1323extern "C" {
1324    pub fn ftrylockfile(__stream: *mut FILE) -> ::std::os::raw::c_int;
1325}
1326extern "C" {
1327    pub fn funlockfile(__stream: *mut FILE);
1328}
1329extern "C" {
1330    pub fn memcpy(__dest: *mut ::std::os::raw::c_void,
1331                  __src: *const ::std::os::raw::c_void, __n: usize)
1332     -> *mut ::std::os::raw::c_void;
1333}
1334extern "C" {
1335    pub fn memmove(__dest: *mut ::std::os::raw::c_void,
1336                   __src: *const ::std::os::raw::c_void, __n: usize)
1337     -> *mut ::std::os::raw::c_void;
1338}
1339extern "C" {
1340    pub fn memccpy(__dest: *mut ::std::os::raw::c_void,
1341                   __src: *const ::std::os::raw::c_void,
1342                   __c: ::std::os::raw::c_int, __n: usize)
1343     -> *mut ::std::os::raw::c_void;
1344}
1345extern "C" {
1346    pub fn memset(__s: *mut ::std::os::raw::c_void,
1347                  __c: ::std::os::raw::c_int, __n: usize)
1348     -> *mut ::std::os::raw::c_void;
1349}
1350extern "C" {
1351    pub fn memcmp(__s1: *const ::std::os::raw::c_void,
1352                  __s2: *const ::std::os::raw::c_void, __n: usize)
1353     -> ::std::os::raw::c_int;
1354}
1355extern "C" {
1356    pub fn memchr(__s: *const ::std::os::raw::c_void,
1357                  __c: ::std::os::raw::c_int, __n: usize)
1358     -> *mut ::std::os::raw::c_void;
1359}
1360extern "C" {
1361    pub fn strcpy(__dest: *mut ::std::os::raw::c_char,
1362                  __src: *const ::std::os::raw::c_char)
1363     -> *mut ::std::os::raw::c_char;
1364}
1365extern "C" {
1366    pub fn strncpy(__dest: *mut ::std::os::raw::c_char,
1367                   __src: *const ::std::os::raw::c_char, __n: usize)
1368     -> *mut ::std::os::raw::c_char;
1369}
1370extern "C" {
1371    pub fn strcat(__dest: *mut ::std::os::raw::c_char,
1372                  __src: *const ::std::os::raw::c_char)
1373     -> *mut ::std::os::raw::c_char;
1374}
1375extern "C" {
1376    pub fn strncat(__dest: *mut ::std::os::raw::c_char,
1377                   __src: *const ::std::os::raw::c_char, __n: usize)
1378     -> *mut ::std::os::raw::c_char;
1379}
1380extern "C" {
1381    pub fn strcmp(__s1: *const ::std::os::raw::c_char,
1382                  __s2: *const ::std::os::raw::c_char)
1383     -> ::std::os::raw::c_int;
1384}
1385extern "C" {
1386    pub fn strncmp(__s1: *const ::std::os::raw::c_char,
1387                   __s2: *const ::std::os::raw::c_char, __n: usize)
1388     -> ::std::os::raw::c_int;
1389}
1390extern "C" {
1391    pub fn strcoll(__s1: *const ::std::os::raw::c_char,
1392                   __s2: *const ::std::os::raw::c_char)
1393     -> ::std::os::raw::c_int;
1394}
1395extern "C" {
1396    pub fn strxfrm(__dest: *mut ::std::os::raw::c_char,
1397                   __src: *const ::std::os::raw::c_char, __n: usize)
1398     -> ::std::os::raw::c_ulong;
1399}
1400#[repr(C)]
1401#[derive(Debug, Copy)]
1402pub struct __locale_struct {
1403    pub __locales: [*mut __locale_data; 13usize],
1404    pub __ctype_b: *const ::std::os::raw::c_ushort,
1405    pub __ctype_tolower: *const ::std::os::raw::c_int,
1406    pub __ctype_toupper: *const ::std::os::raw::c_int,
1407    pub __names: [*const ::std::os::raw::c_char; 13usize],
1408}
1409#[test]
1410fn bindgen_test_layout___locale_struct() {
1411    assert_eq!(::std::mem::size_of::<__locale_struct>() , 232usize , concat !
1412               ( "Size of: " , stringify ! ( __locale_struct ) ));
1413    assert_eq! (::std::mem::align_of::<__locale_struct>() , 8usize , concat !
1414                ( "Alignment of " , stringify ! ( __locale_struct ) ));
1415    assert_eq! (unsafe {
1416                & ( * ( 0 as * const __locale_struct ) ) . __locales as *
1417                const _ as usize } , 0usize , concat ! (
1418                "Alignment of field: " , stringify ! ( __locale_struct ) ,
1419                "::" , stringify ! ( __locales ) ));
1420    assert_eq! (unsafe {
1421                & ( * ( 0 as * const __locale_struct ) ) . __ctype_b as *
1422                const _ as usize } , 104usize , concat ! (
1423                "Alignment of field: " , stringify ! ( __locale_struct ) ,
1424                "::" , stringify ! ( __ctype_b ) ));
1425    assert_eq! (unsafe {
1426                & ( * ( 0 as * const __locale_struct ) ) . __ctype_tolower as
1427                * const _ as usize } , 112usize , concat ! (
1428                "Alignment of field: " , stringify ! ( __locale_struct ) ,
1429                "::" , stringify ! ( __ctype_tolower ) ));
1430    assert_eq! (unsafe {
1431                & ( * ( 0 as * const __locale_struct ) ) . __ctype_toupper as
1432                * const _ as usize } , 120usize , concat ! (
1433                "Alignment of field: " , stringify ! ( __locale_struct ) ,
1434                "::" , stringify ! ( __ctype_toupper ) ));
1435    assert_eq! (unsafe {
1436                & ( * ( 0 as * const __locale_struct ) ) . __names as * const
1437                _ as usize } , 128usize , concat ! (
1438                "Alignment of field: " , stringify ! ( __locale_struct ) ,
1439                "::" , stringify ! ( __names ) ));
1440}
1441impl Clone for __locale_struct {
1442    fn clone(&self) -> Self { *self }
1443}
1444pub type __locale_t = *mut __locale_struct;
1445pub type locale_t = __locale_t;
1446extern "C" {
1447    pub fn strcoll_l(__s1: *const ::std::os::raw::c_char,
1448                     __s2: *const ::std::os::raw::c_char, __l: locale_t)
1449     -> ::std::os::raw::c_int;
1450}
1451extern "C" {
1452    pub fn strxfrm_l(__dest: *mut ::std::os::raw::c_char,
1453                     __src: *const ::std::os::raw::c_char, __n: usize,
1454                     __l: locale_t) -> usize;
1455}
1456extern "C" {
1457    pub fn strdup(__s: *const ::std::os::raw::c_char)
1458     -> *mut ::std::os::raw::c_char;
1459}
1460extern "C" {
1461    pub fn strndup(__string: *const ::std::os::raw::c_char, __n: usize)
1462     -> *mut ::std::os::raw::c_char;
1463}
1464extern "C" {
1465    pub fn strchr(__s: *const ::std::os::raw::c_char,
1466                  __c: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char;
1467}
1468extern "C" {
1469    pub fn strrchr(__s: *const ::std::os::raw::c_char,
1470                   __c: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char;
1471}
1472extern "C" {
1473    pub fn strcspn(__s: *const ::std::os::raw::c_char,
1474                   __reject: *const ::std::os::raw::c_char)
1475     -> ::std::os::raw::c_ulong;
1476}
1477extern "C" {
1478    pub fn strspn(__s: *const ::std::os::raw::c_char,
1479                  __accept: *const ::std::os::raw::c_char)
1480     -> ::std::os::raw::c_ulong;
1481}
1482extern "C" {
1483    pub fn strpbrk(__s: *const ::std::os::raw::c_char,
1484                   __accept: *const ::std::os::raw::c_char)
1485     -> *mut ::std::os::raw::c_char;
1486}
1487extern "C" {
1488    pub fn strstr(__haystack: *const ::std::os::raw::c_char,
1489                  __needle: *const ::std::os::raw::c_char)
1490     -> *mut ::std::os::raw::c_char;
1491}
1492extern "C" {
1493    pub fn strtok(__s: *mut ::std::os::raw::c_char,
1494                  __delim: *const ::std::os::raw::c_char)
1495     -> *mut ::std::os::raw::c_char;
1496}
1497extern "C" {
1498    pub fn __strtok_r(__s: *mut ::std::os::raw::c_char,
1499                      __delim: *const ::std::os::raw::c_char,
1500                      __save_ptr: *mut *mut ::std::os::raw::c_char)
1501     -> *mut ::std::os::raw::c_char;
1502}
1503extern "C" {
1504    pub fn strtok_r(__s: *mut ::std::os::raw::c_char,
1505                    __delim: *const ::std::os::raw::c_char,
1506                    __save_ptr: *mut *mut ::std::os::raw::c_char)
1507     -> *mut ::std::os::raw::c_char;
1508}
1509extern "C" {
1510    pub fn strlen(__s: *const ::std::os::raw::c_char)
1511     -> ::std::os::raw::c_ulong;
1512}
1513extern "C" {
1514    pub fn strnlen(__string: *const ::std::os::raw::c_char, __maxlen: usize)
1515     -> usize;
1516}
1517extern "C" {
1518    pub fn strerror(__errnum: ::std::os::raw::c_int)
1519     -> *mut ::std::os::raw::c_char;
1520}
1521extern "C" {
1522    #[link_name = "__xpg_strerror_r"]
1523    pub fn strerror_r(__errnum: ::std::os::raw::c_int,
1524                      __buf: *mut ::std::os::raw::c_char, __buflen: usize)
1525     -> ::std::os::raw::c_int;
1526}
1527extern "C" {
1528    pub fn strerror_l(__errnum: ::std::os::raw::c_int, __l: locale_t)
1529     -> *mut ::std::os::raw::c_char;
1530}
1531extern "C" {
1532    pub fn bcmp(__s1: *const ::std::os::raw::c_void,
1533                __s2: *const ::std::os::raw::c_void, __n: usize)
1534     -> ::std::os::raw::c_int;
1535}
1536extern "C" {
1537    pub fn bcopy(__src: *const ::std::os::raw::c_void,
1538                 __dest: *mut ::std::os::raw::c_void, __n: usize);
1539}
1540extern "C" {
1541    pub fn bzero(__s: *mut ::std::os::raw::c_void, __n: usize);
1542}
1543extern "C" {
1544    pub fn index(__s: *const ::std::os::raw::c_char,
1545                 __c: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char;
1546}
1547extern "C" {
1548    pub fn rindex(__s: *const ::std::os::raw::c_char,
1549                  __c: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char;
1550}
1551extern "C" {
1552    pub fn ffs(__i: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
1553}
1554extern "C" {
1555    pub fn strcasecmp(__s1: *const ::std::os::raw::c_char,
1556                      __s2: *const ::std::os::raw::c_char)
1557     -> ::std::os::raw::c_int;
1558}
1559extern "C" {
1560    pub fn strncasecmp(__s1: *const ::std::os::raw::c_char,
1561                       __s2: *const ::std::os::raw::c_char, __n: usize)
1562     -> ::std::os::raw::c_int;
1563}
1564extern "C" {
1565    pub fn strcasecmp_l(__s1: *const ::std::os::raw::c_char,
1566                        __s2: *const ::std::os::raw::c_char, __loc: locale_t)
1567     -> ::std::os::raw::c_int;
1568}
1569extern "C" {
1570    pub fn strncasecmp_l(__s1: *const ::std::os::raw::c_char,
1571                         __s2: *const ::std::os::raw::c_char, __n: usize,
1572                         __loc: locale_t) -> ::std::os::raw::c_int;
1573}
1574extern "C" {
1575    pub fn explicit_bzero(__s: *mut ::std::os::raw::c_void, __n: usize);
1576}
1577extern "C" {
1578    pub fn strsep(__stringp: *mut *mut ::std::os::raw::c_char,
1579                  __delim: *const ::std::os::raw::c_char)
1580     -> *mut ::std::os::raw::c_char;
1581}
1582extern "C" {
1583    pub fn strsignal(__sig: ::std::os::raw::c_int)
1584     -> *mut ::std::os::raw::c_char;
1585}
1586extern "C" {
1587    pub fn __stpcpy(__dest: *mut ::std::os::raw::c_char,
1588                    __src: *const ::std::os::raw::c_char)
1589     -> *mut ::std::os::raw::c_char;
1590}
1591extern "C" {
1592    pub fn stpcpy(__dest: *mut ::std::os::raw::c_char,
1593                  __src: *const ::std::os::raw::c_char)
1594     -> *mut ::std::os::raw::c_char;
1595}
1596extern "C" {
1597    pub fn __stpncpy(__dest: *mut ::std::os::raw::c_char,
1598                     __src: *const ::std::os::raw::c_char, __n: usize)
1599     -> *mut ::std::os::raw::c_char;
1600}
1601extern "C" {
1602    pub fn stpncpy(__dest: *mut ::std::os::raw::c_char,
1603                   __src: *const ::std::os::raw::c_char, __n: usize)
1604     -> *mut ::std::os::raw::c_char;
1605}
1606pub type wchar_t = ::std::os::raw::c_int;
1607#[repr(C)]
1608#[derive(Debug, Copy)]
1609pub struct div_t {
1610    pub quot: ::std::os::raw::c_int,
1611    pub rem: ::std::os::raw::c_int,
1612}
1613#[test]
1614fn bindgen_test_layout_div_t() {
1615    assert_eq!(::std::mem::size_of::<div_t>() , 8usize , concat ! (
1616               "Size of: " , stringify ! ( div_t ) ));
1617    assert_eq! (::std::mem::align_of::<div_t>() , 4usize , concat ! (
1618                "Alignment of " , stringify ! ( div_t ) ));
1619    assert_eq! (unsafe {
1620                & ( * ( 0 as * const div_t ) ) . quot as * const _ as usize }
1621                , 0usize , concat ! (
1622                "Alignment of field: " , stringify ! ( div_t ) , "::" ,
1623                stringify ! ( quot ) ));
1624    assert_eq! (unsafe {
1625                & ( * ( 0 as * const div_t ) ) . rem as * const _ as usize } ,
1626                4usize , concat ! (
1627                "Alignment of field: " , stringify ! ( div_t ) , "::" ,
1628                stringify ! ( rem ) ));
1629}
1630impl Clone for div_t {
1631    fn clone(&self) -> Self { *self }
1632}
1633#[repr(C)]
1634#[derive(Debug, Copy)]
1635pub struct ldiv_t {
1636    pub quot: ::std::os::raw::c_long,
1637    pub rem: ::std::os::raw::c_long,
1638}
1639#[test]
1640fn bindgen_test_layout_ldiv_t() {
1641    assert_eq!(::std::mem::size_of::<ldiv_t>() , 16usize , concat ! (
1642               "Size of: " , stringify ! ( ldiv_t ) ));
1643    assert_eq! (::std::mem::align_of::<ldiv_t>() , 8usize , concat ! (
1644                "Alignment of " , stringify ! ( ldiv_t ) ));
1645    assert_eq! (unsafe {
1646                & ( * ( 0 as * const ldiv_t ) ) . quot as * const _ as usize }
1647                , 0usize , concat ! (
1648                "Alignment of field: " , stringify ! ( ldiv_t ) , "::" ,
1649                stringify ! ( quot ) ));
1650    assert_eq! (unsafe {
1651                & ( * ( 0 as * const ldiv_t ) ) . rem as * const _ as usize }
1652                , 8usize , concat ! (
1653                "Alignment of field: " , stringify ! ( ldiv_t ) , "::" ,
1654                stringify ! ( rem ) ));
1655}
1656impl Clone for ldiv_t {
1657    fn clone(&self) -> Self { *self }
1658}
1659#[repr(C)]
1660#[derive(Debug, Copy)]
1661pub struct lldiv_t {
1662    pub quot: ::std::os::raw::c_longlong,
1663    pub rem: ::std::os::raw::c_longlong,
1664}
1665#[test]
1666fn bindgen_test_layout_lldiv_t() {
1667    assert_eq!(::std::mem::size_of::<lldiv_t>() , 16usize , concat ! (
1668               "Size of: " , stringify ! ( lldiv_t ) ));
1669    assert_eq! (::std::mem::align_of::<lldiv_t>() , 8usize , concat ! (
1670                "Alignment of " , stringify ! ( lldiv_t ) ));
1671    assert_eq! (unsafe {
1672                & ( * ( 0 as * const lldiv_t ) ) . quot as * const _ as usize
1673                } , 0usize , concat ! (
1674                "Alignment of field: " , stringify ! ( lldiv_t ) , "::" ,
1675                stringify ! ( quot ) ));
1676    assert_eq! (unsafe {
1677                & ( * ( 0 as * const lldiv_t ) ) . rem as * const _ as usize }
1678                , 8usize , concat ! (
1679                "Alignment of field: " , stringify ! ( lldiv_t ) , "::" ,
1680                stringify ! ( rem ) ));
1681}
1682impl Clone for lldiv_t {
1683    fn clone(&self) -> Self { *self }
1684}
1685extern "C" {
1686    pub fn __ctype_get_mb_cur_max() -> usize;
1687}
1688extern "C" {
1689    pub fn atof(__nptr: *const ::std::os::raw::c_char) -> f64;
1690}
1691extern "C" {
1692    pub fn atoi(__nptr: *const ::std::os::raw::c_char)
1693     -> ::std::os::raw::c_int;
1694}
1695extern "C" {
1696    pub fn atol(__nptr: *const ::std::os::raw::c_char)
1697     -> ::std::os::raw::c_long;
1698}
1699extern "C" {
1700    pub fn atoll(__nptr: *const ::std::os::raw::c_char)
1701     -> ::std::os::raw::c_longlong;
1702}
1703extern "C" {
1704    pub fn strtod(__nptr: *const ::std::os::raw::c_char,
1705                  __endptr: *mut *mut ::std::os::raw::c_char) -> f64;
1706}
1707extern "C" {
1708    pub fn strtof(__nptr: *const ::std::os::raw::c_char,
1709                  __endptr: *mut *mut ::std::os::raw::c_char) -> f32;
1710}
1711extern "C" {
1712    pub fn strtold(__nptr: *const ::std::os::raw::c_char,
1713                   __endptr: *mut *mut ::std::os::raw::c_char) -> f64;
1714}
1715extern "C" {
1716    pub fn strtol(__nptr: *const ::std::os::raw::c_char,
1717                  __endptr: *mut *mut ::std::os::raw::c_char,
1718                  __base: ::std::os::raw::c_int) -> ::std::os::raw::c_long;
1719}
1720extern "C" {
1721    pub fn strtoul(__nptr: *const ::std::os::raw::c_char,
1722                   __endptr: *mut *mut ::std::os::raw::c_char,
1723                   __base: ::std::os::raw::c_int) -> ::std::os::raw::c_ulong;
1724}
1725extern "C" {
1726    pub fn strtoq(__nptr: *const ::std::os::raw::c_char,
1727                  __endptr: *mut *mut ::std::os::raw::c_char,
1728                  __base: ::std::os::raw::c_int)
1729     -> ::std::os::raw::c_longlong;
1730}
1731extern "C" {
1732    pub fn strtouq(__nptr: *const ::std::os::raw::c_char,
1733                   __endptr: *mut *mut ::std::os::raw::c_char,
1734                   __base: ::std::os::raw::c_int)
1735     -> ::std::os::raw::c_ulonglong;
1736}
1737extern "C" {
1738    pub fn strtoll(__nptr: *const ::std::os::raw::c_char,
1739                   __endptr: *mut *mut ::std::os::raw::c_char,
1740                   __base: ::std::os::raw::c_int)
1741     -> ::std::os::raw::c_longlong;
1742}
1743extern "C" {
1744    pub fn strtoull(__nptr: *const ::std::os::raw::c_char,
1745                    __endptr: *mut *mut ::std::os::raw::c_char,
1746                    __base: ::std::os::raw::c_int)
1747     -> ::std::os::raw::c_ulonglong;
1748}
1749extern "C" {
1750    pub fn l64a(__n: ::std::os::raw::c_long) -> *mut ::std::os::raw::c_char;
1751}
1752extern "C" {
1753    pub fn a64l(__s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_long;
1754}
1755pub type u_char = __u_char;
1756pub type u_short = __u_short;
1757pub type u_int = __u_int;
1758pub type u_long = __u_long;
1759pub type quad_t = __quad_t;
1760pub type u_quad_t = __u_quad_t;
1761pub type fsid_t = __fsid_t;
1762pub type loff_t = __loff_t;
1763pub type ino_t = __ino_t;
1764pub type dev_t = __dev_t;
1765pub type gid_t = __gid_t;
1766pub type mode_t = __mode_t;
1767pub type nlink_t = __nlink_t;
1768pub type uid_t = __uid_t;
1769pub type pid_t = __pid_t;
1770pub type id_t = __id_t;
1771pub type daddr_t = __daddr_t;
1772pub type caddr_t = __caddr_t;
1773pub type key_t = __key_t;
1774pub type clock_t = __clock_t;
1775pub type clockid_t = __clockid_t;
1776pub type time_t = __time_t;
1777pub type timer_t = __timer_t;
1778pub type ulong = ::std::os::raw::c_ulong;
1779pub type ushort = ::std::os::raw::c_ushort;
1780pub type uint = ::std::os::raw::c_uint;
1781pub type u_int8_t = ::std::os::raw::c_uchar;
1782pub type u_int16_t = ::std::os::raw::c_ushort;
1783pub type u_int32_t = ::std::os::raw::c_uint;
1784pub type u_int64_t = ::std::os::raw::c_ulong;
1785pub type register_t = ::std::os::raw::c_long;
1786#[repr(C)]
1787#[derive(Debug, Copy)]
1788pub struct __sigset_t {
1789    pub __val: [::std::os::raw::c_ulong; 16usize],
1790}
1791#[test]
1792fn bindgen_test_layout___sigset_t() {
1793    assert_eq!(::std::mem::size_of::<__sigset_t>() , 128usize , concat ! (
1794               "Size of: " , stringify ! ( __sigset_t ) ));
1795    assert_eq! (::std::mem::align_of::<__sigset_t>() , 8usize , concat ! (
1796                "Alignment of " , stringify ! ( __sigset_t ) ));
1797    assert_eq! (unsafe {
1798                & ( * ( 0 as * const __sigset_t ) ) . __val as * const _ as
1799                usize } , 0usize , concat ! (
1800                "Alignment of field: " , stringify ! ( __sigset_t ) , "::" ,
1801                stringify ! ( __val ) ));
1802}
1803impl Clone for __sigset_t {
1804    fn clone(&self) -> Self { *self }
1805}
1806pub type sigset_t = __sigset_t;
1807#[repr(C)]
1808#[derive(Debug, Copy)]
1809pub struct timeval {
1810    pub tv_sec: __time_t,
1811    pub tv_usec: __suseconds_t,
1812}
1813#[test]
1814fn bindgen_test_layout_timeval() {
1815    assert_eq!(::std::mem::size_of::<timeval>() , 16usize , concat ! (
1816               "Size of: " , stringify ! ( timeval ) ));
1817    assert_eq! (::std::mem::align_of::<timeval>() , 8usize , concat ! (
1818                "Alignment of " , stringify ! ( timeval ) ));
1819    assert_eq! (unsafe {
1820                & ( * ( 0 as * const timeval ) ) . tv_sec as * const _ as
1821                usize } , 0usize , concat ! (
1822                "Alignment of field: " , stringify ! ( timeval ) , "::" ,
1823                stringify ! ( tv_sec ) ));
1824    assert_eq! (unsafe {
1825                & ( * ( 0 as * const timeval ) ) . tv_usec as * const _ as
1826                usize } , 8usize , concat ! (
1827                "Alignment of field: " , stringify ! ( timeval ) , "::" ,
1828                stringify ! ( tv_usec ) ));
1829}
1830impl Clone for timeval {
1831    fn clone(&self) -> Self { *self }
1832}
1833#[repr(C)]
1834#[derive(Debug, Copy)]
1835pub struct timespec {
1836    pub tv_sec: __time_t,
1837    pub tv_nsec: __syscall_slong_t,
1838}
1839#[test]
1840fn bindgen_test_layout_timespec() {
1841    assert_eq!(::std::mem::size_of::<timespec>() , 16usize , concat ! (
1842               "Size of: " , stringify ! ( timespec ) ));
1843    assert_eq! (::std::mem::align_of::<timespec>() , 8usize , concat ! (
1844                "Alignment of " , stringify ! ( timespec ) ));
1845    assert_eq! (unsafe {
1846                & ( * ( 0 as * const timespec ) ) . tv_sec as * const _ as
1847                usize } , 0usize , concat ! (
1848                "Alignment of field: " , stringify ! ( timespec ) , "::" ,
1849                stringify ! ( tv_sec ) ));
1850    assert_eq! (unsafe {
1851                & ( * ( 0 as * const timespec ) ) . tv_nsec as * const _ as
1852                usize } , 8usize , concat ! (
1853                "Alignment of field: " , stringify ! ( timespec ) , "::" ,
1854                stringify ! ( tv_nsec ) ));
1855}
1856impl Clone for timespec {
1857    fn clone(&self) -> Self { *self }
1858}
1859pub type suseconds_t = __suseconds_t;
1860pub type __fd_mask = ::std::os::raw::c_long;
1861#[repr(C)]
1862#[derive(Debug, Copy)]
1863pub struct fd_set {
1864    pub __fds_bits: [__fd_mask; 16usize],
1865}
1866#[test]
1867fn bindgen_test_layout_fd_set() {
1868    assert_eq!(::std::mem::size_of::<fd_set>() , 128usize , concat ! (
1869               "Size of: " , stringify ! ( fd_set ) ));
1870    assert_eq! (::std::mem::align_of::<fd_set>() , 8usize , concat ! (
1871                "Alignment of " , stringify ! ( fd_set ) ));
1872    assert_eq! (unsafe {
1873                & ( * ( 0 as * const fd_set ) ) . __fds_bits as * const _ as
1874                usize } , 0usize , concat ! (
1875                "Alignment of field: " , stringify ! ( fd_set ) , "::" ,
1876                stringify ! ( __fds_bits ) ));
1877}
1878impl Clone for fd_set {
1879    fn clone(&self) -> Self { *self }
1880}
1881pub type fd_mask = __fd_mask;
1882extern "C" {
1883    pub fn select(__nfds: ::std::os::raw::c_int, __readfds: *mut fd_set,
1884                  __writefds: *mut fd_set, __exceptfds: *mut fd_set,
1885                  __timeout: *mut timeval) -> ::std::os::raw::c_int;
1886}
1887extern "C" {
1888    pub fn pselect(__nfds: ::std::os::raw::c_int, __readfds: *mut fd_set,
1889                   __writefds: *mut fd_set, __exceptfds: *mut fd_set,
1890                   __timeout: *const timespec, __sigmask: *const __sigset_t)
1891     -> ::std::os::raw::c_int;
1892}
1893extern "C" {
1894    pub fn gnu_dev_major(__dev: __dev_t) -> ::std::os::raw::c_uint;
1895}
1896extern "C" {
1897    pub fn gnu_dev_minor(__dev: __dev_t) -> ::std::os::raw::c_uint;
1898}
1899extern "C" {
1900    pub fn gnu_dev_makedev(__major: ::std::os::raw::c_uint,
1901                           __minor: ::std::os::raw::c_uint) -> __dev_t;
1902}
1903pub type blksize_t = __blksize_t;
1904pub type blkcnt_t = __blkcnt_t;
1905pub type fsblkcnt_t = __fsblkcnt_t;
1906pub type fsfilcnt_t = __fsfilcnt_t;
1907#[repr(C)]
1908#[derive(Debug, Copy)]
1909pub struct __pthread_rwlock_arch_t {
1910    pub __readers: ::std::os::raw::c_uint,
1911    pub __writers: ::std::os::raw::c_uint,
1912    pub __wrphase_futex: ::std::os::raw::c_uint,
1913    pub __writers_futex: ::std::os::raw::c_uint,
1914    pub __pad3: ::std::os::raw::c_uint,
1915    pub __pad4: ::std::os::raw::c_uint,
1916    pub __cur_writer: ::std::os::raw::c_int,
1917    pub __shared: ::std::os::raw::c_int,
1918    pub __rwelision: ::std::os::raw::c_schar,
1919    pub __pad1: [::std::os::raw::c_uchar; 7usize],
1920    pub __pad2: ::std::os::raw::c_ulong,
1921    pub __flags: ::std::os::raw::c_uint,
1922}
1923#[test]
1924fn bindgen_test_layout___pthread_rwlock_arch_t() {
1925    assert_eq!(::std::mem::size_of::<__pthread_rwlock_arch_t>() , 56usize ,
1926               concat ! (
1927               "Size of: " , stringify ! ( __pthread_rwlock_arch_t ) ));
1928    assert_eq! (::std::mem::align_of::<__pthread_rwlock_arch_t>() , 8usize ,
1929                concat ! (
1930                "Alignment of " , stringify ! ( __pthread_rwlock_arch_t ) ));
1931    assert_eq! (unsafe {
1932                & ( * ( 0 as * const __pthread_rwlock_arch_t ) ) . __readers
1933                as * const _ as usize } , 0usize , concat ! (
1934                "Alignment of field: " , stringify ! ( __pthread_rwlock_arch_t
1935                ) , "::" , stringify ! ( __readers ) ));
1936    assert_eq! (unsafe {
1937                & ( * ( 0 as * const __pthread_rwlock_arch_t ) ) . __writers
1938                as * const _ as usize } , 4usize , concat ! (
1939                "Alignment of field: " , stringify ! ( __pthread_rwlock_arch_t
1940                ) , "::" , stringify ! ( __writers ) ));
1941    assert_eq! (unsafe {
1942                & ( * ( 0 as * const __pthread_rwlock_arch_t ) ) .
1943                __wrphase_futex as * const _ as usize } , 8usize , concat ! (
1944                "Alignment of field: " , stringify ! ( __pthread_rwlock_arch_t
1945                ) , "::" , stringify ! ( __wrphase_futex ) ));
1946    assert_eq! (unsafe {
1947                & ( * ( 0 as * const __pthread_rwlock_arch_t ) ) .
1948                __writers_futex as * const _ as usize } , 12usize , concat ! (
1949                "Alignment of field: " , stringify ! ( __pthread_rwlock_arch_t
1950                ) , "::" , stringify ! ( __writers_futex ) ));
1951    assert_eq! (unsafe {
1952                & ( * ( 0 as * const __pthread_rwlock_arch_t ) ) . __pad3 as *
1953                const _ as usize } , 16usize , concat ! (
1954                "Alignment of field: " , stringify ! ( __pthread_rwlock_arch_t
1955                ) , "::" , stringify ! ( __pad3 ) ));
1956    assert_eq! (unsafe {
1957                & ( * ( 0 as * const __pthread_rwlock_arch_t ) ) . __pad4 as *
1958                const _ as usize } , 20usize , concat ! (
1959                "Alignment of field: " , stringify ! ( __pthread_rwlock_arch_t
1960                ) , "::" , stringify ! ( __pad4 ) ));
1961    assert_eq! (unsafe {
1962                & ( * ( 0 as * const __pthread_rwlock_arch_t ) ) .
1963                __cur_writer as * const _ as usize } , 24usize , concat ! (
1964                "Alignment of field: " , stringify ! ( __pthread_rwlock_arch_t
1965                ) , "::" , stringify ! ( __cur_writer ) ));
1966    assert_eq! (unsafe {
1967                & ( * ( 0 as * const __pthread_rwlock_arch_t ) ) . __shared as
1968                * const _ as usize } , 28usize , concat ! (
1969                "Alignment of field: " , stringify ! ( __pthread_rwlock_arch_t
1970                ) , "::" , stringify ! ( __shared ) ));
1971    assert_eq! (unsafe {
1972                & ( * ( 0 as * const __pthread_rwlock_arch_t ) ) . __rwelision
1973                as * const _ as usize } , 32usize , concat ! (
1974                "Alignment of field: " , stringify ! ( __pthread_rwlock_arch_t
1975                ) , "::" , stringify ! ( __rwelision ) ));
1976    assert_eq! (unsafe {
1977                & ( * ( 0 as * const __pthread_rwlock_arch_t ) ) . __pad1 as *
1978                const _ as usize } , 33usize , concat ! (
1979                "Alignment of field: " , stringify ! ( __pthread_rwlock_arch_t
1980                ) , "::" , stringify ! ( __pad1 ) ));
1981    assert_eq! (unsafe {
1982                & ( * ( 0 as * const __pthread_rwlock_arch_t ) ) . __pad2 as *
1983                const _ as usize } , 40usize , concat ! (
1984                "Alignment of field: " , stringify ! ( __pthread_rwlock_arch_t
1985                ) , "::" , stringify ! ( __pad2 ) ));
1986    assert_eq! (unsafe {
1987                & ( * ( 0 as * const __pthread_rwlock_arch_t ) ) . __flags as
1988                * const _ as usize } , 48usize , concat ! (
1989                "Alignment of field: " , stringify ! ( __pthread_rwlock_arch_t
1990                ) , "::" , stringify ! ( __flags ) ));
1991}
1992impl Clone for __pthread_rwlock_arch_t {
1993    fn clone(&self) -> Self { *self }
1994}
1995#[repr(C)]
1996#[derive(Debug, Copy)]
1997pub struct __pthread_internal_list {
1998    pub __prev: *mut __pthread_internal_list,
1999    pub __next: *mut __pthread_internal_list,
2000}
2001#[test]
2002fn bindgen_test_layout___pthread_internal_list() {
2003    assert_eq!(::std::mem::size_of::<__pthread_internal_list>() , 16usize ,
2004               concat ! (
2005               "Size of: " , stringify ! ( __pthread_internal_list ) ));
2006    assert_eq! (::std::mem::align_of::<__pthread_internal_list>() , 8usize ,
2007                concat ! (
2008                "Alignment of " , stringify ! ( __pthread_internal_list ) ));
2009    assert_eq! (unsafe {
2010                & ( * ( 0 as * const __pthread_internal_list ) ) . __prev as *
2011                const _ as usize } , 0usize , concat ! (
2012                "Alignment of field: " , stringify ! ( __pthread_internal_list
2013                ) , "::" , stringify ! ( __prev ) ));
2014    assert_eq! (unsafe {
2015                & ( * ( 0 as * const __pthread_internal_list ) ) . __next as *
2016                const _ as usize } , 8usize , concat ! (
2017                "Alignment of field: " , stringify ! ( __pthread_internal_list
2018                ) , "::" , stringify ! ( __next ) ));
2019}
2020impl Clone for __pthread_internal_list {
2021    fn clone(&self) -> Self { *self }
2022}
2023pub type __pthread_list_t = __pthread_internal_list;
2024#[repr(C)]
2025#[derive(Debug, Copy)]
2026pub struct __pthread_mutex_s {
2027    pub __lock: ::std::os::raw::c_int,
2028    pub __count: ::std::os::raw::c_uint,
2029    pub __owner: ::std::os::raw::c_int,
2030    pub __nusers: ::std::os::raw::c_uint,
2031    pub __kind: ::std::os::raw::c_int,
2032    pub __spins: ::std::os::raw::c_short,
2033    pub __elision: ::std::os::raw::c_short,
2034    pub __list: __pthread_list_t,
2035}
2036#[test]
2037fn bindgen_test_layout___pthread_mutex_s() {
2038    assert_eq!(::std::mem::size_of::<__pthread_mutex_s>() , 40usize , concat !
2039               ( "Size of: " , stringify ! ( __pthread_mutex_s ) ));
2040    assert_eq! (::std::mem::align_of::<__pthread_mutex_s>() , 8usize , concat
2041                ! ( "Alignment of " , stringify ! ( __pthread_mutex_s ) ));
2042    assert_eq! (unsafe {
2043                & ( * ( 0 as * const __pthread_mutex_s ) ) . __lock as * const
2044                _ as usize } , 0usize , concat ! (
2045                "Alignment of field: " , stringify ! ( __pthread_mutex_s ) ,
2046                "::" , stringify ! ( __lock ) ));
2047    assert_eq! (unsafe {
2048                & ( * ( 0 as * const __pthread_mutex_s ) ) . __count as *
2049                const _ as usize } , 4usize , concat ! (
2050                "Alignment of field: " , stringify ! ( __pthread_mutex_s ) ,
2051                "::" , stringify ! ( __count ) ));
2052    assert_eq! (unsafe {
2053                & ( * ( 0 as * const __pthread_mutex_s ) ) . __owner as *
2054                const _ as usize } , 8usize , concat ! (
2055                "Alignment of field: " , stringify ! ( __pthread_mutex_s ) ,
2056                "::" , stringify ! ( __owner ) ));
2057    assert_eq! (unsafe {
2058                & ( * ( 0 as * const __pthread_mutex_s ) ) . __nusers as *
2059                const _ as usize } , 12usize , concat ! (
2060                "Alignment of field: " , stringify ! ( __pthread_mutex_s ) ,
2061                "::" , stringify ! ( __nusers ) ));
2062    assert_eq! (unsafe {
2063                & ( * ( 0 as * const __pthread_mutex_s ) ) . __kind as * const
2064                _ as usize } , 16usize , concat ! (
2065                "Alignment of field: " , stringify ! ( __pthread_mutex_s ) ,
2066                "::" , stringify ! ( __kind ) ));
2067    assert_eq! (unsafe {
2068                & ( * ( 0 as * const __pthread_mutex_s ) ) . __spins as *
2069                const _ as usize } , 20usize , concat ! (
2070                "Alignment of field: " , stringify ! ( __pthread_mutex_s ) ,
2071                "::" , stringify ! ( __spins ) ));
2072    assert_eq! (unsafe {
2073                & ( * ( 0 as * const __pthread_mutex_s ) ) . __elision as *
2074                const _ as usize } , 22usize , concat ! (
2075                "Alignment of field: " , stringify ! ( __pthread_mutex_s ) ,
2076                "::" , stringify ! ( __elision ) ));
2077    assert_eq! (unsafe {
2078                & ( * ( 0 as * const __pthread_mutex_s ) ) . __list as * const
2079                _ as usize } , 24usize , concat ! (
2080                "Alignment of field: " , stringify ! ( __pthread_mutex_s ) ,
2081                "::" , stringify ! ( __list ) ));
2082}
2083impl Clone for __pthread_mutex_s {
2084    fn clone(&self) -> Self { *self }
2085}
2086#[repr(C)]
2087#[derive(Copy)]
2088pub struct __pthread_cond_s {
2089    pub __bindgen_anon_1: __pthread_cond_s__bindgen_ty_1,
2090    pub __bindgen_anon_2: __pthread_cond_s__bindgen_ty_2,
2091    pub __g_refs: [::std::os::raw::c_uint; 2usize],
2092    pub __g_size: [::std::os::raw::c_uint; 2usize],
2093    pub __g1_orig_size: ::std::os::raw::c_uint,
2094    pub __wrefs: ::std::os::raw::c_uint,
2095    pub __g_signals: [::std::os::raw::c_uint; 2usize],
2096}
2097#[repr(C)]
2098#[derive(Copy)]
2099pub union __pthread_cond_s__bindgen_ty_1 {
2100    pub __wseq: ::std::os::raw::c_ulonglong,
2101    pub __wseq32: __pthread_cond_s__bindgen_ty_1__bindgen_ty_1,
2102    _bindgen_union_align: u64,
2103}
2104#[repr(C)]
2105#[derive(Debug, Copy)]
2106pub struct __pthread_cond_s__bindgen_ty_1__bindgen_ty_1 {
2107    pub __low: ::std::os::raw::c_uint,
2108    pub __high: ::std::os::raw::c_uint,
2109}
2110#[test]
2111fn bindgen_test_layout___pthread_cond_s__bindgen_ty_1__bindgen_ty_1() {
2112    assert_eq!(::std::mem::size_of::<__pthread_cond_s__bindgen_ty_1__bindgen_ty_1>()
2113               , 8usize , concat ! (
2114               "Size of: " , stringify ! (
2115               __pthread_cond_s__bindgen_ty_1__bindgen_ty_1 ) ));
2116    assert_eq! (::std::mem::align_of::<__pthread_cond_s__bindgen_ty_1__bindgen_ty_1>()
2117                , 4usize , concat ! (
2118                "Alignment of " , stringify ! (
2119                __pthread_cond_s__bindgen_ty_1__bindgen_ty_1 ) ));
2120    assert_eq! (unsafe {
2121                & (
2122                * ( 0 as * const __pthread_cond_s__bindgen_ty_1__bindgen_ty_1
2123                ) ) . __low as * const _ as usize } , 0usize , concat ! (
2124                "Alignment of field: " , stringify ! (
2125                __pthread_cond_s__bindgen_ty_1__bindgen_ty_1 ) , "::" ,
2126                stringify ! ( __low ) ));
2127    assert_eq! (unsafe {
2128                & (
2129                * ( 0 as * const __pthread_cond_s__bindgen_ty_1__bindgen_ty_1
2130                ) ) . __high as * const _ as usize } , 4usize , concat ! (
2131                "Alignment of field: " , stringify ! (
2132                __pthread_cond_s__bindgen_ty_1__bindgen_ty_1 ) , "::" ,
2133                stringify ! ( __high ) ));
2134}
2135impl Clone for __pthread_cond_s__bindgen_ty_1__bindgen_ty_1 {
2136    fn clone(&self) -> Self { *self }
2137}
2138#[test]
2139fn bindgen_test_layout___pthread_cond_s__bindgen_ty_1() {
2140    assert_eq!(::std::mem::size_of::<__pthread_cond_s__bindgen_ty_1>() ,
2141               8usize , concat ! (
2142               "Size of: " , stringify ! ( __pthread_cond_s__bindgen_ty_1 )
2143               ));
2144    assert_eq! (::std::mem::align_of::<__pthread_cond_s__bindgen_ty_1>() ,
2145                8usize , concat ! (
2146                "Alignment of " , stringify ! ( __pthread_cond_s__bindgen_ty_1
2147                ) ));
2148    assert_eq! (unsafe {
2149                & ( * ( 0 as * const __pthread_cond_s__bindgen_ty_1 ) ) .
2150                __wseq as * const _ as usize } , 0usize , concat ! (
2151                "Alignment of field: " , stringify ! (
2152                __pthread_cond_s__bindgen_ty_1 ) , "::" , stringify ! ( __wseq
2153                ) ));
2154    assert_eq! (unsafe {
2155                & ( * ( 0 as * const __pthread_cond_s__bindgen_ty_1 ) ) .
2156                __wseq32 as * const _ as usize } , 0usize , concat ! (
2157                "Alignment of field: " , stringify ! (
2158                __pthread_cond_s__bindgen_ty_1 ) , "::" , stringify ! (
2159                __wseq32 ) ));
2160}
2161impl Clone for __pthread_cond_s__bindgen_ty_1 {
2162    fn clone(&self) -> Self { *self }
2163}
2164#[repr(C)]
2165#[derive(Copy)]
2166pub union __pthread_cond_s__bindgen_ty_2 {
2167    pub __g1_start: ::std::os::raw::c_ulonglong,
2168    pub __g1_start32: __pthread_cond_s__bindgen_ty_2__bindgen_ty_1,
2169    _bindgen_union_align: u64,
2170}
2171#[repr(C)]
2172#[derive(Debug, Copy)]
2173pub struct __pthread_cond_s__bindgen_ty_2__bindgen_ty_1 {
2174    pub __low: ::std::os::raw::c_uint,
2175    pub __high: ::std::os::raw::c_uint,
2176}
2177#[test]
2178fn bindgen_test_layout___pthread_cond_s__bindgen_ty_2__bindgen_ty_1() {
2179    assert_eq!(::std::mem::size_of::<__pthread_cond_s__bindgen_ty_2__bindgen_ty_1>()
2180               , 8usize , concat ! (
2181               "Size of: " , stringify ! (
2182               __pthread_cond_s__bindgen_ty_2__bindgen_ty_1 ) ));
2183    assert_eq! (::std::mem::align_of::<__pthread_cond_s__bindgen_ty_2__bindgen_ty_1>()
2184                , 4usize , concat ! (
2185                "Alignment of " , stringify ! (
2186                __pthread_cond_s__bindgen_ty_2__bindgen_ty_1 ) ));
2187    assert_eq! (unsafe {
2188                & (
2189                * ( 0 as * const __pthread_cond_s__bindgen_ty_2__bindgen_ty_1
2190                ) ) . __low as * const _ as usize } , 0usize , concat ! (
2191                "Alignment of field: " , stringify ! (
2192                __pthread_cond_s__bindgen_ty_2__bindgen_ty_1 ) , "::" ,
2193                stringify ! ( __low ) ));
2194    assert_eq! (unsafe {
2195                & (
2196                * ( 0 as * const __pthread_cond_s__bindgen_ty_2__bindgen_ty_1
2197                ) ) . __high as * const _ as usize } , 4usize , concat ! (
2198                "Alignment of field: " , stringify ! (
2199                __pthread_cond_s__bindgen_ty_2__bindgen_ty_1 ) , "::" ,
2200                stringify ! ( __high ) ));
2201}
2202impl Clone for __pthread_cond_s__bindgen_ty_2__bindgen_ty_1 {
2203    fn clone(&self) -> Self { *self }
2204}
2205#[test]
2206fn bindgen_test_layout___pthread_cond_s__bindgen_ty_2() {
2207    assert_eq!(::std::mem::size_of::<__pthread_cond_s__bindgen_ty_2>() ,
2208               8usize , concat ! (
2209               "Size of: " , stringify ! ( __pthread_cond_s__bindgen_ty_2 )
2210               ));
2211    assert_eq! (::std::mem::align_of::<__pthread_cond_s__bindgen_ty_2>() ,
2212                8usize , concat ! (
2213                "Alignment of " , stringify ! ( __pthread_cond_s__bindgen_ty_2
2214                ) ));
2215    assert_eq! (unsafe {
2216                & ( * ( 0 as * const __pthread_cond_s__bindgen_ty_2 ) ) .
2217                __g1_start as * const _ as usize } , 0usize , concat ! (
2218                "Alignment of field: " , stringify ! (
2219                __pthread_cond_s__bindgen_ty_2 ) , "::" , stringify ! (
2220                __g1_start ) ));
2221    assert_eq! (unsafe {
2222                & ( * ( 0 as * const __pthread_cond_s__bindgen_ty_2 ) ) .
2223                __g1_start32 as * const _ as usize } , 0usize , concat ! (
2224                "Alignment of field: " , stringify ! (
2225                __pthread_cond_s__bindgen_ty_2 ) , "::" , stringify ! (
2226                __g1_start32 ) ));
2227}
2228impl Clone for __pthread_cond_s__bindgen_ty_2 {
2229    fn clone(&self) -> Self { *self }
2230}
2231#[test]
2232fn bindgen_test_layout___pthread_cond_s() {
2233    assert_eq!(::std::mem::size_of::<__pthread_cond_s>() , 48usize , concat !
2234               ( "Size of: " , stringify ! ( __pthread_cond_s ) ));
2235    assert_eq! (::std::mem::align_of::<__pthread_cond_s>() , 8usize , concat !
2236                ( "Alignment of " , stringify ! ( __pthread_cond_s ) ));
2237    assert_eq! (unsafe {
2238                & ( * ( 0 as * const __pthread_cond_s ) ) . __g_refs as *
2239                const _ as usize } , 16usize , concat ! (
2240                "Alignment of field: " , stringify ! ( __pthread_cond_s ) ,
2241                "::" , stringify ! ( __g_refs ) ));
2242    assert_eq! (unsafe {
2243                & ( * ( 0 as * const __pthread_cond_s ) ) . __g_size as *
2244                const _ as usize } , 24usize , concat ! (
2245                "Alignment of field: " , stringify ! ( __pthread_cond_s ) ,
2246                "::" , stringify ! ( __g_size ) ));
2247    assert_eq! (unsafe {
2248                & ( * ( 0 as * const __pthread_cond_s ) ) . __g1_orig_size as
2249                * const _ as usize } , 32usize , concat ! (
2250                "Alignment of field: " , stringify ! ( __pthread_cond_s ) ,
2251                "::" , stringify ! ( __g1_orig_size ) ));
2252    assert_eq! (unsafe {
2253                & ( * ( 0 as * const __pthread_cond_s ) ) . __wrefs as * const
2254                _ as usize } , 36usize , concat ! (
2255                "Alignment of field: " , stringify ! ( __pthread_cond_s ) ,
2256                "::" , stringify ! ( __wrefs ) ));
2257    assert_eq! (unsafe {
2258                & ( * ( 0 as * const __pthread_cond_s ) ) . __g_signals as *
2259                const _ as usize } , 40usize , concat ! (
2260                "Alignment of field: " , stringify ! ( __pthread_cond_s ) ,
2261                "::" , stringify ! ( __g_signals ) ));
2262}
2263impl Clone for __pthread_cond_s {
2264    fn clone(&self) -> Self { *self }
2265}
2266pub type pthread_t = ::std::os::raw::c_ulong;
2267#[repr(C)]
2268#[derive(Copy)]
2269pub union pthread_mutexattr_t {
2270    pub __size: [::std::os::raw::c_char; 4usize],
2271    pub __align: ::std::os::raw::c_int,
2272    _bindgen_union_align: u32,
2273}
2274#[test]
2275fn bindgen_test_layout_pthread_mutexattr_t() {
2276    assert_eq!(::std::mem::size_of::<pthread_mutexattr_t>() , 4usize , concat
2277               ! ( "Size of: " , stringify ! ( pthread_mutexattr_t ) ));
2278    assert_eq! (::std::mem::align_of::<pthread_mutexattr_t>() , 4usize ,
2279                concat ! (
2280                "Alignment of " , stringify ! ( pthread_mutexattr_t ) ));
2281    assert_eq! (unsafe {
2282                & ( * ( 0 as * const pthread_mutexattr_t ) ) . __size as *
2283                const _ as usize } , 0usize , concat ! (
2284                "Alignment of field: " , stringify ! ( pthread_mutexattr_t ) ,
2285                "::" , stringify ! ( __size ) ));
2286    assert_eq! (unsafe {
2287                & ( * ( 0 as * const pthread_mutexattr_t ) ) . __align as *
2288                const _ as usize } , 0usize , concat ! (
2289                "Alignment of field: " , stringify ! ( pthread_mutexattr_t ) ,
2290                "::" , stringify ! ( __align ) ));
2291}
2292impl Clone for pthread_mutexattr_t {
2293    fn clone(&self) -> Self { *self }
2294}
2295#[repr(C)]
2296#[derive(Copy)]
2297pub union pthread_condattr_t {
2298    pub __size: [::std::os::raw::c_char; 4usize],
2299    pub __align: ::std::os::raw::c_int,
2300    _bindgen_union_align: u32,
2301}
2302#[test]
2303fn bindgen_test_layout_pthread_condattr_t() {
2304    assert_eq!(::std::mem::size_of::<pthread_condattr_t>() , 4usize , concat !
2305               ( "Size of: " , stringify ! ( pthread_condattr_t ) ));
2306    assert_eq! (::std::mem::align_of::<pthread_condattr_t>() , 4usize , concat
2307                ! ( "Alignment of " , stringify ! ( pthread_condattr_t ) ));
2308    assert_eq! (unsafe {
2309                & ( * ( 0 as * const pthread_condattr_t ) ) . __size as *
2310                const _ as usize } , 0usize , concat ! (
2311                "Alignment of field: " , stringify ! ( pthread_condattr_t ) ,
2312                "::" , stringify ! ( __size ) ));
2313    assert_eq! (unsafe {
2314                & ( * ( 0 as * const pthread_condattr_t ) ) . __align as *
2315                const _ as usize } , 0usize , concat ! (
2316                "Alignment of field: " , stringify ! ( pthread_condattr_t ) ,
2317                "::" , stringify ! ( __align ) ));
2318}
2319impl Clone for pthread_condattr_t {
2320    fn clone(&self) -> Self { *self }
2321}
2322pub type pthread_key_t = ::std::os::raw::c_uint;
2323pub type pthread_once_t = ::std::os::raw::c_int;
2324#[repr(C)]
2325#[derive(Copy)]
2326pub union pthread_attr_t {
2327    pub __size: [::std::os::raw::c_char; 56usize],
2328    pub __align: ::std::os::raw::c_long,
2329    _bindgen_union_align: [u64; 7usize],
2330}
2331#[test]
2332fn bindgen_test_layout_pthread_attr_t() {
2333    assert_eq!(::std::mem::size_of::<pthread_attr_t>() , 56usize , concat ! (
2334               "Size of: " , stringify ! ( pthread_attr_t ) ));
2335    assert_eq! (::std::mem::align_of::<pthread_attr_t>() , 8usize , concat ! (
2336                "Alignment of " , stringify ! ( pthread_attr_t ) ));
2337    assert_eq! (unsafe {
2338                & ( * ( 0 as * const pthread_attr_t ) ) . __size as * const _
2339                as usize } , 0usize , concat ! (
2340                "Alignment of field: " , stringify ! ( pthread_attr_t ) , "::"
2341                , stringify ! ( __size ) ));
2342    assert_eq! (unsafe {
2343                & ( * ( 0 as * const pthread_attr_t ) ) . __align as * const _
2344                as usize } , 0usize , concat ! (
2345                "Alignment of field: " , stringify ! ( pthread_attr_t ) , "::"
2346                , stringify ! ( __align ) ));
2347}
2348impl Clone for pthread_attr_t {
2349    fn clone(&self) -> Self { *self }
2350}
2351#[repr(C)]
2352#[derive(Copy)]
2353pub union pthread_mutex_t {
2354    pub __data: __pthread_mutex_s,
2355    pub __size: [::std::os::raw::c_char; 40usize],
2356    pub __align: ::std::os::raw::c_long,
2357    _bindgen_union_align: [u64; 5usize],
2358}
2359#[test]
2360fn bindgen_test_layout_pthread_mutex_t() {
2361    assert_eq!(::std::mem::size_of::<pthread_mutex_t>() , 40usize , concat ! (
2362               "Size of: " , stringify ! ( pthread_mutex_t ) ));
2363    assert_eq! (::std::mem::align_of::<pthread_mutex_t>() , 8usize , concat !
2364                ( "Alignment of " , stringify ! ( pthread_mutex_t ) ));
2365    assert_eq! (unsafe {
2366                & ( * ( 0 as * const pthread_mutex_t ) ) . __data as * const _
2367                as usize } , 0usize , concat ! (
2368                "Alignment of field: " , stringify ! ( pthread_mutex_t ) ,
2369                "::" , stringify ! ( __data ) ));
2370    assert_eq! (unsafe {
2371                & ( * ( 0 as * const pthread_mutex_t ) ) . __size as * const _
2372                as usize } , 0usize , concat ! (
2373                "Alignment of field: " , stringify ! ( pthread_mutex_t ) ,
2374                "::" , stringify ! ( __size ) ));
2375    assert_eq! (unsafe {
2376                & ( * ( 0 as * const pthread_mutex_t ) ) . __align as * const
2377                _ as usize } , 0usize , concat ! (
2378                "Alignment of field: " , stringify ! ( pthread_mutex_t ) ,
2379                "::" , stringify ! ( __align ) ));
2380}
2381impl Clone for pthread_mutex_t {
2382    fn clone(&self) -> Self { *self }
2383}
2384#[repr(C)]
2385#[derive(Copy)]
2386pub union pthread_cond_t {
2387    pub __data: __pthread_cond_s,
2388    pub __size: [::std::os::raw::c_char; 48usize],
2389    pub __align: ::std::os::raw::c_longlong,
2390    _bindgen_union_align: [u64; 6usize],
2391}
2392#[test]
2393fn bindgen_test_layout_pthread_cond_t() {
2394    assert_eq!(::std::mem::size_of::<pthread_cond_t>() , 48usize , concat ! (
2395               "Size of: " , stringify ! ( pthread_cond_t ) ));
2396    assert_eq! (::std::mem::align_of::<pthread_cond_t>() , 8usize , concat ! (
2397                "Alignment of " , stringify ! ( pthread_cond_t ) ));
2398    assert_eq! (unsafe {
2399                & ( * ( 0 as * const pthread_cond_t ) ) . __data as * const _
2400                as usize } , 0usize , concat ! (
2401                "Alignment of field: " , stringify ! ( pthread_cond_t ) , "::"
2402                , stringify ! ( __data ) ));
2403    assert_eq! (unsafe {
2404                & ( * ( 0 as * const pthread_cond_t ) ) . __size as * const _
2405                as usize } , 0usize , concat ! (
2406                "Alignment of field: " , stringify ! ( pthread_cond_t ) , "::"
2407                , stringify ! ( __size ) ));
2408    assert_eq! (unsafe {
2409                & ( * ( 0 as * const pthread_cond_t ) ) . __align as * const _
2410                as usize } , 0usize , concat ! (
2411                "Alignment of field: " , stringify ! ( pthread_cond_t ) , "::"
2412                , stringify ! ( __align ) ));
2413}
2414impl Clone for pthread_cond_t {
2415    fn clone(&self) -> Self { *self }
2416}
2417#[repr(C)]
2418#[derive(Copy)]
2419pub union pthread_rwlock_t {
2420    pub __data: __pthread_rwlock_arch_t,
2421    pub __size: [::std::os::raw::c_char; 56usize],
2422    pub __align: ::std::os::raw::c_long,
2423    _bindgen_union_align: [u64; 7usize],
2424}
2425#[test]
2426fn bindgen_test_layout_pthread_rwlock_t() {
2427    assert_eq!(::std::mem::size_of::<pthread_rwlock_t>() , 56usize , concat !
2428               ( "Size of: " , stringify ! ( pthread_rwlock_t ) ));
2429    assert_eq! (::std::mem::align_of::<pthread_rwlock_t>() , 8usize , concat !
2430                ( "Alignment of " , stringify ! ( pthread_rwlock_t ) ));
2431    assert_eq! (unsafe {
2432                & ( * ( 0 as * const pthread_rwlock_t ) ) . __data as * const
2433                _ as usize } , 0usize , concat ! (
2434                "Alignment of field: " , stringify ! ( pthread_rwlock_t ) ,
2435                "::" , stringify ! ( __data ) ));
2436    assert_eq! (unsafe {
2437                & ( * ( 0 as * const pthread_rwlock_t ) ) . __size as * const
2438                _ as usize } , 0usize , concat ! (
2439                "Alignment of field: " , stringify ! ( pthread_rwlock_t ) ,
2440                "::" , stringify ! ( __size ) ));
2441    assert_eq! (unsafe {
2442                & ( * ( 0 as * const pthread_rwlock_t ) ) . __align as * const
2443                _ as usize } , 0usize , concat ! (
2444                "Alignment of field: " , stringify ! ( pthread_rwlock_t ) ,
2445                "::" , stringify ! ( __align ) ));
2446}
2447impl Clone for pthread_rwlock_t {
2448    fn clone(&self) -> Self { *self }
2449}
2450#[repr(C)]
2451#[derive(Copy)]
2452pub union pthread_rwlockattr_t {
2453    pub __size: [::std::os::raw::c_char; 8usize],
2454    pub __align: ::std::os::raw::c_long,
2455    _bindgen_union_align: u64,
2456}
2457#[test]
2458fn bindgen_test_layout_pthread_rwlockattr_t() {
2459    assert_eq!(::std::mem::size_of::<pthread_rwlockattr_t>() , 8usize , concat
2460               ! ( "Size of: " , stringify ! ( pthread_rwlockattr_t ) ));
2461    assert_eq! (::std::mem::align_of::<pthread_rwlockattr_t>() , 8usize ,
2462                concat ! (
2463                "Alignment of " , stringify ! ( pthread_rwlockattr_t ) ));
2464    assert_eq! (unsafe {
2465                & ( * ( 0 as * const pthread_rwlockattr_t ) ) . __size as *
2466                const _ as usize } , 0usize , concat ! (
2467                "Alignment of field: " , stringify ! ( pthread_rwlockattr_t )
2468                , "::" , stringify ! ( __size ) ));
2469    assert_eq! (unsafe {
2470                & ( * ( 0 as * const pthread_rwlockattr_t ) ) . __align as *
2471                const _ as usize } , 0usize , concat ! (
2472                "Alignment of field: " , stringify ! ( pthread_rwlockattr_t )
2473                , "::" , stringify ! ( __align ) ));
2474}
2475impl Clone for pthread_rwlockattr_t {
2476    fn clone(&self) -> Self { *self }
2477}
2478pub type pthread_spinlock_t = ::std::os::raw::c_int;
2479#[repr(C)]
2480#[derive(Copy)]
2481pub union pthread_barrier_t {
2482    pub __size: [::std::os::raw::c_char; 32usize],
2483    pub __align: ::std::os::raw::c_long,
2484    _bindgen_union_align: [u64; 4usize],
2485}
2486#[test]
2487fn bindgen_test_layout_pthread_barrier_t() {
2488    assert_eq!(::std::mem::size_of::<pthread_barrier_t>() , 32usize , concat !
2489               ( "Size of: " , stringify ! ( pthread_barrier_t ) ));
2490    assert_eq! (::std::mem::align_of::<pthread_barrier_t>() , 8usize , concat
2491                ! ( "Alignment of " , stringify ! ( pthread_barrier_t ) ));
2492    assert_eq! (unsafe {
2493                & ( * ( 0 as * const pthread_barrier_t ) ) . __size as * const
2494                _ as usize } , 0usize , concat ! (
2495                "Alignment of field: " , stringify ! ( pthread_barrier_t ) ,
2496                "::" , stringify ! ( __size ) ));
2497    assert_eq! (unsafe {
2498                & ( * ( 0 as * const pthread_barrier_t ) ) . __align as *
2499                const _ as usize } , 0usize , concat ! (
2500                "Alignment of field: " , stringify ! ( pthread_barrier_t ) ,
2501                "::" , stringify ! ( __align ) ));
2502}
2503impl Clone for pthread_barrier_t {
2504    fn clone(&self) -> Self { *self }
2505}
2506#[repr(C)]
2507#[derive(Copy)]
2508pub union pthread_barrierattr_t {
2509    pub __size: [::std::os::raw::c_char; 4usize],
2510    pub __align: ::std::os::raw::c_int,
2511    _bindgen_union_align: u32,
2512}
2513#[test]
2514fn bindgen_test_layout_pthread_barrierattr_t() {
2515    assert_eq!(::std::mem::size_of::<pthread_barrierattr_t>() , 4usize ,
2516               concat ! ( "Size of: " , stringify ! ( pthread_barrierattr_t )
2517               ));
2518    assert_eq! (::std::mem::align_of::<pthread_barrierattr_t>() , 4usize ,
2519                concat ! (
2520                "Alignment of " , stringify ! ( pthread_barrierattr_t ) ));
2521    assert_eq! (unsafe {
2522                & ( * ( 0 as * const pthread_barrierattr_t ) ) . __size as *
2523                const _ as usize } , 0usize , concat ! (
2524                "Alignment of field: " , stringify ! ( pthread_barrierattr_t )
2525                , "::" , stringify ! ( __size ) ));
2526    assert_eq! (unsafe {
2527                & ( * ( 0 as * const pthread_barrierattr_t ) ) . __align as *
2528                const _ as usize } , 0usize , concat ! (
2529                "Alignment of field: " , stringify ! ( pthread_barrierattr_t )
2530                , "::" , stringify ! ( __align ) ));
2531}
2532impl Clone for pthread_barrierattr_t {
2533    fn clone(&self) -> Self { *self }
2534}
2535extern "C" {
2536    pub fn random() -> ::std::os::raw::c_long;
2537}
2538extern "C" {
2539    pub fn srandom(__seed: ::std::os::raw::c_uint);
2540}
2541extern "C" {
2542    pub fn initstate(__seed: ::std::os::raw::c_uint,
2543                     __statebuf: *mut ::std::os::raw::c_char,
2544                     __statelen: usize) -> *mut ::std::os::raw::c_char;
2545}
2546extern "C" {
2547    pub fn setstate(__statebuf: *mut ::std::os::raw::c_char)
2548     -> *mut ::std::os::raw::c_char;
2549}
2550#[repr(C)]
2551#[derive(Debug, Copy)]
2552pub struct random_data {
2553    pub fptr: *mut i32,
2554    pub rptr: *mut i32,
2555    pub state: *mut i32,
2556    pub rand_type: ::std::os::raw::c_int,
2557    pub rand_deg: ::std::os::raw::c_int,
2558    pub rand_sep: ::std::os::raw::c_int,
2559    pub end_ptr: *mut i32,
2560}
2561#[test]
2562fn bindgen_test_layout_random_data() {
2563    assert_eq!(::std::mem::size_of::<random_data>() , 48usize , concat ! (
2564               "Size of: " , stringify ! ( random_data ) ));
2565    assert_eq! (::std::mem::align_of::<random_data>() , 8usize , concat ! (
2566                "Alignment of " , stringify ! ( random_data ) ));
2567    assert_eq! (unsafe {
2568                & ( * ( 0 as * const random_data ) ) . fptr as * const _ as
2569                usize } , 0usize , concat ! (
2570                "Alignment of field: " , stringify ! ( random_data ) , "::" ,
2571                stringify ! ( fptr ) ));
2572    assert_eq! (unsafe {
2573                & ( * ( 0 as * const random_data ) ) . rptr as * const _ as
2574                usize } , 8usize , concat ! (
2575                "Alignment of field: " , stringify ! ( random_data ) , "::" ,
2576                stringify ! ( rptr ) ));
2577    assert_eq! (unsafe {
2578                & ( * ( 0 as * const random_data ) ) . state as * const _ as
2579                usize } , 16usize , concat ! (
2580                "Alignment of field: " , stringify ! ( random_data ) , "::" ,
2581                stringify ! ( state ) ));
2582    assert_eq! (unsafe {
2583                & ( * ( 0 as * const random_data ) ) . rand_type as * const _
2584                as usize } , 24usize , concat ! (
2585                "Alignment of field: " , stringify ! ( random_data ) , "::" ,
2586                stringify ! ( rand_type ) ));
2587    assert_eq! (unsafe {
2588                & ( * ( 0 as * const random_data ) ) . rand_deg as * const _
2589                as usize } , 28usize , concat ! (
2590                "Alignment of field: " , stringify ! ( random_data ) , "::" ,
2591                stringify ! ( rand_deg ) ));
2592    assert_eq! (unsafe {
2593                & ( * ( 0 as * const random_data ) ) . rand_sep as * const _
2594                as usize } , 32usize , concat ! (
2595                "Alignment of field: " , stringify ! ( random_data ) , "::" ,
2596                stringify ! ( rand_sep ) ));
2597    assert_eq! (unsafe {
2598                & ( * ( 0 as * const random_data ) ) . end_ptr as * const _ as
2599                usize } , 40usize , concat ! (
2600                "Alignment of field: " , stringify ! ( random_data ) , "::" ,
2601                stringify ! ( end_ptr ) ));
2602}
2603impl Clone for random_data {
2604    fn clone(&self) -> Self { *self }
2605}
2606extern "C" {
2607    pub fn random_r(__buf: *mut random_data, __result: *mut i32)
2608     -> ::std::os::raw::c_int;
2609}
2610extern "C" {
2611    pub fn srandom_r(__seed: ::std::os::raw::c_uint, __buf: *mut random_data)
2612     -> ::std::os::raw::c_int;
2613}
2614extern "C" {
2615    pub fn initstate_r(__seed: ::std::os::raw::c_uint,
2616                       __statebuf: *mut ::std::os::raw::c_char,
2617                       __statelen: usize, __buf: *mut random_data)
2618     -> ::std::os::raw::c_int;
2619}
2620extern "C" {
2621    pub fn setstate_r(__statebuf: *mut ::std::os::raw::c_char,
2622                      __buf: *mut random_data) -> ::std::os::raw::c_int;
2623}
2624extern "C" {
2625    pub fn rand() -> ::std::os::raw::c_int;
2626}
2627extern "C" {
2628    pub fn srand(__seed: ::std::os::raw::c_uint);
2629}
2630extern "C" {
2631    pub fn rand_r(__seed: *mut ::std::os::raw::c_uint)
2632     -> ::std::os::raw::c_int;
2633}
2634extern "C" {
2635    pub fn drand48() -> f64;
2636}
2637extern "C" {
2638    pub fn erand48(__xsubi: *mut ::std::os::raw::c_ushort) -> f64;
2639}
2640extern "C" {
2641    pub fn lrand48() -> ::std::os::raw::c_long;
2642}
2643extern "C" {
2644    pub fn nrand48(__xsubi: *mut ::std::os::raw::c_ushort)
2645     -> ::std::os::raw::c_long;
2646}
2647extern "C" {
2648    pub fn mrand48() -> ::std::os::raw::c_long;
2649}
2650extern "C" {
2651    pub fn jrand48(__xsubi: *mut ::std::os::raw::c_ushort)
2652     -> ::std::os::raw::c_long;
2653}
2654extern "C" {
2655    pub fn srand48(__seedval: ::std::os::raw::c_long);
2656}
2657extern "C" {
2658    pub fn seed48(__seed16v: *mut ::std::os::raw::c_ushort)
2659     -> *mut ::std::os::raw::c_ushort;
2660}
2661extern "C" {
2662    pub fn lcong48(__param: *mut ::std::os::raw::c_ushort);
2663}
2664#[repr(C)]
2665#[derive(Debug, Copy)]
2666pub struct drand48_data {
2667    pub __x: [::std::os::raw::c_ushort; 3usize],
2668    pub __old_x: [::std::os::raw::c_ushort; 3usize],
2669    pub __c: ::std::os::raw::c_ushort,
2670    pub __init: ::std::os::raw::c_ushort,
2671    pub __a: ::std::os::raw::c_ulonglong,
2672}
2673#[test]
2674fn bindgen_test_layout_drand48_data() {
2675    assert_eq!(::std::mem::size_of::<drand48_data>() , 24usize , concat ! (
2676               "Size of: " , stringify ! ( drand48_data ) ));
2677    assert_eq! (::std::mem::align_of::<drand48_data>() , 8usize , concat ! (
2678                "Alignment of " , stringify ! ( drand48_data ) ));
2679    assert_eq! (unsafe {
2680                & ( * ( 0 as * const drand48_data ) ) . __x as * const _ as
2681                usize } , 0usize , concat ! (
2682                "Alignment of field: " , stringify ! ( drand48_data ) , "::" ,
2683                stringify ! ( __x ) ));
2684    assert_eq! (unsafe {
2685                & ( * ( 0 as * const drand48_data ) ) . __old_x as * const _
2686                as usize } , 6usize , concat ! (
2687                "Alignment of field: " , stringify ! ( drand48_data ) , "::" ,
2688                stringify ! ( __old_x ) ));
2689    assert_eq! (unsafe {
2690                & ( * ( 0 as * const drand48_data ) ) . __c as * const _ as
2691                usize } , 12usize , concat ! (
2692                "Alignment of field: " , stringify ! ( drand48_data ) , "::" ,
2693                stringify ! ( __c ) ));
2694    assert_eq! (unsafe {
2695                & ( * ( 0 as * const drand48_data ) ) . __init as * const _ as
2696                usize } , 14usize , concat ! (
2697                "Alignment of field: " , stringify ! ( drand48_data ) , "::" ,
2698                stringify ! ( __init ) ));
2699    assert_eq! (unsafe {
2700                & ( * ( 0 as * const drand48_data ) ) . __a as * const _ as
2701                usize } , 16usize , concat ! (
2702                "Alignment of field: " , stringify ! ( drand48_data ) , "::" ,
2703                stringify ! ( __a ) ));
2704}
2705impl Clone for drand48_data {
2706    fn clone(&self) -> Self { *self }
2707}
2708extern "C" {
2709    pub fn drand48_r(__buffer: *mut drand48_data, __result: *mut f64)
2710     -> ::std::os::raw::c_int;
2711}
2712extern "C" {
2713    pub fn erand48_r(__xsubi: *mut ::std::os::raw::c_ushort,
2714                     __buffer: *mut drand48_data, __result: *mut f64)
2715     -> ::std::os::raw::c_int;
2716}
2717extern "C" {
2718    pub fn lrand48_r(__buffer: *mut drand48_data,
2719                     __result: *mut ::std::os::raw::c_long)
2720     -> ::std::os::raw::c_int;
2721}
2722extern "C" {
2723    pub fn nrand48_r(__xsubi: *mut ::std::os::raw::c_ushort,
2724                     __buffer: *mut drand48_data,
2725                     __result: *mut ::std::os::raw::c_long)
2726     -> ::std::os::raw::c_int;
2727}
2728extern "C" {
2729    pub fn mrand48_r(__buffer: *mut drand48_data,
2730                     __result: *mut ::std::os::raw::c_long)
2731     -> ::std::os::raw::c_int;
2732}
2733extern "C" {
2734    pub fn jrand48_r(__xsubi: *mut ::std::os::raw::c_ushort,
2735                     __buffer: *mut drand48_data,
2736                     __result: *mut ::std::os::raw::c_long)
2737     -> ::std::os::raw::c_int;
2738}
2739extern "C" {
2740    pub fn srand48_r(__seedval: ::std::os::raw::c_long,
2741                     __buffer: *mut drand48_data) -> ::std::os::raw::c_int;
2742}
2743extern "C" {
2744    pub fn seed48_r(__seed16v: *mut ::std::os::raw::c_ushort,
2745                    __buffer: *mut drand48_data) -> ::std::os::raw::c_int;
2746}
2747extern "C" {
2748    pub fn lcong48_r(__param: *mut ::std::os::raw::c_ushort,
2749                     __buffer: *mut drand48_data) -> ::std::os::raw::c_int;
2750}
2751extern "C" {
2752    pub fn malloc(__size: usize) -> *mut ::std::os::raw::c_void;
2753}
2754extern "C" {
2755    pub fn calloc(__nmemb: usize, __size: usize)
2756     -> *mut ::std::os::raw::c_void;
2757}
2758extern "C" {
2759    pub fn realloc(__ptr: *mut ::std::os::raw::c_void, __size: usize)
2760     -> *mut ::std::os::raw::c_void;
2761}
2762extern "C" {
2763    pub fn free(__ptr: *mut ::std::os::raw::c_void);
2764}
2765extern "C" {
2766    pub fn alloca(__size: usize) -> *mut ::std::os::raw::c_void;
2767}
2768extern "C" {
2769    pub fn valloc(__size: usize) -> *mut ::std::os::raw::c_void;
2770}
2771extern "C" {
2772    pub fn posix_memalign(__memptr: *mut *mut ::std::os::raw::c_void,
2773                          __alignment: usize, __size: usize)
2774     -> ::std::os::raw::c_int;
2775}
2776extern "C" {
2777    pub fn aligned_alloc(__alignment: usize, __size: usize)
2778     -> *mut ::std::os::raw::c_void;
2779}
2780extern "C" {
2781    pub fn abort();
2782}
2783extern "C" {
2784    pub fn atexit(__func: ::std::option::Option<unsafe extern "C" fn()>)
2785     -> ::std::os::raw::c_int;
2786}
2787extern "C" {
2788    pub fn at_quick_exit(__func:
2789                             ::std::option::Option<unsafe extern "C" fn()>)
2790     -> ::std::os::raw::c_int;
2791}
2792extern "C" {
2793    pub fn on_exit(__func:
2794                       ::std::option::Option<unsafe extern "C" fn(__status:
2795                                                                      ::std::os::raw::c_int,
2796                                                                  __arg:
2797                                                                      *mut ::std::os::raw::c_void)>,
2798                   __arg: *mut ::std::os::raw::c_void)
2799     -> ::std::os::raw::c_int;
2800}
2801extern "C" {
2802    pub fn exit(__status: ::std::os::raw::c_int);
2803}
2804extern "C" {
2805    pub fn quick_exit(__status: ::std::os::raw::c_int);
2806}
2807extern "C" {
2808    pub fn _Exit(__status: ::std::os::raw::c_int);
2809}
2810extern "C" {
2811    pub fn getenv(__name: *const ::std::os::raw::c_char)
2812     -> *mut ::std::os::raw::c_char;
2813}
2814extern "C" {
2815    pub fn putenv(__string: *mut ::std::os::raw::c_char)
2816     -> ::std::os::raw::c_int;
2817}
2818extern "C" {
2819    pub fn setenv(__name: *const ::std::os::raw::c_char,
2820                  __value: *const ::std::os::raw::c_char,
2821                  __replace: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
2822}
2823extern "C" {
2824    pub fn unsetenv(__name: *const ::std::os::raw::c_char)
2825     -> ::std::os::raw::c_int;
2826}
2827extern "C" {
2828    pub fn clearenv() -> ::std::os::raw::c_int;
2829}
2830extern "C" {
2831    pub fn mktemp(__template: *mut ::std::os::raw::c_char)
2832     -> *mut ::std::os::raw::c_char;
2833}
2834extern "C" {
2835    pub fn mkstemp(__template: *mut ::std::os::raw::c_char)
2836     -> ::std::os::raw::c_int;
2837}
2838extern "C" {
2839    pub fn mkstemps(__template: *mut ::std::os::raw::c_char,
2840                    __suffixlen: ::std::os::raw::c_int)
2841     -> ::std::os::raw::c_int;
2842}
2843extern "C" {
2844    pub fn mkdtemp(__template: *mut ::std::os::raw::c_char)
2845     -> *mut ::std::os::raw::c_char;
2846}
2847extern "C" {
2848    pub fn system(__command: *const ::std::os::raw::c_char)
2849     -> ::std::os::raw::c_int;
2850}
2851extern "C" {
2852    pub fn realpath(__name: *const ::std::os::raw::c_char,
2853                    __resolved: *mut ::std::os::raw::c_char)
2854     -> *mut ::std::os::raw::c_char;
2855}
2856pub type __compar_fn_t =
2857    ::std::option::Option<unsafe extern "C" fn(arg1:
2858                                                   *const ::std::os::raw::c_void,
2859                                               arg2:
2860                                                   *const ::std::os::raw::c_void)
2861                              -> ::std::os::raw::c_int>;
2862extern "C" {
2863    pub fn bsearch(__key: *const ::std::os::raw::c_void,
2864                   __base: *const ::std::os::raw::c_void, __nmemb: usize,
2865                   __size: usize, __compar: __compar_fn_t)
2866     -> *mut ::std::os::raw::c_void;
2867}
2868extern "C" {
2869    pub fn qsort(__base: *mut ::std::os::raw::c_void, __nmemb: usize,
2870                 __size: usize, __compar: __compar_fn_t);
2871}
2872extern "C" {
2873    pub fn abs(__x: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
2874}
2875extern "C" {
2876    pub fn labs(__x: ::std::os::raw::c_long) -> ::std::os::raw::c_long;
2877}
2878extern "C" {
2879    pub fn llabs(__x: ::std::os::raw::c_longlong)
2880     -> ::std::os::raw::c_longlong;
2881}
2882extern "C" {
2883    pub fn div(__numer: ::std::os::raw::c_int, __denom: ::std::os::raw::c_int)
2884     -> div_t;
2885}
2886extern "C" {
2887    pub fn ldiv(__numer: ::std::os::raw::c_long,
2888                __denom: ::std::os::raw::c_long) -> ldiv_t;
2889}
2890extern "C" {
2891    pub fn lldiv(__numer: ::std::os::raw::c_longlong,
2892                 __denom: ::std::os::raw::c_longlong) -> lldiv_t;
2893}
2894extern "C" {
2895    pub fn ecvt(__value: f64, __ndigit: ::std::os::raw::c_int,
2896                __decpt: *mut ::std::os::raw::c_int,
2897                __sign: *mut ::std::os::raw::c_int)
2898     -> *mut ::std::os::raw::c_char;
2899}
2900extern "C" {
2901    pub fn fcvt(__value: f64, __ndigit: ::std::os::raw::c_int,
2902                __decpt: *mut ::std::os::raw::c_int,
2903                __sign: *mut ::std::os::raw::c_int)
2904     -> *mut ::std::os::raw::c_char;
2905}
2906extern "C" {
2907    pub fn gcvt(__value: f64, __ndigit: ::std::os::raw::c_int,
2908                __buf: *mut ::std::os::raw::c_char)
2909     -> *mut ::std::os::raw::c_char;
2910}
2911extern "C" {
2912    pub fn qecvt(__value: f64, __ndigit: ::std::os::raw::c_int,
2913                 __decpt: *mut ::std::os::raw::c_int,
2914                 __sign: *mut ::std::os::raw::c_int)
2915     -> *mut ::std::os::raw::c_char;
2916}
2917extern "C" {
2918    pub fn qfcvt(__value: f64, __ndigit: ::std::os::raw::c_int,
2919                 __decpt: *mut ::std::os::raw::c_int,
2920                 __sign: *mut ::std::os::raw::c_int)
2921     -> *mut ::std::os::raw::c_char;
2922}
2923extern "C" {
2924    pub fn qgcvt(__value: f64, __ndigit: ::std::os::raw::c_int,
2925                 __buf: *mut ::std::os::raw::c_char)
2926     -> *mut ::std::os::raw::c_char;
2927}
2928extern "C" {
2929    pub fn ecvt_r(__value: f64, __ndigit: ::std::os::raw::c_int,
2930                  __decpt: *mut ::std::os::raw::c_int,
2931                  __sign: *mut ::std::os::raw::c_int,
2932                  __buf: *mut ::std::os::raw::c_char, __len: usize)
2933     -> ::std::os::raw::c_int;
2934}
2935extern "C" {
2936    pub fn fcvt_r(__value: f64, __ndigit: ::std::os::raw::c_int,
2937                  __decpt: *mut ::std::os::raw::c_int,
2938                  __sign: *mut ::std::os::raw::c_int,
2939                  __buf: *mut ::std::os::raw::c_char, __len: usize)
2940     -> ::std::os::raw::c_int;
2941}
2942extern "C" {
2943    pub fn qecvt_r(__value: f64, __ndigit: ::std::os::raw::c_int,
2944                   __decpt: *mut ::std::os::raw::c_int,
2945                   __sign: *mut ::std::os::raw::c_int,
2946                   __buf: *mut ::std::os::raw::c_char, __len: usize)
2947     -> ::std::os::raw::c_int;
2948}
2949extern "C" {
2950    pub fn qfcvt_r(__value: f64, __ndigit: ::std::os::raw::c_int,
2951                   __decpt: *mut ::std::os::raw::c_int,
2952                   __sign: *mut ::std::os::raw::c_int,
2953                   __buf: *mut ::std::os::raw::c_char, __len: usize)
2954     -> ::std::os::raw::c_int;
2955}
2956extern "C" {
2957    pub fn mblen(__s: *const ::std::os::raw::c_char, __n: usize)
2958     -> ::std::os::raw::c_int;
2959}
2960extern "C" {
2961    pub fn mbtowc(__pwc: *mut wchar_t, __s: *const ::std::os::raw::c_char,
2962                  __n: usize) -> ::std::os::raw::c_int;
2963}
2964extern "C" {
2965    pub fn wctomb(__s: *mut ::std::os::raw::c_char, __wchar: wchar_t)
2966     -> ::std::os::raw::c_int;
2967}
2968extern "C" {
2969    pub fn mbstowcs(__pwcs: *mut wchar_t, __s: *const ::std::os::raw::c_char,
2970                    __n: usize) -> usize;
2971}
2972extern "C" {
2973    pub fn wcstombs(__s: *mut ::std::os::raw::c_char, __pwcs: *const wchar_t,
2974                    __n: usize) -> usize;
2975}
2976extern "C" {
2977    pub fn rpmatch(__response: *const ::std::os::raw::c_char)
2978     -> ::std::os::raw::c_int;
2979}
2980extern "C" {
2981    pub fn getsubopt(__optionp: *mut *mut ::std::os::raw::c_char,
2982                     __tokens: *const *const ::std::os::raw::c_char,
2983                     __valuep: *mut *mut ::std::os::raw::c_char)
2984     -> ::std::os::raw::c_int;
2985}
2986extern "C" {
2987    pub fn getloadavg(__loadavg: *mut f64, __nelem: ::std::os::raw::c_int)
2988     -> ::std::os::raw::c_int;
2989}
2990#[repr(C)]
2991#[derive(Debug, Copy)]
2992pub struct max_align_t {
2993    pub __clang_max_align_nonce1: ::std::os::raw::c_longlong,
2994    pub __bindgen_padding_0: u64,
2995    pub __clang_max_align_nonce2: f64,
2996}
2997#[test]
2998fn bindgen_test_layout_max_align_t() {
2999    assert_eq!(::std::mem::size_of::<max_align_t>() , 32usize , concat ! (
3000               "Size of: " , stringify ! ( max_align_t ) ));
3001    assert_eq! (unsafe {
3002                & ( * ( 0 as * const max_align_t ) ) .
3003                __clang_max_align_nonce1 as * const _ as usize } , 0usize ,
3004                concat ! (
3005                "Alignment of field: " , stringify ! ( max_align_t ) , "::" ,
3006                stringify ! ( __clang_max_align_nonce1 ) ));
3007    assert_eq! (unsafe {
3008                & ( * ( 0 as * const max_align_t ) ) .
3009                __clang_max_align_nonce2 as * const _ as usize } , 16usize ,
3010                concat ! (
3011                "Alignment of field: " , stringify ! ( max_align_t ) , "::" ,
3012                stringify ! ( __clang_max_align_nonce2 ) ));
3013}
3014impl Clone for max_align_t {
3015    fn clone(&self) -> Self { *self }
3016}
3017#[repr(C)]
3018#[derive(Debug, Copy)]
3019pub struct tm {
3020    pub tm_sec: ::std::os::raw::c_int,
3021    pub tm_min: ::std::os::raw::c_int,
3022    pub tm_hour: ::std::os::raw::c_int,
3023    pub tm_mday: ::std::os::raw::c_int,
3024    pub tm_mon: ::std::os::raw::c_int,
3025    pub tm_year: ::std::os::raw::c_int,
3026    pub tm_wday: ::std::os::raw::c_int,
3027    pub tm_yday: ::std::os::raw::c_int,
3028    pub tm_isdst: ::std::os::raw::c_int,
3029    pub tm_gmtoff: ::std::os::raw::c_long,
3030    pub tm_zone: *const ::std::os::raw::c_char,
3031}
3032#[test]
3033fn bindgen_test_layout_tm() {
3034    assert_eq!(::std::mem::size_of::<tm>() , 56usize , concat ! (
3035               "Size of: " , stringify ! ( tm ) ));
3036    assert_eq! (::std::mem::align_of::<tm>() , 8usize , concat ! (
3037                "Alignment of " , stringify ! ( tm ) ));
3038    assert_eq! (unsafe {
3039                & ( * ( 0 as * const tm ) ) . tm_sec as * const _ as usize } ,
3040                0usize , concat ! (
3041                "Alignment of field: " , stringify ! ( tm ) , "::" , stringify
3042                ! ( tm_sec ) ));
3043    assert_eq! (unsafe {
3044                & ( * ( 0 as * const tm ) ) . tm_min as * const _ as usize } ,
3045                4usize , concat ! (
3046                "Alignment of field: " , stringify ! ( tm ) , "::" , stringify
3047                ! ( tm_min ) ));
3048    assert_eq! (unsafe {
3049                & ( * ( 0 as * const tm ) ) . tm_hour as * const _ as usize }
3050                , 8usize , concat ! (
3051                "Alignment of field: " , stringify ! ( tm ) , "::" , stringify
3052                ! ( tm_hour ) ));
3053    assert_eq! (unsafe {
3054                & ( * ( 0 as * const tm ) ) . tm_mday as * const _ as usize }
3055                , 12usize , concat ! (
3056                "Alignment of field: " , stringify ! ( tm ) , "::" , stringify
3057                ! ( tm_mday ) ));
3058    assert_eq! (unsafe {
3059                & ( * ( 0 as * const tm ) ) . tm_mon as * const _ as usize } ,
3060                16usize , concat ! (
3061                "Alignment of field: " , stringify ! ( tm ) , "::" , stringify
3062                ! ( tm_mon ) ));
3063    assert_eq! (unsafe {
3064                & ( * ( 0 as * const tm ) ) . tm_year as * const _ as usize }
3065                , 20usize , concat ! (
3066                "Alignment of field: " , stringify ! ( tm ) , "::" , stringify
3067                ! ( tm_year ) ));
3068    assert_eq! (unsafe {
3069                & ( * ( 0 as * const tm ) ) . tm_wday as * const _ as usize }
3070                , 24usize , concat ! (
3071                "Alignment of field: " , stringify ! ( tm ) , "::" , stringify
3072                ! ( tm_wday ) ));
3073    assert_eq! (unsafe {
3074                & ( * ( 0 as * const tm ) ) . tm_yday as * const _ as usize }
3075                , 28usize , concat ! (
3076                "Alignment of field: " , stringify ! ( tm ) , "::" , stringify
3077                ! ( tm_yday ) ));
3078    assert_eq! (unsafe {
3079                & ( * ( 0 as * const tm ) ) . tm_isdst as * const _ as usize }
3080                , 32usize , concat ! (
3081                "Alignment of field: " , stringify ! ( tm ) , "::" , stringify
3082                ! ( tm_isdst ) ));
3083    assert_eq! (unsafe {
3084                & ( * ( 0 as * const tm ) ) . tm_gmtoff as * const _ as usize
3085                } , 40usize , concat ! (
3086                "Alignment of field: " , stringify ! ( tm ) , "::" , stringify
3087                ! ( tm_gmtoff ) ));
3088    assert_eq! (unsafe {
3089                & ( * ( 0 as * const tm ) ) . tm_zone as * const _ as usize }
3090                , 48usize , concat ! (
3091                "Alignment of field: " , stringify ! ( tm ) , "::" , stringify
3092                ! ( tm_zone ) ));
3093}
3094impl Clone for tm {
3095    fn clone(&self) -> Self { *self }
3096}
3097#[repr(C)]
3098#[derive(Debug, Copy)]
3099pub struct itimerspec {
3100    pub it_interval: timespec,
3101    pub it_value: timespec,
3102}
3103#[test]
3104fn bindgen_test_layout_itimerspec() {
3105    assert_eq!(::std::mem::size_of::<itimerspec>() , 32usize , concat ! (
3106               "Size of: " , stringify ! ( itimerspec ) ));
3107    assert_eq! (::std::mem::align_of::<itimerspec>() , 8usize , concat ! (
3108                "Alignment of " , stringify ! ( itimerspec ) ));
3109    assert_eq! (unsafe {
3110                & ( * ( 0 as * const itimerspec ) ) . it_interval as * const _
3111                as usize } , 0usize , concat ! (
3112                "Alignment of field: " , stringify ! ( itimerspec ) , "::" ,
3113                stringify ! ( it_interval ) ));
3114    assert_eq! (unsafe {
3115                & ( * ( 0 as * const itimerspec ) ) . it_value as * const _ as
3116                usize } , 16usize , concat ! (
3117                "Alignment of field: " , stringify ! ( itimerspec ) , "::" ,
3118                stringify ! ( it_value ) ));
3119}
3120impl Clone for itimerspec {
3121    fn clone(&self) -> Self { *self }
3122}
3123#[repr(C)]
3124#[derive(Copy)]
3125pub struct sigevent {
3126    pub sigev_value: sigval_t,
3127    pub sigev_signo: ::std::os::raw::c_int,
3128    pub sigev_notify: ::std::os::raw::c_int,
3129    pub _sigev_un: sigevent__bindgen_ty_1,
3130}
3131#[repr(C)]
3132#[derive(Copy)]
3133pub union sigevent__bindgen_ty_1 {
3134    pub _pad: [::std::os::raw::c_int; 12usize],
3135    pub _tid: __pid_t,
3136    pub _sigev_thread: sigevent__bindgen_ty_1__bindgen_ty_1,
3137    _bindgen_union_align: [u64; 6usize],
3138}
3139#[repr(C)]
3140#[derive(Debug, Copy)]
3141pub struct sigevent__bindgen_ty_1__bindgen_ty_1 {
3142    pub _function: ::std::option::Option<unsafe extern "C" fn(arg1:
3143                                                                  sigval_t)>,
3144    pub _attribute: *mut pthread_attr_t,
3145}
3146#[test]
3147fn bindgen_test_layout_sigevent__bindgen_ty_1__bindgen_ty_1() {
3148    assert_eq!(::std::mem::size_of::<sigevent__bindgen_ty_1__bindgen_ty_1>() ,
3149               16usize , concat ! (
3150               "Size of: " , stringify ! (
3151               sigevent__bindgen_ty_1__bindgen_ty_1 ) ));
3152    assert_eq! (::std::mem::align_of::<sigevent__bindgen_ty_1__bindgen_ty_1>()
3153                , 8usize , concat ! (
3154                "Alignment of " , stringify ! (
3155                sigevent__bindgen_ty_1__bindgen_ty_1 ) ));
3156    assert_eq! (unsafe {
3157                & ( * ( 0 as * const sigevent__bindgen_ty_1__bindgen_ty_1 ) )
3158                . _function as * const _ as usize } , 0usize , concat ! (
3159                "Alignment of field: " , stringify ! (
3160                sigevent__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! (
3161                _function ) ));
3162    assert_eq! (unsafe {
3163                & ( * ( 0 as * const sigevent__bindgen_ty_1__bindgen_ty_1 ) )
3164                . _attribute as * const _ as usize } , 8usize , concat ! (
3165                "Alignment of field: " , stringify ! (
3166                sigevent__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! (
3167                _attribute ) ));
3168}
3169impl Clone for sigevent__bindgen_ty_1__bindgen_ty_1 {
3170    fn clone(&self) -> Self { *self }
3171}
3172#[test]
3173fn bindgen_test_layout_sigevent__bindgen_ty_1() {
3174    assert_eq!(::std::mem::size_of::<sigevent__bindgen_ty_1>() , 48usize ,
3175               concat ! ( "Size of: " , stringify ! ( sigevent__bindgen_ty_1 )
3176               ));
3177    assert_eq! (::std::mem::align_of::<sigevent__bindgen_ty_1>() , 8usize ,
3178                concat ! (
3179                "Alignment of " , stringify ! ( sigevent__bindgen_ty_1 ) ));
3180    assert_eq! (unsafe {
3181                & ( * ( 0 as * const sigevent__bindgen_ty_1 ) ) . _pad as *
3182                const _ as usize } , 0usize , concat ! (
3183                "Alignment of field: " , stringify ! ( sigevent__bindgen_ty_1
3184                ) , "::" , stringify ! ( _pad ) ));
3185    assert_eq! (unsafe {
3186                & ( * ( 0 as * const sigevent__bindgen_ty_1 ) ) . _tid as *
3187                const _ as usize } , 0usize , concat ! (
3188                "Alignment of field: " , stringify ! ( sigevent__bindgen_ty_1
3189                ) , "::" , stringify ! ( _tid ) ));
3190    assert_eq! (unsafe {
3191                & ( * ( 0 as * const sigevent__bindgen_ty_1 ) ) .
3192                _sigev_thread as * const _ as usize } , 0usize , concat ! (
3193                "Alignment of field: " , stringify ! ( sigevent__bindgen_ty_1
3194                ) , "::" , stringify ! ( _sigev_thread ) ));
3195}
3196impl Clone for sigevent__bindgen_ty_1 {
3197    fn clone(&self) -> Self { *self }
3198}
3199#[test]
3200fn bindgen_test_layout_sigevent() {
3201    assert_eq!(::std::mem::size_of::<sigevent>() , 64usize , concat ! (
3202               "Size of: " , stringify ! ( sigevent ) ));
3203    assert_eq! (::std::mem::align_of::<sigevent>() , 8usize , concat ! (
3204                "Alignment of " , stringify ! ( sigevent ) ));
3205    assert_eq! (unsafe {
3206                & ( * ( 0 as * const sigevent ) ) . sigev_value as * const _
3207                as usize } , 0usize , concat ! (
3208                "Alignment of field: " , stringify ! ( sigevent ) , "::" ,
3209                stringify ! ( sigev_value ) ));
3210    assert_eq! (unsafe {
3211                & ( * ( 0 as * const sigevent ) ) . sigev_signo as * const _
3212                as usize } , 8usize , concat ! (
3213                "Alignment of field: " , stringify ! ( sigevent ) , "::" ,
3214                stringify ! ( sigev_signo ) ));
3215    assert_eq! (unsafe {
3216                & ( * ( 0 as * const sigevent ) ) . sigev_notify as * const _
3217                as usize } , 12usize , concat ! (
3218                "Alignment of field: " , stringify ! ( sigevent ) , "::" ,
3219                stringify ! ( sigev_notify ) ));
3220    assert_eq! (unsafe {
3221                & ( * ( 0 as * const sigevent ) ) . _sigev_un as * const _ as
3222                usize } , 16usize , concat ! (
3223                "Alignment of field: " , stringify ! ( sigevent ) , "::" ,
3224                stringify ! ( _sigev_un ) ));
3225}
3226impl Clone for sigevent {
3227    fn clone(&self) -> Self { *self }
3228}
3229extern "C" {
3230    pub fn clock() -> clock_t;
3231}
3232extern "C" {
3233    pub fn time(__timer: *mut time_t) -> time_t;
3234}
3235extern "C" {
3236    pub fn difftime(__time1: time_t, __time0: time_t) -> f64;
3237}
3238extern "C" {
3239    pub fn mktime(__tp: *mut tm) -> time_t;
3240}
3241extern "C" {
3242    pub fn strftime(__s: *mut ::std::os::raw::c_char, __maxsize: usize,
3243                    __format: *const ::std::os::raw::c_char, __tp: *const tm)
3244     -> usize;
3245}
3246extern "C" {
3247    pub fn strftime_l(__s: *mut ::std::os::raw::c_char, __maxsize: usize,
3248                      __format: *const ::std::os::raw::c_char,
3249                      __tp: *const tm, __loc: locale_t) -> usize;
3250}
3251extern "C" {
3252    pub fn gmtime(__timer: *const time_t) -> *mut tm;
3253}
3254extern "C" {
3255    pub fn localtime(__timer: *const time_t) -> *mut tm;
3256}
3257extern "C" {
3258    pub fn gmtime_r(__timer: *const time_t, __tp: *mut tm) -> *mut tm;
3259}
3260extern "C" {
3261    pub fn localtime_r(__timer: *const time_t, __tp: *mut tm) -> *mut tm;
3262}
3263extern "C" {
3264    pub fn asctime(__tp: *const tm) -> *mut ::std::os::raw::c_char;
3265}
3266extern "C" {
3267    pub fn ctime(__timer: *const time_t) -> *mut ::std::os::raw::c_char;
3268}
3269extern "C" {
3270    pub fn asctime_r(__tp: *const tm, __buf: *mut ::std::os::raw::c_char)
3271     -> *mut ::std::os::raw::c_char;
3272}
3273extern "C" {
3274    pub fn ctime_r(__timer: *const time_t, __buf: *mut ::std::os::raw::c_char)
3275     -> *mut ::std::os::raw::c_char;
3276}
3277extern "C" {
3278    #[link_name = "__tzname"]
3279    pub static mut __tzname: [*mut ::std::os::raw::c_char; 2usize];
3280}
3281extern "C" {
3282    #[link_name = "__daylight"]
3283    pub static mut __daylight: ::std::os::raw::c_int;
3284}
3285extern "C" {
3286    #[link_name = "__timezone"]
3287    pub static mut __timezone: ::std::os::raw::c_long;
3288}
3289extern "C" {
3290    #[link_name = "tzname"]
3291    pub static mut tzname: [*mut ::std::os::raw::c_char; 2usize];
3292}
3293extern "C" {
3294    pub fn tzset();
3295}
3296extern "C" {
3297    #[link_name = "daylight"]
3298    pub static mut daylight: ::std::os::raw::c_int;
3299}
3300extern "C" {
3301    #[link_name = "timezone"]
3302    pub static mut timezone: ::std::os::raw::c_long;
3303}
3304extern "C" {
3305    pub fn stime(__when: *const time_t) -> ::std::os::raw::c_int;
3306}
3307extern "C" {
3308    pub fn timegm(__tp: *mut tm) -> time_t;
3309}
3310extern "C" {
3311    pub fn timelocal(__tp: *mut tm) -> time_t;
3312}
3313extern "C" {
3314    pub fn dysize(__year: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
3315}
3316extern "C" {
3317    pub fn nanosleep(__requested_time: *const timespec,
3318                     __remaining: *mut timespec) -> ::std::os::raw::c_int;
3319}
3320extern "C" {
3321    pub fn clock_getres(__clock_id: clockid_t, __res: *mut timespec)
3322     -> ::std::os::raw::c_int;
3323}
3324extern "C" {
3325    pub fn clock_gettime(__clock_id: clockid_t, __tp: *mut timespec)
3326     -> ::std::os::raw::c_int;
3327}
3328extern "C" {
3329    pub fn clock_settime(__clock_id: clockid_t, __tp: *const timespec)
3330     -> ::std::os::raw::c_int;
3331}
3332extern "C" {
3333    pub fn clock_nanosleep(__clock_id: clockid_t,
3334                           __flags: ::std::os::raw::c_int,
3335                           __req: *const timespec, __rem: *mut timespec)
3336     -> ::std::os::raw::c_int;
3337}
3338extern "C" {
3339    pub fn clock_getcpuclockid(__pid: pid_t, __clock_id: *mut clockid_t)
3340     -> ::std::os::raw::c_int;
3341}
3342extern "C" {
3343    pub fn timer_create(__clock_id: clockid_t, __evp: *mut sigevent,
3344                        __timerid: *mut timer_t) -> ::std::os::raw::c_int;
3345}
3346extern "C" {
3347    pub fn timer_delete(__timerid: timer_t) -> ::std::os::raw::c_int;
3348}
3349extern "C" {
3350    pub fn timer_settime(__timerid: timer_t, __flags: ::std::os::raw::c_int,
3351                         __value: *const itimerspec,
3352                         __ovalue: *mut itimerspec) -> ::std::os::raw::c_int;
3353}
3354extern "C" {
3355    pub fn timer_gettime(__timerid: timer_t, __value: *mut itimerspec)
3356     -> ::std::os::raw::c_int;
3357}
3358extern "C" {
3359    pub fn timer_getoverrun(__timerid: timer_t) -> ::std::os::raw::c_int;
3360}
3361extern "C" {
3362    pub fn timespec_get(__ts: *mut timespec, __base: ::std::os::raw::c_int)
3363     -> ::std::os::raw::c_int;
3364}
3365pub const _ISupper: _bindgen_ty_1 = _bindgen_ty_1::_ISupper;
3366pub const _ISlower: _bindgen_ty_1 = _bindgen_ty_1::_ISlower;
3367pub const _ISalpha: _bindgen_ty_1 = _bindgen_ty_1::_ISalpha;
3368pub const _ISdigit: _bindgen_ty_1 = _bindgen_ty_1::_ISdigit;
3369pub const _ISxdigit: _bindgen_ty_1 = _bindgen_ty_1::_ISxdigit;
3370pub const _ISspace: _bindgen_ty_1 = _bindgen_ty_1::_ISspace;
3371pub const _ISprint: _bindgen_ty_1 = _bindgen_ty_1::_ISprint;
3372pub const _ISgraph: _bindgen_ty_1 = _bindgen_ty_1::_ISgraph;
3373pub const _ISblank: _bindgen_ty_1 = _bindgen_ty_1::_ISblank;
3374pub const _IScntrl: _bindgen_ty_1 = _bindgen_ty_1::_IScntrl;
3375pub const _ISpunct: _bindgen_ty_1 = _bindgen_ty_1::_ISpunct;
3376pub const _ISalnum: _bindgen_ty_1 = _bindgen_ty_1::_ISalnum;
3377#[repr(u32)]
3378#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
3379pub enum _bindgen_ty_1 {
3380    _ISupper = 256,
3381    _ISlower = 512,
3382    _ISalpha = 1024,
3383    _ISdigit = 2048,
3384    _ISxdigit = 4096,
3385    _ISspace = 8192,
3386    _ISprint = 16384,
3387    _ISgraph = 32768,
3388    _ISblank = 1,
3389    _IScntrl = 2,
3390    _ISpunct = 4,
3391    _ISalnum = 8,
3392}
3393extern "C" {
3394    pub fn __ctype_b_loc() -> *mut *const ::std::os::raw::c_ushort;
3395}
3396extern "C" {
3397    pub fn __ctype_tolower_loc() -> *mut *const __int32_t;
3398}
3399extern "C" {
3400    pub fn __ctype_toupper_loc() -> *mut *const __int32_t;
3401}
3402extern "C" {
3403    pub fn isalnum(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
3404}
3405extern "C" {
3406    pub fn isalpha(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
3407}
3408extern "C" {
3409    pub fn iscntrl(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
3410}
3411extern "C" {
3412    pub fn isdigit(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
3413}
3414extern "C" {
3415    pub fn islower(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
3416}
3417extern "C" {
3418    pub fn isgraph(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
3419}
3420extern "C" {
3421    pub fn isprint(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
3422}
3423extern "C" {
3424    pub fn ispunct(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
3425}
3426extern "C" {
3427    pub fn isspace(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
3428}
3429extern "C" {
3430    pub fn isupper(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
3431}
3432extern "C" {
3433    pub fn isxdigit(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
3434}
3435extern "C" {
3436    pub fn tolower(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
3437}
3438extern "C" {
3439    pub fn toupper(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
3440}
3441extern "C" {
3442    pub fn isblank(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
3443}
3444extern "C" {
3445    pub fn isascii(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
3446}
3447extern "C" {
3448    pub fn toascii(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
3449}
3450extern "C" {
3451    pub fn _toupper(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
3452}
3453extern "C" {
3454    pub fn _tolower(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
3455}
3456extern "C" {
3457    pub fn isalnum_l(arg1: ::std::os::raw::c_int, arg2: locale_t)
3458     -> ::std::os::raw::c_int;
3459}
3460extern "C" {
3461    pub fn isalpha_l(arg1: ::std::os::raw::c_int, arg2: locale_t)
3462     -> ::std::os::raw::c_int;
3463}
3464extern "C" {
3465    pub fn iscntrl_l(arg1: ::std::os::raw::c_int, arg2: locale_t)
3466     -> ::std::os::raw::c_int;
3467}
3468extern "C" {
3469    pub fn isdigit_l(arg1: ::std::os::raw::c_int, arg2: locale_t)
3470     -> ::std::os::raw::c_int;
3471}
3472extern "C" {
3473    pub fn islower_l(arg1: ::std::os::raw::c_int, arg2: locale_t)
3474     -> ::std::os::raw::c_int;
3475}
3476extern "C" {
3477    pub fn isgraph_l(arg1: ::std::os::raw::c_int, arg2: locale_t)
3478     -> ::std::os::raw::c_int;
3479}
3480extern "C" {
3481    pub fn isprint_l(arg1: ::std::os::raw::c_int, arg2: locale_t)
3482     -> ::std::os::raw::c_int;
3483}
3484extern "C" {
3485    pub fn ispunct_l(arg1: ::std::os::raw::c_int, arg2: locale_t)
3486     -> ::std::os::raw::c_int;
3487}
3488extern "C" {
3489    pub fn isspace_l(arg1: ::std::os::raw::c_int, arg2: locale_t)
3490     -> ::std::os::raw::c_int;
3491}
3492extern "C" {
3493    pub fn isupper_l(arg1: ::std::os::raw::c_int, arg2: locale_t)
3494     -> ::std::os::raw::c_int;
3495}
3496extern "C" {
3497    pub fn isxdigit_l(arg1: ::std::os::raw::c_int, arg2: locale_t)
3498     -> ::std::os::raw::c_int;
3499}
3500extern "C" {
3501    pub fn isblank_l(arg1: ::std::os::raw::c_int, arg2: locale_t)
3502     -> ::std::os::raw::c_int;
3503}
3504extern "C" {
3505    pub fn __tolower_l(__c: ::std::os::raw::c_int, __l: locale_t)
3506     -> ::std::os::raw::c_int;
3507}
3508extern "C" {
3509    pub fn tolower_l(__c: ::std::os::raw::c_int, __l: locale_t)
3510     -> ::std::os::raw::c_int;
3511}
3512extern "C" {
3513    pub fn __toupper_l(__c: ::std::os::raw::c_int, __l: locale_t)
3514     -> ::std::os::raw::c_int;
3515}
3516extern "C" {
3517    pub fn toupper_l(__c: ::std::os::raw::c_int, __l: locale_t)
3518     -> ::std::os::raw::c_int;
3519}
3520pub const CRYPT_OK: _bindgen_ty_2 = _bindgen_ty_2::CRYPT_OK;
3521pub const CRYPT_ERROR: _bindgen_ty_2 = _bindgen_ty_2::CRYPT_ERROR;
3522pub const CRYPT_NOP: _bindgen_ty_2 = _bindgen_ty_2::CRYPT_NOP;
3523pub const CRYPT_INVALID_KEYSIZE: _bindgen_ty_2 =
3524    _bindgen_ty_2::CRYPT_INVALID_KEYSIZE;
3525pub const CRYPT_INVALID_ROUNDS: _bindgen_ty_2 =
3526    _bindgen_ty_2::CRYPT_INVALID_ROUNDS;
3527pub const CRYPT_FAIL_TESTVECTOR: _bindgen_ty_2 =
3528    _bindgen_ty_2::CRYPT_FAIL_TESTVECTOR;
3529pub const CRYPT_BUFFER_OVERFLOW: _bindgen_ty_2 =
3530    _bindgen_ty_2::CRYPT_BUFFER_OVERFLOW;
3531pub const CRYPT_INVALID_PACKET: _bindgen_ty_2 =
3532    _bindgen_ty_2::CRYPT_INVALID_PACKET;
3533pub const CRYPT_INVALID_PRNGSIZE: _bindgen_ty_2 =
3534    _bindgen_ty_2::CRYPT_INVALID_PRNGSIZE;
3535pub const CRYPT_ERROR_READPRNG: _bindgen_ty_2 =
3536    _bindgen_ty_2::CRYPT_ERROR_READPRNG;
3537pub const CRYPT_INVALID_CIPHER: _bindgen_ty_2 =
3538    _bindgen_ty_2::CRYPT_INVALID_CIPHER;
3539pub const CRYPT_INVALID_HASH: _bindgen_ty_2 =
3540    _bindgen_ty_2::CRYPT_INVALID_HASH;
3541pub const CRYPT_INVALID_PRNG: _bindgen_ty_2 =
3542    _bindgen_ty_2::CRYPT_INVALID_PRNG;
3543pub const CRYPT_MEM: _bindgen_ty_2 = _bindgen_ty_2::CRYPT_MEM;
3544pub const CRYPT_PK_TYPE_MISMATCH: _bindgen_ty_2 =
3545    _bindgen_ty_2::CRYPT_PK_TYPE_MISMATCH;
3546pub const CRYPT_PK_NOT_PRIVATE: _bindgen_ty_2 =
3547    _bindgen_ty_2::CRYPT_PK_NOT_PRIVATE;
3548pub const CRYPT_INVALID_ARG: _bindgen_ty_2 = _bindgen_ty_2::CRYPT_INVALID_ARG;
3549pub const CRYPT_FILE_NOTFOUND: _bindgen_ty_2 =
3550    _bindgen_ty_2::CRYPT_FILE_NOTFOUND;
3551pub const CRYPT_PK_INVALID_TYPE: _bindgen_ty_2 =
3552    _bindgen_ty_2::CRYPT_PK_INVALID_TYPE;
3553pub const CRYPT_OVERFLOW: _bindgen_ty_2 = _bindgen_ty_2::CRYPT_OVERFLOW;
3554pub const CRYPT_UNUSED1: _bindgen_ty_2 = _bindgen_ty_2::CRYPT_UNUSED1;
3555pub const CRYPT_INPUT_TOO_LONG: _bindgen_ty_2 =
3556    _bindgen_ty_2::CRYPT_INPUT_TOO_LONG;
3557pub const CRYPT_PK_INVALID_SIZE: _bindgen_ty_2 =
3558    _bindgen_ty_2::CRYPT_PK_INVALID_SIZE;
3559pub const CRYPT_INVALID_PRIME_SIZE: _bindgen_ty_2 =
3560    _bindgen_ty_2::CRYPT_INVALID_PRIME_SIZE;
3561pub const CRYPT_PK_INVALID_PADDING: _bindgen_ty_2 =
3562    _bindgen_ty_2::CRYPT_PK_INVALID_PADDING;
3563pub const CRYPT_HASH_OVERFLOW: _bindgen_ty_2 =
3564    _bindgen_ty_2::CRYPT_HASH_OVERFLOW;
3565#[repr(u32)]
3566#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
3567pub enum _bindgen_ty_2 {
3568    CRYPT_OK = 0,
3569    CRYPT_ERROR = 1,
3570    CRYPT_NOP = 2,
3571    CRYPT_INVALID_KEYSIZE = 3,
3572    CRYPT_INVALID_ROUNDS = 4,
3573    CRYPT_FAIL_TESTVECTOR = 5,
3574    CRYPT_BUFFER_OVERFLOW = 6,
3575    CRYPT_INVALID_PACKET = 7,
3576    CRYPT_INVALID_PRNGSIZE = 8,
3577    CRYPT_ERROR_READPRNG = 9,
3578    CRYPT_INVALID_CIPHER = 10,
3579    CRYPT_INVALID_HASH = 11,
3580    CRYPT_INVALID_PRNG = 12,
3581    CRYPT_MEM = 13,
3582    CRYPT_PK_TYPE_MISMATCH = 14,
3583    CRYPT_PK_NOT_PRIVATE = 15,
3584    CRYPT_INVALID_ARG = 16,
3585    CRYPT_FILE_NOTFOUND = 17,
3586    CRYPT_PK_INVALID_TYPE = 18,
3587    CRYPT_OVERFLOW = 19,
3588    CRYPT_UNUSED1 = 20,
3589    CRYPT_INPUT_TOO_LONG = 21,
3590    CRYPT_PK_INVALID_SIZE = 22,
3591    CRYPT_INVALID_PRIME_SIZE = 23,
3592    CRYPT_PK_INVALID_PADDING = 24,
3593    CRYPT_HASH_OVERFLOW = 25,
3594}
3595pub type ulong64 = ::std::os::raw::c_ulonglong;
3596pub type ulong32 = ::std::os::raw::c_uint;
3597pub type ltc_mp_digit = ::std::os::raw::c_ulonglong;
3598pub type LTC_FAST_TYPE = ulong64;
3599#[repr(C)]
3600#[derive(Copy)]
3601pub struct blowfish_key {
3602    pub S: [[ulong32; 256usize]; 4usize],
3603    pub K: [ulong32; 18usize],
3604}
3605#[test]
3606fn bindgen_test_layout_blowfish_key() {
3607    assert_eq!(::std::mem::size_of::<blowfish_key>() , 4168usize , concat ! (
3608               "Size of: " , stringify ! ( blowfish_key ) ));
3609    assert_eq! (::std::mem::align_of::<blowfish_key>() , 4usize , concat ! (
3610                "Alignment of " , stringify ! ( blowfish_key ) ));
3611    assert_eq! (unsafe {
3612                & ( * ( 0 as * const blowfish_key ) ) . S as * const _ as
3613                usize } , 0usize , concat ! (
3614                "Alignment of field: " , stringify ! ( blowfish_key ) , "::" ,
3615                stringify ! ( S ) ));
3616    assert_eq! (unsafe {
3617                & ( * ( 0 as * const blowfish_key ) ) . K as * const _ as
3618                usize } , 4096usize , concat ! (
3619                "Alignment of field: " , stringify ! ( blowfish_key ) , "::" ,
3620                stringify ! ( K ) ));
3621}
3622impl Clone for blowfish_key {
3623    fn clone(&self) -> Self { *self }
3624}
3625#[repr(C)]
3626#[derive(Copy)]
3627pub struct rc5_key {
3628    pub rounds: ::std::os::raw::c_int,
3629    pub K: [ulong32; 50usize],
3630}
3631#[test]
3632fn bindgen_test_layout_rc5_key() {
3633    assert_eq!(::std::mem::size_of::<rc5_key>() , 204usize , concat ! (
3634               "Size of: " , stringify ! ( rc5_key ) ));
3635    assert_eq! (::std::mem::align_of::<rc5_key>() , 4usize , concat ! (
3636                "Alignment of " , stringify ! ( rc5_key ) ));
3637    assert_eq! (unsafe {
3638                & ( * ( 0 as * const rc5_key ) ) . rounds as * const _ as
3639                usize } , 0usize , concat ! (
3640                "Alignment of field: " , stringify ! ( rc5_key ) , "::" ,
3641                stringify ! ( rounds ) ));
3642    assert_eq! (unsafe {
3643                & ( * ( 0 as * const rc5_key ) ) . K as * const _ as usize } ,
3644                4usize , concat ! (
3645                "Alignment of field: " , stringify ! ( rc5_key ) , "::" ,
3646                stringify ! ( K ) ));
3647}
3648impl Clone for rc5_key {
3649    fn clone(&self) -> Self { *self }
3650}
3651#[repr(C)]
3652#[derive(Copy)]
3653pub struct rc6_key {
3654    pub K: [ulong32; 44usize],
3655}
3656#[test]
3657fn bindgen_test_layout_rc6_key() {
3658    assert_eq!(::std::mem::size_of::<rc6_key>() , 176usize , concat ! (
3659               "Size of: " , stringify ! ( rc6_key ) ));
3660    assert_eq! (::std::mem::align_of::<rc6_key>() , 4usize , concat ! (
3661                "Alignment of " , stringify ! ( rc6_key ) ));
3662    assert_eq! (unsafe {
3663                & ( * ( 0 as * const rc6_key ) ) . K as * const _ as usize } ,
3664                0usize , concat ! (
3665                "Alignment of field: " , stringify ! ( rc6_key ) , "::" ,
3666                stringify ! ( K ) ));
3667}
3668impl Clone for rc6_key {
3669    fn clone(&self) -> Self { *self }
3670}
3671#[repr(C)]
3672#[derive(Copy)]
3673pub struct saferp_key {
3674    pub K: [[::std::os::raw::c_uchar; 16usize]; 33usize],
3675    pub rounds: ::std::os::raw::c_long,
3676}
3677#[test]
3678fn bindgen_test_layout_saferp_key() {
3679    assert_eq!(::std::mem::size_of::<saferp_key>() , 536usize , concat ! (
3680               "Size of: " , stringify ! ( saferp_key ) ));
3681    assert_eq! (::std::mem::align_of::<saferp_key>() , 8usize , concat ! (
3682                "Alignment of " , stringify ! ( saferp_key ) ));
3683    assert_eq! (unsafe {
3684                & ( * ( 0 as * const saferp_key ) ) . K as * const _ as usize
3685                } , 0usize , concat ! (
3686                "Alignment of field: " , stringify ! ( saferp_key ) , "::" ,
3687                stringify ! ( K ) ));
3688    assert_eq! (unsafe {
3689                & ( * ( 0 as * const saferp_key ) ) . rounds as * const _ as
3690                usize } , 528usize , concat ! (
3691                "Alignment of field: " , stringify ! ( saferp_key ) , "::" ,
3692                stringify ! ( rounds ) ));
3693}
3694impl Clone for saferp_key {
3695    fn clone(&self) -> Self { *self }
3696}
3697#[repr(C)]
3698#[derive(Copy)]
3699pub struct rijndael_key {
3700    pub eK: [ulong32; 60usize],
3701    pub dK: [ulong32; 60usize],
3702    pub Nr: ::std::os::raw::c_int,
3703}
3704#[test]
3705fn bindgen_test_layout_rijndael_key() {
3706    assert_eq!(::std::mem::size_of::<rijndael_key>() , 484usize , concat ! (
3707               "Size of: " , stringify ! ( rijndael_key ) ));
3708    assert_eq! (::std::mem::align_of::<rijndael_key>() , 4usize , concat ! (
3709                "Alignment of " , stringify ! ( rijndael_key ) ));
3710    assert_eq! (unsafe {
3711                & ( * ( 0 as * const rijndael_key ) ) . eK as * const _ as
3712                usize } , 0usize , concat ! (
3713                "Alignment of field: " , stringify ! ( rijndael_key ) , "::" ,
3714                stringify ! ( eK ) ));
3715    assert_eq! (unsafe {
3716                & ( * ( 0 as * const rijndael_key ) ) . dK as * const _ as
3717                usize } , 240usize , concat ! (
3718                "Alignment of field: " , stringify ! ( rijndael_key ) , "::" ,
3719                stringify ! ( dK ) ));
3720    assert_eq! (unsafe {
3721                & ( * ( 0 as * const rijndael_key ) ) . Nr as * const _ as
3722                usize } , 480usize , concat ! (
3723                "Alignment of field: " , stringify ! ( rijndael_key ) , "::" ,
3724                stringify ! ( Nr ) ));
3725}
3726impl Clone for rijndael_key {
3727    fn clone(&self) -> Self { *self }
3728}
3729#[repr(C)]
3730#[derive(Debug, Copy)]
3731pub struct kseed_key {
3732    pub K: [ulong32; 32usize],
3733    pub dK: [ulong32; 32usize],
3734}
3735#[test]
3736fn bindgen_test_layout_kseed_key() {
3737    assert_eq!(::std::mem::size_of::<kseed_key>() , 256usize , concat ! (
3738               "Size of: " , stringify ! ( kseed_key ) ));
3739    assert_eq! (::std::mem::align_of::<kseed_key>() , 4usize , concat ! (
3740                "Alignment of " , stringify ! ( kseed_key ) ));
3741    assert_eq! (unsafe {
3742                & ( * ( 0 as * const kseed_key ) ) . K as * const _ as usize }
3743                , 0usize , concat ! (
3744                "Alignment of field: " , stringify ! ( kseed_key ) , "::" ,
3745                stringify ! ( K ) ));
3746    assert_eq! (unsafe {
3747                & ( * ( 0 as * const kseed_key ) ) . dK as * const _ as usize
3748                } , 128usize , concat ! (
3749                "Alignment of field: " , stringify ! ( kseed_key ) , "::" ,
3750                stringify ! ( dK ) ));
3751}
3752impl Clone for kseed_key {
3753    fn clone(&self) -> Self { *self }
3754}
3755#[repr(C)]
3756#[derive(Debug, Copy)]
3757pub struct kasumi_key {
3758    pub KLi1: [ulong32; 8usize],
3759    pub KLi2: [ulong32; 8usize],
3760    pub KOi1: [ulong32; 8usize],
3761    pub KOi2: [ulong32; 8usize],
3762    pub KOi3: [ulong32; 8usize],
3763    pub KIi1: [ulong32; 8usize],
3764    pub KIi2: [ulong32; 8usize],
3765    pub KIi3: [ulong32; 8usize],
3766}
3767#[test]
3768fn bindgen_test_layout_kasumi_key() {
3769    assert_eq!(::std::mem::size_of::<kasumi_key>() , 256usize , concat ! (
3770               "Size of: " , stringify ! ( kasumi_key ) ));
3771    assert_eq! (::std::mem::align_of::<kasumi_key>() , 4usize , concat ! (
3772                "Alignment of " , stringify ! ( kasumi_key ) ));
3773    assert_eq! (unsafe {
3774                & ( * ( 0 as * const kasumi_key ) ) . KLi1 as * const _ as
3775                usize } , 0usize , concat ! (
3776                "Alignment of field: " , stringify ! ( kasumi_key ) , "::" ,
3777                stringify ! ( KLi1 ) ));
3778    assert_eq! (unsafe {
3779                & ( * ( 0 as * const kasumi_key ) ) . KLi2 as * const _ as
3780                usize } , 32usize , concat ! (
3781                "Alignment of field: " , stringify ! ( kasumi_key ) , "::" ,
3782                stringify ! ( KLi2 ) ));
3783    assert_eq! (unsafe {
3784                & ( * ( 0 as * const kasumi_key ) ) . KOi1 as * const _ as
3785                usize } , 64usize , concat ! (
3786                "Alignment of field: " , stringify ! ( kasumi_key ) , "::" ,
3787                stringify ! ( KOi1 ) ));
3788    assert_eq! (unsafe {
3789                & ( * ( 0 as * const kasumi_key ) ) . KOi2 as * const _ as
3790                usize } , 96usize , concat ! (
3791                "Alignment of field: " , stringify ! ( kasumi_key ) , "::" ,
3792                stringify ! ( KOi2 ) ));
3793    assert_eq! (unsafe {
3794                & ( * ( 0 as * const kasumi_key ) ) . KOi3 as * const _ as
3795                usize } , 128usize , concat ! (
3796                "Alignment of field: " , stringify ! ( kasumi_key ) , "::" ,
3797                stringify ! ( KOi3 ) ));
3798    assert_eq! (unsafe {
3799                & ( * ( 0 as * const kasumi_key ) ) . KIi1 as * const _ as
3800                usize } , 160usize , concat ! (
3801                "Alignment of field: " , stringify ! ( kasumi_key ) , "::" ,
3802                stringify ! ( KIi1 ) ));
3803    assert_eq! (unsafe {
3804                & ( * ( 0 as * const kasumi_key ) ) . KIi2 as * const _ as
3805                usize } , 192usize , concat ! (
3806                "Alignment of field: " , stringify ! ( kasumi_key ) , "::" ,
3807                stringify ! ( KIi2 ) ));
3808    assert_eq! (unsafe {
3809                & ( * ( 0 as * const kasumi_key ) ) . KIi3 as * const _ as
3810                usize } , 224usize , concat ! (
3811                "Alignment of field: " , stringify ! ( kasumi_key ) , "::" ,
3812                stringify ! ( KIi3 ) ));
3813}
3814impl Clone for kasumi_key {
3815    fn clone(&self) -> Self { *self }
3816}
3817#[repr(C)]
3818#[derive(Debug, Copy)]
3819pub struct xtea_key {
3820    pub A: [::std::os::raw::c_ulong; 32usize],
3821    pub B: [::std::os::raw::c_ulong; 32usize],
3822}
3823#[test]
3824fn bindgen_test_layout_xtea_key() {
3825    assert_eq!(::std::mem::size_of::<xtea_key>() , 512usize , concat ! (
3826               "Size of: " , stringify ! ( xtea_key ) ));
3827    assert_eq! (::std::mem::align_of::<xtea_key>() , 8usize , concat ! (
3828                "Alignment of " , stringify ! ( xtea_key ) ));
3829    assert_eq! (unsafe {
3830                & ( * ( 0 as * const xtea_key ) ) . A as * const _ as usize }
3831                , 0usize , concat ! (
3832                "Alignment of field: " , stringify ! ( xtea_key ) , "::" ,
3833                stringify ! ( A ) ));
3834    assert_eq! (unsafe {
3835                & ( * ( 0 as * const xtea_key ) ) . B as * const _ as usize }
3836                , 256usize , concat ! (
3837                "Alignment of field: " , stringify ! ( xtea_key ) , "::" ,
3838                stringify ! ( B ) ));
3839}
3840impl Clone for xtea_key {
3841    fn clone(&self) -> Self { *self }
3842}
3843#[repr(C)]
3844#[derive(Copy)]
3845pub struct twofish_key {
3846    pub S: [[ulong32; 256usize]; 4usize],
3847    pub K: [ulong32; 40usize],
3848}
3849#[test]
3850fn bindgen_test_layout_twofish_key() {
3851    assert_eq!(::std::mem::size_of::<twofish_key>() , 4256usize , concat ! (
3852               "Size of: " , stringify ! ( twofish_key ) ));
3853    assert_eq! (::std::mem::align_of::<twofish_key>() , 4usize , concat ! (
3854                "Alignment of " , stringify ! ( twofish_key ) ));
3855    assert_eq! (unsafe {
3856                & ( * ( 0 as * const twofish_key ) ) . S as * const _ as usize
3857                } , 0usize , concat ! (
3858                "Alignment of field: " , stringify ! ( twofish_key ) , "::" ,
3859                stringify ! ( S ) ));
3860    assert_eq! (unsafe {
3861                & ( * ( 0 as * const twofish_key ) ) . K as * const _ as usize
3862                } , 4096usize , concat ! (
3863                "Alignment of field: " , stringify ! ( twofish_key ) , "::" ,
3864                stringify ! ( K ) ));
3865}
3866impl Clone for twofish_key {
3867    fn clone(&self) -> Self { *self }
3868}
3869pub type safer_block_t = [::std::os::raw::c_uchar; 8usize];
3870pub type safer_key_t = [::std::os::raw::c_uchar; 217usize];
3871#[repr(C)]
3872#[derive(Copy)]
3873pub struct safer_key {
3874    pub key: safer_key_t,
3875}
3876#[test]
3877fn bindgen_test_layout_safer_key() {
3878    assert_eq!(::std::mem::size_of::<safer_key>() , 217usize , concat ! (
3879               "Size of: " , stringify ! ( safer_key ) ));
3880    assert_eq! (::std::mem::align_of::<safer_key>() , 1usize , concat ! (
3881                "Alignment of " , stringify ! ( safer_key ) ));
3882    assert_eq! (unsafe {
3883                & ( * ( 0 as * const safer_key ) ) . key as * const _ as usize
3884                } , 0usize , concat ! (
3885                "Alignment of field: " , stringify ! ( safer_key ) , "::" ,
3886                stringify ! ( key ) ));
3887}
3888impl Clone for safer_key {
3889    fn clone(&self) -> Self { *self }
3890}
3891#[repr(C)]
3892#[derive(Copy)]
3893pub struct rc2_key {
3894    pub xkey: [::std::os::raw::c_uint; 64usize],
3895}
3896#[test]
3897fn bindgen_test_layout_rc2_key() {
3898    assert_eq!(::std::mem::size_of::<rc2_key>() , 256usize , concat ! (
3899               "Size of: " , stringify ! ( rc2_key ) ));
3900    assert_eq! (::std::mem::align_of::<rc2_key>() , 4usize , concat ! (
3901                "Alignment of " , stringify ! ( rc2_key ) ));
3902    assert_eq! (unsafe {
3903                & ( * ( 0 as * const rc2_key ) ) . xkey as * const _ as usize
3904                } , 0usize , concat ! (
3905                "Alignment of field: " , stringify ! ( rc2_key ) , "::" ,
3906                stringify ! ( xkey ) ));
3907}
3908impl Clone for rc2_key {
3909    fn clone(&self) -> Self { *self }
3910}
3911#[repr(C)]
3912#[derive(Debug, Copy)]
3913pub struct des_key {
3914    pub ek: [ulong32; 32usize],
3915    pub dk: [ulong32; 32usize],
3916}
3917#[test]
3918fn bindgen_test_layout_des_key() {
3919    assert_eq!(::std::mem::size_of::<des_key>() , 256usize , concat ! (
3920               "Size of: " , stringify ! ( des_key ) ));
3921    assert_eq! (::std::mem::align_of::<des_key>() , 4usize , concat ! (
3922                "Alignment of " , stringify ! ( des_key ) ));
3923    assert_eq! (unsafe {
3924                & ( * ( 0 as * const des_key ) ) . ek as * const _ as usize }
3925                , 0usize , concat ! (
3926                "Alignment of field: " , stringify ! ( des_key ) , "::" ,
3927                stringify ! ( ek ) ));
3928    assert_eq! (unsafe {
3929                & ( * ( 0 as * const des_key ) ) . dk as * const _ as usize }
3930                , 128usize , concat ! (
3931                "Alignment of field: " , stringify ! ( des_key ) , "::" ,
3932                stringify ! ( dk ) ));
3933}
3934impl Clone for des_key {
3935    fn clone(&self) -> Self { *self }
3936}
3937#[repr(C)]
3938#[derive(Debug, Copy)]
3939pub struct des3_key {
3940    pub ek: [[ulong32; 32usize]; 3usize],
3941    pub dk: [[ulong32; 32usize]; 3usize],
3942}
3943#[test]
3944fn bindgen_test_layout_des3_key() {
3945    assert_eq!(::std::mem::size_of::<des3_key>() , 768usize , concat ! (
3946               "Size of: " , stringify ! ( des3_key ) ));
3947    assert_eq! (::std::mem::align_of::<des3_key>() , 4usize , concat ! (
3948                "Alignment of " , stringify ! ( des3_key ) ));
3949    assert_eq! (unsafe {
3950                & ( * ( 0 as * const des3_key ) ) . ek as * const _ as usize }
3951                , 0usize , concat ! (
3952                "Alignment of field: " , stringify ! ( des3_key ) , "::" ,
3953                stringify ! ( ek ) ));
3954    assert_eq! (unsafe {
3955                & ( * ( 0 as * const des3_key ) ) . dk as * const _ as usize }
3956                , 384usize , concat ! (
3957                "Alignment of field: " , stringify ! ( des3_key ) , "::" ,
3958                stringify ! ( dk ) ));
3959}
3960impl Clone for des3_key {
3961    fn clone(&self) -> Self { *self }
3962}
3963#[repr(C)]
3964#[derive(Debug, Copy)]
3965pub struct cast5_key {
3966    pub K: [ulong32; 32usize],
3967    pub keylen: ulong32,
3968}
3969#[test]
3970fn bindgen_test_layout_cast5_key() {
3971    assert_eq!(::std::mem::size_of::<cast5_key>() , 132usize , concat ! (
3972               "Size of: " , stringify ! ( cast5_key ) ));
3973    assert_eq! (::std::mem::align_of::<cast5_key>() , 4usize , concat ! (
3974                "Alignment of " , stringify ! ( cast5_key ) ));
3975    assert_eq! (unsafe {
3976                & ( * ( 0 as * const cast5_key ) ) . K as * const _ as usize }
3977                , 0usize , concat ! (
3978                "Alignment of field: " , stringify ! ( cast5_key ) , "::" ,
3979                stringify ! ( K ) ));
3980    assert_eq! (unsafe {
3981                & ( * ( 0 as * const cast5_key ) ) . keylen as * const _ as
3982                usize } , 128usize , concat ! (
3983                "Alignment of field: " , stringify ! ( cast5_key ) , "::" ,
3984                stringify ! ( keylen ) ));
3985}
3986impl Clone for cast5_key {
3987    fn clone(&self) -> Self { *self }
3988}
3989#[repr(C)]
3990#[derive(Debug, Copy)]
3991pub struct noekeon_key {
3992    pub K: [ulong32; 4usize],
3993    pub dK: [ulong32; 4usize],
3994}
3995#[test]
3996fn bindgen_test_layout_noekeon_key() {
3997    assert_eq!(::std::mem::size_of::<noekeon_key>() , 32usize , concat ! (
3998               "Size of: " , stringify ! ( noekeon_key ) ));
3999    assert_eq! (::std::mem::align_of::<noekeon_key>() , 4usize , concat ! (
4000                "Alignment of " , stringify ! ( noekeon_key ) ));
4001    assert_eq! (unsafe {
4002                & ( * ( 0 as * const noekeon_key ) ) . K as * const _ as usize
4003                } , 0usize , concat ! (
4004                "Alignment of field: " , stringify ! ( noekeon_key ) , "::" ,
4005                stringify ! ( K ) ));
4006    assert_eq! (unsafe {
4007                & ( * ( 0 as * const noekeon_key ) ) . dK as * const _ as
4008                usize } , 16usize , concat ! (
4009                "Alignment of field: " , stringify ! ( noekeon_key ) , "::" ,
4010                stringify ! ( dK ) ));
4011}
4012impl Clone for noekeon_key {
4013    fn clone(&self) -> Self { *self }
4014}
4015#[repr(C)]
4016#[derive(Debug, Copy)]
4017pub struct skipjack_key {
4018    pub key: [::std::os::raw::c_uchar; 10usize],
4019}
4020#[test]
4021fn bindgen_test_layout_skipjack_key() {
4022    assert_eq!(::std::mem::size_of::<skipjack_key>() , 10usize , concat ! (
4023               "Size of: " , stringify ! ( skipjack_key ) ));
4024    assert_eq! (::std::mem::align_of::<skipjack_key>() , 1usize , concat ! (
4025                "Alignment of " , stringify ! ( skipjack_key ) ));
4026    assert_eq! (unsafe {
4027                & ( * ( 0 as * const skipjack_key ) ) . key as * const _ as
4028                usize } , 0usize , concat ! (
4029                "Alignment of field: " , stringify ! ( skipjack_key ) , "::" ,
4030                stringify ! ( key ) ));
4031}
4032impl Clone for skipjack_key {
4033    fn clone(&self) -> Self { *self }
4034}
4035#[repr(C)]
4036#[derive(Debug, Copy)]
4037pub struct khazad_key {
4038    pub roundKeyEnc: [ulong64; 9usize],
4039    pub roundKeyDec: [ulong64; 9usize],
4040}
4041#[test]
4042fn bindgen_test_layout_khazad_key() {
4043    assert_eq!(::std::mem::size_of::<khazad_key>() , 144usize , concat ! (
4044               "Size of: " , stringify ! ( khazad_key ) ));
4045    assert_eq! (::std::mem::align_of::<khazad_key>() , 8usize , concat ! (
4046                "Alignment of " , stringify ! ( khazad_key ) ));
4047    assert_eq! (unsafe {
4048                & ( * ( 0 as * const khazad_key ) ) . roundKeyEnc as * const _
4049                as usize } , 0usize , concat ! (
4050                "Alignment of field: " , stringify ! ( khazad_key ) , "::" ,
4051                stringify ! ( roundKeyEnc ) ));
4052    assert_eq! (unsafe {
4053                & ( * ( 0 as * const khazad_key ) ) . roundKeyDec as * const _
4054                as usize } , 72usize , concat ! (
4055                "Alignment of field: " , stringify ! ( khazad_key ) , "::" ,
4056                stringify ! ( roundKeyDec ) ));
4057}
4058impl Clone for khazad_key {
4059    fn clone(&self) -> Self { *self }
4060}
4061#[repr(C)]
4062#[derive(Debug, Copy)]
4063pub struct anubis_key {
4064    pub keyBits: ::std::os::raw::c_int,
4065    pub R: ::std::os::raw::c_int,
4066    pub roundKeyEnc: [[ulong32; 4usize]; 19usize],
4067    pub roundKeyDec: [[ulong32; 4usize]; 19usize],
4068}
4069#[test]
4070fn bindgen_test_layout_anubis_key() {
4071    assert_eq!(::std::mem::size_of::<anubis_key>() , 616usize , concat ! (
4072               "Size of: " , stringify ! ( anubis_key ) ));
4073    assert_eq! (::std::mem::align_of::<anubis_key>() , 4usize , concat ! (
4074                "Alignment of " , stringify ! ( anubis_key ) ));
4075    assert_eq! (unsafe {
4076                & ( * ( 0 as * const anubis_key ) ) . keyBits as * const _ as
4077                usize } , 0usize , concat ! (
4078                "Alignment of field: " , stringify ! ( anubis_key ) , "::" ,
4079                stringify ! ( keyBits ) ));
4080    assert_eq! (unsafe {
4081                & ( * ( 0 as * const anubis_key ) ) . R as * const _ as usize
4082                } , 4usize , concat ! (
4083                "Alignment of field: " , stringify ! ( anubis_key ) , "::" ,
4084                stringify ! ( R ) ));
4085    assert_eq! (unsafe {
4086                & ( * ( 0 as * const anubis_key ) ) . roundKeyEnc as * const _
4087                as usize } , 8usize , concat ! (
4088                "Alignment of field: " , stringify ! ( anubis_key ) , "::" ,
4089                stringify ! ( roundKeyEnc ) ));
4090    assert_eq! (unsafe {
4091                & ( * ( 0 as * const anubis_key ) ) . roundKeyDec as * const _
4092                as usize } , 312usize , concat ! (
4093                "Alignment of field: " , stringify ! ( anubis_key ) , "::" ,
4094                stringify ! ( roundKeyDec ) ));
4095}
4096impl Clone for anubis_key {
4097    fn clone(&self) -> Self { *self }
4098}
4099#[repr(C)]
4100#[derive(Debug, Copy)]
4101pub struct multi2_key {
4102    pub N: ::std::os::raw::c_int,
4103    pub uk: [ulong32; 8usize],
4104}
4105#[test]
4106fn bindgen_test_layout_multi2_key() {
4107    assert_eq!(::std::mem::size_of::<multi2_key>() , 36usize , concat ! (
4108               "Size of: " , stringify ! ( multi2_key ) ));
4109    assert_eq! (::std::mem::align_of::<multi2_key>() , 4usize , concat ! (
4110                "Alignment of " , stringify ! ( multi2_key ) ));
4111    assert_eq! (unsafe {
4112                & ( * ( 0 as * const multi2_key ) ) . N as * const _ as usize
4113                } , 0usize , concat ! (
4114                "Alignment of field: " , stringify ! ( multi2_key ) , "::" ,
4115                stringify ! ( N ) ));
4116    assert_eq! (unsafe {
4117                & ( * ( 0 as * const multi2_key ) ) . uk as * const _ as usize
4118                } , 4usize , concat ! (
4119                "Alignment of field: " , stringify ! ( multi2_key ) , "::" ,
4120                stringify ! ( uk ) ));
4121}
4122impl Clone for multi2_key {
4123    fn clone(&self) -> Self { *self }
4124}
4125#[repr(C)]
4126#[derive(Debug, Copy)]
4127pub struct camellia_key {
4128    pub R: ::std::os::raw::c_int,
4129    pub kw: [ulong64; 4usize],
4130    pub k: [ulong64; 24usize],
4131    pub kl: [ulong64; 6usize],
4132}
4133#[test]
4134fn bindgen_test_layout_camellia_key() {
4135    assert_eq!(::std::mem::size_of::<camellia_key>() , 280usize , concat ! (
4136               "Size of: " , stringify ! ( camellia_key ) ));
4137    assert_eq! (::std::mem::align_of::<camellia_key>() , 8usize , concat ! (
4138                "Alignment of " , stringify ! ( camellia_key ) ));
4139    assert_eq! (unsafe {
4140                & ( * ( 0 as * const camellia_key ) ) . R as * const _ as
4141                usize } , 0usize , concat ! (
4142                "Alignment of field: " , stringify ! ( camellia_key ) , "::" ,
4143                stringify ! ( R ) ));
4144    assert_eq! (unsafe {
4145                & ( * ( 0 as * const camellia_key ) ) . kw as * const _ as
4146                usize } , 8usize , concat ! (
4147                "Alignment of field: " , stringify ! ( camellia_key ) , "::" ,
4148                stringify ! ( kw ) ));
4149    assert_eq! (unsafe {
4150                & ( * ( 0 as * const camellia_key ) ) . k as * const _ as
4151                usize } , 40usize , concat ! (
4152                "Alignment of field: " , stringify ! ( camellia_key ) , "::" ,
4153                stringify ! ( k ) ));
4154    assert_eq! (unsafe {
4155                & ( * ( 0 as * const camellia_key ) ) . kl as * const _ as
4156                usize } , 232usize , concat ! (
4157                "Alignment of field: " , stringify ! ( camellia_key ) , "::" ,
4158                stringify ! ( kl ) ));
4159}
4160impl Clone for camellia_key {
4161    fn clone(&self) -> Self { *self }
4162}
4163#[repr(C)]
4164#[derive(Copy)]
4165pub union Symmetric_key {
4166    pub des: des_key,
4167    pub des3: des3_key,
4168    pub rc2: rc2_key,
4169    pub safer: safer_key,
4170    pub twofish: twofish_key,
4171    pub blowfish: blowfish_key,
4172    pub rc5: rc5_key,
4173    pub rc6: rc6_key,
4174    pub saferp: saferp_key,
4175    pub rijndael: rijndael_key,
4176    pub xtea: xtea_key,
4177    pub cast5: cast5_key,
4178    pub noekeon: noekeon_key,
4179    pub skipjack: skipjack_key,
4180    pub khazad: khazad_key,
4181    pub anubis: anubis_key,
4182    pub kseed: kseed_key,
4183    pub kasumi: kasumi_key,
4184    pub multi2: multi2_key,
4185    pub camellia: camellia_key,
4186    pub data: *mut ::std::os::raw::c_void,
4187    _bindgen_union_align: [u64; 532usize],
4188}
4189#[test]
4190fn bindgen_test_layout_Symmetric_key() {
4191    assert_eq!(::std::mem::size_of::<Symmetric_key>() , 4256usize , concat ! (
4192               "Size of: " , stringify ! ( Symmetric_key ) ));
4193    assert_eq! (::std::mem::align_of::<Symmetric_key>() , 8usize , concat ! (
4194                "Alignment of " , stringify ! ( Symmetric_key ) ));
4195    assert_eq! (unsafe {
4196                & ( * ( 0 as * const Symmetric_key ) ) . des as * const _ as
4197                usize } , 0usize , concat ! (
4198                "Alignment of field: " , stringify ! ( Symmetric_key ) , "::"
4199                , stringify ! ( des ) ));
4200    assert_eq! (unsafe {
4201                & ( * ( 0 as * const Symmetric_key ) ) . des3 as * const _ as
4202                usize } , 0usize , concat ! (
4203                "Alignment of field: " , stringify ! ( Symmetric_key ) , "::"
4204                , stringify ! ( des3 ) ));
4205    assert_eq! (unsafe {
4206                & ( * ( 0 as * const Symmetric_key ) ) . rc2 as * const _ as
4207                usize } , 0usize , concat ! (
4208                "Alignment of field: " , stringify ! ( Symmetric_key ) , "::"
4209                , stringify ! ( rc2 ) ));
4210    assert_eq! (unsafe {
4211                & ( * ( 0 as * const Symmetric_key ) ) . safer as * const _ as
4212                usize } , 0usize , concat ! (
4213                "Alignment of field: " , stringify ! ( Symmetric_key ) , "::"
4214                , stringify ! ( safer ) ));
4215    assert_eq! (unsafe {
4216                & ( * ( 0 as * const Symmetric_key ) ) . twofish as * const _
4217                as usize } , 0usize , concat ! (
4218                "Alignment of field: " , stringify ! ( Symmetric_key ) , "::"
4219                , stringify ! ( twofish ) ));
4220    assert_eq! (unsafe {
4221                & ( * ( 0 as * const Symmetric_key ) ) . blowfish as * const _
4222                as usize } , 0usize , concat ! (
4223                "Alignment of field: " , stringify ! ( Symmetric_key ) , "::"
4224                , stringify ! ( blowfish ) ));
4225    assert_eq! (unsafe {
4226                & ( * ( 0 as * const Symmetric_key ) ) . rc5 as * const _ as
4227                usize } , 0usize , concat ! (
4228                "Alignment of field: " , stringify ! ( Symmetric_key ) , "::"
4229                , stringify ! ( rc5 ) ));
4230    assert_eq! (unsafe {
4231                & ( * ( 0 as * const Symmetric_key ) ) . rc6 as * const _ as
4232                usize } , 0usize , concat ! (
4233                "Alignment of field: " , stringify ! ( Symmetric_key ) , "::"
4234                , stringify ! ( rc6 ) ));
4235    assert_eq! (unsafe {
4236                & ( * ( 0 as * const Symmetric_key ) ) . saferp as * const _
4237                as usize } , 0usize , concat ! (
4238                "Alignment of field: " , stringify ! ( Symmetric_key ) , "::"
4239                , stringify ! ( saferp ) ));
4240    assert_eq! (unsafe {
4241                & ( * ( 0 as * const Symmetric_key ) ) . rijndael as * const _
4242                as usize } , 0usize , concat ! (
4243                "Alignment of field: " , stringify ! ( Symmetric_key ) , "::"
4244                , stringify ! ( rijndael ) ));
4245    assert_eq! (unsafe {
4246                & ( * ( 0 as * const Symmetric_key ) ) . xtea as * const _ as
4247                usize } , 0usize , concat ! (
4248                "Alignment of field: " , stringify ! ( Symmetric_key ) , "::"
4249                , stringify ! ( xtea ) ));
4250    assert_eq! (unsafe {
4251                & ( * ( 0 as * const Symmetric_key ) ) . cast5 as * const _ as
4252                usize } , 0usize , concat ! (
4253                "Alignment of field: " , stringify ! ( Symmetric_key ) , "::"
4254                , stringify ! ( cast5 ) ));
4255    assert_eq! (unsafe {
4256                & ( * ( 0 as * const Symmetric_key ) ) . noekeon as * const _
4257                as usize } , 0usize , concat ! (
4258                "Alignment of field: " , stringify ! ( Symmetric_key ) , "::"
4259                , stringify ! ( noekeon ) ));
4260    assert_eq! (unsafe {
4261                & ( * ( 0 as * const Symmetric_key ) ) . skipjack as * const _
4262                as usize } , 0usize , concat ! (
4263                "Alignment of field: " , stringify ! ( Symmetric_key ) , "::"
4264                , stringify ! ( skipjack ) ));
4265    assert_eq! (unsafe {
4266                & ( * ( 0 as * const Symmetric_key ) ) . khazad as * const _
4267                as usize } , 0usize , concat ! (
4268                "Alignment of field: " , stringify ! ( Symmetric_key ) , "::"
4269                , stringify ! ( khazad ) ));
4270    assert_eq! (unsafe {
4271                & ( * ( 0 as * const Symmetric_key ) ) . anubis as * const _
4272                as usize } , 0usize , concat ! (
4273                "Alignment of field: " , stringify ! ( Symmetric_key ) , "::"
4274                , stringify ! ( anubis ) ));
4275    assert_eq! (unsafe {
4276                & ( * ( 0 as * const Symmetric_key ) ) . kseed as * const _ as
4277                usize } , 0usize , concat ! (
4278                "Alignment of field: " , stringify ! ( Symmetric_key ) , "::"
4279                , stringify ! ( kseed ) ));
4280    assert_eq! (unsafe {
4281                & ( * ( 0 as * const Symmetric_key ) ) . kasumi as * const _
4282                as usize } , 0usize , concat ! (
4283                "Alignment of field: " , stringify ! ( Symmetric_key ) , "::"
4284                , stringify ! ( kasumi ) ));
4285    assert_eq! (unsafe {
4286                & ( * ( 0 as * const Symmetric_key ) ) . multi2 as * const _
4287                as usize } , 0usize , concat ! (
4288                "Alignment of field: " , stringify ! ( Symmetric_key ) , "::"
4289                , stringify ! ( multi2 ) ));
4290    assert_eq! (unsafe {
4291                & ( * ( 0 as * const Symmetric_key ) ) . camellia as * const _
4292                as usize } , 0usize , concat ! (
4293                "Alignment of field: " , stringify ! ( Symmetric_key ) , "::"
4294                , stringify ! ( camellia ) ));
4295    assert_eq! (unsafe {
4296                & ( * ( 0 as * const Symmetric_key ) ) . data as * const _ as
4297                usize } , 0usize , concat ! (
4298                "Alignment of field: " , stringify ! ( Symmetric_key ) , "::"
4299                , stringify ! ( data ) ));
4300}
4301impl Clone for Symmetric_key {
4302    fn clone(&self) -> Self { *self }
4303}
4304pub type symmetric_key = Symmetric_key;
4305/// A block cipher ECB structure
4306#[repr(C)]
4307#[derive(Copy)]
4308pub struct symmetric_ECB {
4309    /// The index of the cipher chosen
4310    pub cipher: ::std::os::raw::c_int,
4311    /// The block size of the given cipher
4312    pub blocklen: ::std::os::raw::c_int,
4313    /// The scheduled key
4314    pub key: symmetric_key,
4315}
4316#[test]
4317fn bindgen_test_layout_symmetric_ECB() {
4318    assert_eq!(::std::mem::size_of::<symmetric_ECB>() , 4264usize , concat ! (
4319               "Size of: " , stringify ! ( symmetric_ECB ) ));
4320    assert_eq! (::std::mem::align_of::<symmetric_ECB>() , 8usize , concat ! (
4321                "Alignment of " , stringify ! ( symmetric_ECB ) ));
4322    assert_eq! (unsafe {
4323                & ( * ( 0 as * const symmetric_ECB ) ) . cipher as * const _
4324                as usize } , 0usize , concat ! (
4325                "Alignment of field: " , stringify ! ( symmetric_ECB ) , "::"
4326                , stringify ! ( cipher ) ));
4327    assert_eq! (unsafe {
4328                & ( * ( 0 as * const symmetric_ECB ) ) . blocklen as * const _
4329                as usize } , 4usize , concat ! (
4330                "Alignment of field: " , stringify ! ( symmetric_ECB ) , "::"
4331                , stringify ! ( blocklen ) ));
4332    assert_eq! (unsafe {
4333                & ( * ( 0 as * const symmetric_ECB ) ) . key as * const _ as
4334                usize } , 8usize , concat ! (
4335                "Alignment of field: " , stringify ! ( symmetric_ECB ) , "::"
4336                , stringify ! ( key ) ));
4337}
4338impl Clone for symmetric_ECB {
4339    fn clone(&self) -> Self { *self }
4340}
4341/// A block cipher CFB structure
4342#[repr(C)]
4343#[derive(Copy)]
4344pub struct symmetric_CFB {
4345    /// The index of the cipher chosen
4346    pub cipher: ::std::os::raw::c_int,
4347    /// The block size of the given cipher
4348    pub blocklen: ::std::os::raw::c_int,
4349    /// The padding offset
4350    pub padlen: ::std::os::raw::c_int,
4351    /// The current IV
4352    pub IV: [::std::os::raw::c_uchar; 128usize],
4353    /// The pad used to encrypt/decrypt
4354    pub pad: [::std::os::raw::c_uchar; 128usize],
4355    /// The scheduled key
4356    pub key: symmetric_key,
4357}
4358#[test]
4359fn bindgen_test_layout_symmetric_CFB() {
4360    assert_eq!(::std::mem::size_of::<symmetric_CFB>() , 4528usize , concat ! (
4361               "Size of: " , stringify ! ( symmetric_CFB ) ));
4362    assert_eq! (::std::mem::align_of::<symmetric_CFB>() , 8usize , concat ! (
4363                "Alignment of " , stringify ! ( symmetric_CFB ) ));
4364    assert_eq! (unsafe {
4365                & ( * ( 0 as * const symmetric_CFB ) ) . cipher as * const _
4366                as usize } , 0usize , concat ! (
4367                "Alignment of field: " , stringify ! ( symmetric_CFB ) , "::"
4368                , stringify ! ( cipher ) ));
4369    assert_eq! (unsafe {
4370                & ( * ( 0 as * const symmetric_CFB ) ) . blocklen as * const _
4371                as usize } , 4usize , concat ! (
4372                "Alignment of field: " , stringify ! ( symmetric_CFB ) , "::"
4373                , stringify ! ( blocklen ) ));
4374    assert_eq! (unsafe {
4375                & ( * ( 0 as * const symmetric_CFB ) ) . padlen as * const _
4376                as usize } , 8usize , concat ! (
4377                "Alignment of field: " , stringify ! ( symmetric_CFB ) , "::"
4378                , stringify ! ( padlen ) ));
4379    assert_eq! (unsafe {
4380                & ( * ( 0 as * const symmetric_CFB ) ) . IV as * const _ as
4381                usize } , 12usize , concat ! (
4382                "Alignment of field: " , stringify ! ( symmetric_CFB ) , "::"
4383                , stringify ! ( IV ) ));
4384    assert_eq! (unsafe {
4385                & ( * ( 0 as * const symmetric_CFB ) ) . pad as * const _ as
4386                usize } , 140usize , concat ! (
4387                "Alignment of field: " , stringify ! ( symmetric_CFB ) , "::"
4388                , stringify ! ( pad ) ));
4389    assert_eq! (unsafe {
4390                & ( * ( 0 as * const symmetric_CFB ) ) . key as * const _ as
4391                usize } , 272usize , concat ! (
4392                "Alignment of field: " , stringify ! ( symmetric_CFB ) , "::"
4393                , stringify ! ( key ) ));
4394}
4395impl Clone for symmetric_CFB {
4396    fn clone(&self) -> Self { *self }
4397}
4398/// A block cipher OFB structure
4399#[repr(C)]
4400#[derive(Copy)]
4401pub struct symmetric_OFB {
4402    /// The index of the cipher chosen
4403    pub cipher: ::std::os::raw::c_int,
4404    /// The block size of the given cipher
4405    pub blocklen: ::std::os::raw::c_int,
4406    /// The padding offset
4407    pub padlen: ::std::os::raw::c_int,
4408    /// The current IV
4409    pub IV: [::std::os::raw::c_uchar; 128usize],
4410    /// The scheduled key
4411    pub key: symmetric_key,
4412}
4413#[test]
4414fn bindgen_test_layout_symmetric_OFB() {
4415    assert_eq!(::std::mem::size_of::<symmetric_OFB>() , 4400usize , concat ! (
4416               "Size of: " , stringify ! ( symmetric_OFB ) ));
4417    assert_eq! (::std::mem::align_of::<symmetric_OFB>() , 8usize , concat ! (
4418                "Alignment of " , stringify ! ( symmetric_OFB ) ));
4419    assert_eq! (unsafe {
4420                & ( * ( 0 as * const symmetric_OFB ) ) . cipher as * const _
4421                as usize } , 0usize , concat ! (
4422                "Alignment of field: " , stringify ! ( symmetric_OFB ) , "::"
4423                , stringify ! ( cipher ) ));
4424    assert_eq! (unsafe {
4425                & ( * ( 0 as * const symmetric_OFB ) ) . blocklen as * const _
4426                as usize } , 4usize , concat ! (
4427                "Alignment of field: " , stringify ! ( symmetric_OFB ) , "::"
4428                , stringify ! ( blocklen ) ));
4429    assert_eq! (unsafe {
4430                & ( * ( 0 as * const symmetric_OFB ) ) . padlen as * const _
4431                as usize } , 8usize , concat ! (
4432                "Alignment of field: " , stringify ! ( symmetric_OFB ) , "::"
4433                , stringify ! ( padlen ) ));
4434    assert_eq! (unsafe {
4435                & ( * ( 0 as * const symmetric_OFB ) ) . IV as * const _ as
4436                usize } , 12usize , concat ! (
4437                "Alignment of field: " , stringify ! ( symmetric_OFB ) , "::"
4438                , stringify ! ( IV ) ));
4439    assert_eq! (unsafe {
4440                & ( * ( 0 as * const symmetric_OFB ) ) . key as * const _ as
4441                usize } , 144usize , concat ! (
4442                "Alignment of field: " , stringify ! ( symmetric_OFB ) , "::"
4443                , stringify ! ( key ) ));
4444}
4445impl Clone for symmetric_OFB {
4446    fn clone(&self) -> Self { *self }
4447}
4448/// A block cipher CBC structure
4449#[repr(C)]
4450#[derive(Copy)]
4451pub struct symmetric_CBC {
4452    /// The index of the cipher chosen
4453    pub cipher: ::std::os::raw::c_int,
4454    /// The block size of the given cipher
4455    pub blocklen: ::std::os::raw::c_int,
4456    /// The current IV
4457    pub IV: [::std::os::raw::c_uchar; 128usize],
4458    /// The scheduled key
4459    pub key: symmetric_key,
4460}
4461#[test]
4462fn bindgen_test_layout_symmetric_CBC() {
4463    assert_eq!(::std::mem::size_of::<symmetric_CBC>() , 4392usize , concat ! (
4464               "Size of: " , stringify ! ( symmetric_CBC ) ));
4465    assert_eq! (::std::mem::align_of::<symmetric_CBC>() , 8usize , concat ! (
4466                "Alignment of " , stringify ! ( symmetric_CBC ) ));
4467    assert_eq! (unsafe {
4468                & ( * ( 0 as * const symmetric_CBC ) ) . cipher as * const _
4469                as usize } , 0usize , concat ! (
4470                "Alignment of field: " , stringify ! ( symmetric_CBC ) , "::"
4471                , stringify ! ( cipher ) ));
4472    assert_eq! (unsafe {
4473                & ( * ( 0 as * const symmetric_CBC ) ) . blocklen as * const _
4474                as usize } , 4usize , concat ! (
4475                "Alignment of field: " , stringify ! ( symmetric_CBC ) , "::"
4476                , stringify ! ( blocklen ) ));
4477    assert_eq! (unsafe {
4478                & ( * ( 0 as * const symmetric_CBC ) ) . IV as * const _ as
4479                usize } , 8usize , concat ! (
4480                "Alignment of field: " , stringify ! ( symmetric_CBC ) , "::"
4481                , stringify ! ( IV ) ));
4482    assert_eq! (unsafe {
4483                & ( * ( 0 as * const symmetric_CBC ) ) . key as * const _ as
4484                usize } , 136usize , concat ! (
4485                "Alignment of field: " , stringify ! ( symmetric_CBC ) , "::"
4486                , stringify ! ( key ) ));
4487}
4488impl Clone for symmetric_CBC {
4489    fn clone(&self) -> Self { *self }
4490}
4491/// A block cipher CTR structure
4492#[repr(C)]
4493#[derive(Copy)]
4494pub struct symmetric_CTR {
4495    /// The index of the cipher chosen
4496    pub cipher: ::std::os::raw::c_int,
4497    /// The block size of the given cipher
4498    pub blocklen: ::std::os::raw::c_int,
4499    /// The padding offset
4500    pub padlen: ::std::os::raw::c_int,
4501    /// The mode (endianess) of the CTR, 0==little, 1==big
4502    pub mode: ::std::os::raw::c_int,
4503    /// counter width
4504    pub ctrlen: ::std::os::raw::c_int,
4505    /// The counter
4506    pub ctr: [::std::os::raw::c_uchar; 128usize],
4507    /// The pad used to encrypt/decrypt
4508    pub pad: [::std::os::raw::c_uchar; 128usize],
4509    /// The scheduled key
4510    pub key: symmetric_key,
4511}
4512#[test]
4513fn bindgen_test_layout_symmetric_CTR() {
4514    assert_eq!(::std::mem::size_of::<symmetric_CTR>() , 4536usize , concat ! (
4515               "Size of: " , stringify ! ( symmetric_CTR ) ));
4516    assert_eq! (::std::mem::align_of::<symmetric_CTR>() , 8usize , concat ! (
4517                "Alignment of " , stringify ! ( symmetric_CTR ) ));
4518    assert_eq! (unsafe {
4519                & ( * ( 0 as * const symmetric_CTR ) ) . cipher as * const _
4520                as usize } , 0usize , concat ! (
4521                "Alignment of field: " , stringify ! ( symmetric_CTR ) , "::"
4522                , stringify ! ( cipher ) ));
4523    assert_eq! (unsafe {
4524                & ( * ( 0 as * const symmetric_CTR ) ) . blocklen as * const _
4525                as usize } , 4usize , concat ! (
4526                "Alignment of field: " , stringify ! ( symmetric_CTR ) , "::"
4527                , stringify ! ( blocklen ) ));
4528    assert_eq! (unsafe {
4529                & ( * ( 0 as * const symmetric_CTR ) ) . padlen as * const _
4530                as usize } , 8usize , concat ! (
4531                "Alignment of field: " , stringify ! ( symmetric_CTR ) , "::"
4532                , stringify ! ( padlen ) ));
4533    assert_eq! (unsafe {
4534                & ( * ( 0 as * const symmetric_CTR ) ) . mode as * const _ as
4535                usize } , 12usize , concat ! (
4536                "Alignment of field: " , stringify ! ( symmetric_CTR ) , "::"
4537                , stringify ! ( mode ) ));
4538    assert_eq! (unsafe {
4539                & ( * ( 0 as * const symmetric_CTR ) ) . ctrlen as * const _
4540                as usize } , 16usize , concat ! (
4541                "Alignment of field: " , stringify ! ( symmetric_CTR ) , "::"
4542                , stringify ! ( ctrlen ) ));
4543    assert_eq! (unsafe {
4544                & ( * ( 0 as * const symmetric_CTR ) ) . ctr as * const _ as
4545                usize } , 20usize , concat ! (
4546                "Alignment of field: " , stringify ! ( symmetric_CTR ) , "::"
4547                , stringify ! ( ctr ) ));
4548    assert_eq! (unsafe {
4549                & ( * ( 0 as * const symmetric_CTR ) ) . pad as * const _ as
4550                usize } , 148usize , concat ! (
4551                "Alignment of field: " , stringify ! ( symmetric_CTR ) , "::"
4552                , stringify ! ( pad ) ));
4553    assert_eq! (unsafe {
4554                & ( * ( 0 as * const symmetric_CTR ) ) . key as * const _ as
4555                usize } , 280usize , concat ! (
4556                "Alignment of field: " , stringify ! ( symmetric_CTR ) , "::"
4557                , stringify ! ( key ) ));
4558}
4559impl Clone for symmetric_CTR {
4560    fn clone(&self) -> Self { *self }
4561}
4562/// A LRW structure
4563#[repr(C)]
4564#[derive(Copy)]
4565pub struct symmetric_LRW {
4566    /// The index of the cipher chosen (must be a 128-bit block cipher)
4567    pub cipher: ::std::os::raw::c_int,
4568    /// The current IV
4569    pub IV: [::std::os::raw::c_uchar; 16usize],
4570    /// the tweak key
4571    pub tweak: [::std::os::raw::c_uchar; 16usize],
4572    /// The current pad, it's the product of the first 15 bytes against the tweak key
4573    pub pad: [::std::os::raw::c_uchar; 16usize],
4574    /// The scheduled symmetric key
4575    pub key: symmetric_key,
4576    /// The pre-computed multiplication table
4577    pub PC: [[[::std::os::raw::c_uchar; 16usize]; 256usize]; 16usize],
4578}
4579#[test]
4580fn bindgen_test_layout_symmetric_LRW() {
4581    assert_eq!(::std::mem::size_of::<symmetric_LRW>() , 69848usize , concat !
4582               ( "Size of: " , stringify ! ( symmetric_LRW ) ));
4583    assert_eq! (::std::mem::align_of::<symmetric_LRW>() , 8usize , concat ! (
4584                "Alignment of " , stringify ! ( symmetric_LRW ) ));
4585    assert_eq! (unsafe {
4586                & ( * ( 0 as * const symmetric_LRW ) ) . cipher as * const _
4587                as usize } , 0usize , concat ! (
4588                "Alignment of field: " , stringify ! ( symmetric_LRW ) , "::"
4589                , stringify ! ( cipher ) ));
4590    assert_eq! (unsafe {
4591                & ( * ( 0 as * const symmetric_LRW ) ) . IV as * const _ as
4592                usize } , 4usize , concat ! (
4593                "Alignment of field: " , stringify ! ( symmetric_LRW ) , "::"
4594                , stringify ! ( IV ) ));
4595    assert_eq! (unsafe {
4596                & ( * ( 0 as * const symmetric_LRW ) ) . tweak as * const _ as
4597                usize } , 20usize , concat ! (
4598                "Alignment of field: " , stringify ! ( symmetric_LRW ) , "::"
4599                , stringify ! ( tweak ) ));
4600    assert_eq! (unsafe {
4601                & ( * ( 0 as * const symmetric_LRW ) ) . pad as * const _ as
4602                usize } , 36usize , concat ! (
4603                "Alignment of field: " , stringify ! ( symmetric_LRW ) , "::"
4604                , stringify ! ( pad ) ));
4605    assert_eq! (unsafe {
4606                & ( * ( 0 as * const symmetric_LRW ) ) . key as * const _ as
4607                usize } , 56usize , concat ! (
4608                "Alignment of field: " , stringify ! ( symmetric_LRW ) , "::"
4609                , stringify ! ( key ) ));
4610    assert_eq! (unsafe {
4611                & ( * ( 0 as * const symmetric_LRW ) ) . PC as * const _ as
4612                usize } , 4312usize , concat ! (
4613                "Alignment of field: " , stringify ! ( symmetric_LRW ) , "::"
4614                , stringify ! ( PC ) ));
4615}
4616impl Clone for symmetric_LRW {
4617    fn clone(&self) -> Self { *self }
4618}
4619/// A block cipher F8 structure
4620#[repr(C)]
4621#[derive(Copy)]
4622pub struct symmetric_F8 {
4623    /// The index of the cipher chosen
4624    pub cipher: ::std::os::raw::c_int,
4625    /// The block size of the given cipher
4626    pub blocklen: ::std::os::raw::c_int,
4627    /// The padding offset
4628    pub padlen: ::std::os::raw::c_int,
4629    /// The current IV
4630    pub IV: [::std::os::raw::c_uchar; 128usize],
4631    /// The current IV
4632    pub MIV: [::std::os::raw::c_uchar; 128usize],
4633    /// Current block count
4634    pub blockcnt: ulong32,
4635    /// The scheduled key
4636    pub key: symmetric_key,
4637}
4638#[test]
4639fn bindgen_test_layout_symmetric_F8() {
4640    assert_eq!(::std::mem::size_of::<symmetric_F8>() , 4528usize , concat ! (
4641               "Size of: " , stringify ! ( symmetric_F8 ) ));
4642    assert_eq! (::std::mem::align_of::<symmetric_F8>() , 8usize , concat ! (
4643                "Alignment of " , stringify ! ( symmetric_F8 ) ));
4644    assert_eq! (unsafe {
4645                & ( * ( 0 as * const symmetric_F8 ) ) . cipher as * const _ as
4646                usize } , 0usize , concat ! (
4647                "Alignment of field: " , stringify ! ( symmetric_F8 ) , "::" ,
4648                stringify ! ( cipher ) ));
4649    assert_eq! (unsafe {
4650                & ( * ( 0 as * const symmetric_F8 ) ) . blocklen as * const _
4651                as usize } , 4usize , concat ! (
4652                "Alignment of field: " , stringify ! ( symmetric_F8 ) , "::" ,
4653                stringify ! ( blocklen ) ));
4654    assert_eq! (unsafe {
4655                & ( * ( 0 as * const symmetric_F8 ) ) . padlen as * const _ as
4656                usize } , 8usize , concat ! (
4657                "Alignment of field: " , stringify ! ( symmetric_F8 ) , "::" ,
4658                stringify ! ( padlen ) ));
4659    assert_eq! (unsafe {
4660                & ( * ( 0 as * const symmetric_F8 ) ) . IV as * const _ as
4661                usize } , 12usize , concat ! (
4662                "Alignment of field: " , stringify ! ( symmetric_F8 ) , "::" ,
4663                stringify ! ( IV ) ));
4664    assert_eq! (unsafe {
4665                & ( * ( 0 as * const symmetric_F8 ) ) . MIV as * const _ as
4666                usize } , 140usize , concat ! (
4667                "Alignment of field: " , stringify ! ( symmetric_F8 ) , "::" ,
4668                stringify ! ( MIV ) ));
4669    assert_eq! (unsafe {
4670                & ( * ( 0 as * const symmetric_F8 ) ) . blockcnt as * const _
4671                as usize } , 268usize , concat ! (
4672                "Alignment of field: " , stringify ! ( symmetric_F8 ) , "::" ,
4673                stringify ! ( blockcnt ) ));
4674    assert_eq! (unsafe {
4675                & ( * ( 0 as * const symmetric_F8 ) ) . key as * const _ as
4676                usize } , 272usize , concat ! (
4677                "Alignment of field: " , stringify ! ( symmetric_F8 ) , "::" ,
4678                stringify ! ( key ) ));
4679}
4680impl Clone for symmetric_F8 {
4681    fn clone(&self) -> Self { *self }
4682}
4683/// cipher descriptor table, last entry has "name == NULL" to mark the end of table
4684#[repr(C)]
4685#[derive(Copy)]
4686pub struct ltc_cipher_descriptor {
4687    /// name of cipher
4688    pub name: *const ::std::os::raw::c_char,
4689    /// internal ID
4690    pub ID: ::std::os::raw::c_uchar,
4691    /// min keysize (octets)
4692    pub min_key_length: ::std::os::raw::c_int,
4693    /// max keysize (octets)
4694    pub max_key_length: ::std::os::raw::c_int,
4695    /// block size (octets)
4696    pub block_length: ::std::os::raw::c_int,
4697    /// default number of rounds
4698    pub default_rounds: ::std::os::raw::c_int,
4699    /// Setup the cipher
4700    /// @param key         The input symmetric key
4701    /// @param keylen      The length of the input key (octets)
4702    /// @param num_rounds  The requested number of rounds (0==default)
4703    /// @param skey        [out] The destination of the scheduled key
4704    /// @return CRYPT_OK if successful
4705    pub setup: ::std::option::Option<unsafe extern "C" fn(key:
4706                                                              *const ::std::os::raw::c_uchar,
4707                                                          keylen:
4708                                                              ::std::os::raw::c_int,
4709                                                          num_rounds:
4710                                                              ::std::os::raw::c_int,
4711                                                          skey:
4712                                                              *mut symmetric_key)
4713                                         -> ::std::os::raw::c_int>,
4714    /// Encrypt a block
4715    /// @param pt      The plaintext
4716    /// @param ct      [out] The ciphertext
4717    /// @param skey    The scheduled key
4718    /// @return CRYPT_OK if successful
4719    pub ecb_encrypt: ::std::option::Option<unsafe extern "C" fn(pt:
4720                                                                    *const ::std::os::raw::c_uchar,
4721                                                                ct:
4722                                                                    *mut ::std::os::raw::c_uchar,
4723                                                                skey:
4724                                                                    *mut symmetric_key)
4725                                               -> ::std::os::raw::c_int>,
4726    /// Decrypt a block
4727    /// @param ct      The ciphertext
4728    /// @param pt      [out] The plaintext
4729    /// @param skey    The scheduled key
4730    /// @return CRYPT_OK if successful
4731    pub ecb_decrypt: ::std::option::Option<unsafe extern "C" fn(ct:
4732                                                                    *const ::std::os::raw::c_uchar,
4733                                                                pt:
4734                                                                    *mut ::std::os::raw::c_uchar,
4735                                                                skey:
4736                                                                    *mut symmetric_key)
4737                                               -> ::std::os::raw::c_int>,
4738    /// Test the block cipher
4739    /// @return CRYPT_OK if successful, CRYPT_NOP if self-testing has been disabled
4740    pub test: ::std::option::Option<unsafe extern "C" fn()
4741                                        -> ::std::os::raw::c_int>,
4742    /// Terminate the context
4743    /// @param skey    The scheduled key
4744    pub done: ::std::option::Option<unsafe extern "C" fn(skey:
4745                                                             *mut symmetric_key)>,
4746    /// Determine a key size
4747    /// @param keysize    [in/out] The size of the key desired and the suggested size
4748    /// @return CRYPT_OK if successful
4749    pub keysize: ::std::option::Option<unsafe extern "C" fn(keysize:
4750                                                                *mut ::std::os::raw::c_int)
4751                                           -> ::std::os::raw::c_int>,
4752    /// Accelerators **/
4753    /// /** Accelerated ECB encryption
4754    /// @param pt      Plaintext
4755    /// @param ct      Ciphertext
4756    /// @param blocks  The number of complete blocks to process
4757    /// @param skey    The scheduled key context
4758    /// @return CRYPT_OK if successful
4759    pub accel_ecb_encrypt: ::std::option::Option<unsafe extern "C" fn(pt:
4760                                                                          *const ::std::os::raw::c_uchar,
4761                                                                      ct:
4762                                                                          *mut ::std::os::raw::c_uchar,
4763                                                                      blocks:
4764                                                                          ::std::os::raw::c_ulong,
4765                                                                      skey:
4766                                                                          *mut symmetric_key)
4767                                                     ->
4768                                                         ::std::os::raw::c_int>,
4769    /// Accelerated ECB decryption
4770    /// @param pt      Plaintext
4771    /// @param ct      Ciphertext
4772    /// @param blocks  The number of complete blocks to process
4773    /// @param skey    The scheduled key context
4774    /// @return CRYPT_OK if successful
4775    pub accel_ecb_decrypt: ::std::option::Option<unsafe extern "C" fn(ct:
4776                                                                          *const ::std::os::raw::c_uchar,
4777                                                                      pt:
4778                                                                          *mut ::std::os::raw::c_uchar,
4779                                                                      blocks:
4780                                                                          ::std::os::raw::c_ulong,
4781                                                                      skey:
4782                                                                          *mut symmetric_key)
4783                                                     ->
4784                                                         ::std::os::raw::c_int>,
4785    /// Accelerated CBC encryption
4786    /// @param pt      Plaintext
4787    /// @param ct      Ciphertext
4788    /// @param blocks  The number of complete blocks to process
4789    /// @param IV      The initial value (input/output)
4790    /// @param skey    The scheduled key context
4791    /// @return CRYPT_OK if successful
4792    pub accel_cbc_encrypt: ::std::option::Option<unsafe extern "C" fn(pt:
4793                                                                          *const ::std::os::raw::c_uchar,
4794                                                                      ct:
4795                                                                          *mut ::std::os::raw::c_uchar,
4796                                                                      blocks:
4797                                                                          ::std::os::raw::c_ulong,
4798                                                                      IV:
4799                                                                          *mut ::std::os::raw::c_uchar,
4800                                                                      skey:
4801                                                                          *mut symmetric_key)
4802                                                     ->
4803                                                         ::std::os::raw::c_int>,
4804    /// Accelerated CBC decryption
4805    /// @param pt      Plaintext
4806    /// @param ct      Ciphertext
4807    /// @param blocks  The number of complete blocks to process
4808    /// @param IV      The initial value (input/output)
4809    /// @param skey    The scheduled key context
4810    /// @return CRYPT_OK if successful
4811    pub accel_cbc_decrypt: ::std::option::Option<unsafe extern "C" fn(ct:
4812                                                                          *const ::std::os::raw::c_uchar,
4813                                                                      pt:
4814                                                                          *mut ::std::os::raw::c_uchar,
4815                                                                      blocks:
4816                                                                          ::std::os::raw::c_ulong,
4817                                                                      IV:
4818                                                                          *mut ::std::os::raw::c_uchar,
4819                                                                      skey:
4820                                                                          *mut symmetric_key)
4821                                                     ->
4822                                                         ::std::os::raw::c_int>,
4823    /// Accelerated CTR encryption
4824    /// @param pt      Plaintext
4825    /// @param ct      Ciphertext
4826    /// @param blocks  The number of complete blocks to process
4827    /// @param IV      The initial value (input/output)
4828    /// @param mode    little or big endian counter (mode=0 or mode=1)
4829    /// @param skey    The scheduled key context
4830    /// @return CRYPT_OK if successful
4831    pub accel_ctr_encrypt: ::std::option::Option<unsafe extern "C" fn(pt:
4832                                                                          *const ::std::os::raw::c_uchar,
4833                                                                      ct:
4834                                                                          *mut ::std::os::raw::c_uchar,
4835                                                                      blocks:
4836                                                                          ::std::os::raw::c_ulong,
4837                                                                      IV:
4838                                                                          *mut ::std::os::raw::c_uchar,
4839                                                                      mode:
4840                                                                          ::std::os::raw::c_int,
4841                                                                      skey:
4842                                                                          *mut symmetric_key)
4843                                                     ->
4844                                                         ::std::os::raw::c_int>,
4845    /// Accelerated LRW
4846    /// @param pt      Plaintext
4847    /// @param ct      Ciphertext
4848    /// @param blocks  The number of complete blocks to process
4849    /// @param IV      The initial value (input/output)
4850    /// @param tweak   The LRW tweak
4851    /// @param skey    The scheduled key context
4852    /// @return CRYPT_OK if successful
4853    pub accel_lrw_encrypt: ::std::option::Option<unsafe extern "C" fn(pt:
4854                                                                          *const ::std::os::raw::c_uchar,
4855                                                                      ct:
4856                                                                          *mut ::std::os::raw::c_uchar,
4857                                                                      blocks:
4858                                                                          ::std::os::raw::c_ulong,
4859                                                                      IV:
4860                                                                          *mut ::std::os::raw::c_uchar,
4861                                                                      tweak:
4862                                                                          *const ::std::os::raw::c_uchar,
4863                                                                      skey:
4864                                                                          *mut symmetric_key)
4865                                                     ->
4866                                                         ::std::os::raw::c_int>,
4867    /// Accelerated LRW
4868    /// @param ct      Ciphertext
4869    /// @param pt      Plaintext
4870    /// @param blocks  The number of complete blocks to process
4871    /// @param IV      The initial value (input/output)
4872    /// @param tweak   The LRW tweak
4873    /// @param skey    The scheduled key context
4874    /// @return CRYPT_OK if successful
4875    pub accel_lrw_decrypt: ::std::option::Option<unsafe extern "C" fn(ct:
4876                                                                          *const ::std::os::raw::c_uchar,
4877                                                                      pt:
4878                                                                          *mut ::std::os::raw::c_uchar,
4879                                                                      blocks:
4880                                                                          ::std::os::raw::c_ulong,
4881                                                                      IV:
4882                                                                          *mut ::std::os::raw::c_uchar,
4883                                                                      tweak:
4884                                                                          *const ::std::os::raw::c_uchar,
4885                                                                      skey:
4886                                                                          *mut symmetric_key)
4887                                                     ->
4888                                                         ::std::os::raw::c_int>,
4889    /// Accelerated CCM packet (one-shot)
4890    /// @param key        The secret key to use
4891    /// @param keylen     The length of the secret key (octets)
4892    /// @param uskey      A previously scheduled key [optional can be NULL]
4893    /// @param nonce      The session nonce [use once]
4894    /// @param noncelen   The length of the nonce
4895    /// @param header     The header for the session
4896    /// @param headerlen  The length of the header (octets)
4897    /// @param pt         [out] The plaintext
4898    /// @param ptlen      The length of the plaintext (octets)
4899    /// @param ct         [out] The ciphertext
4900    /// @param tag        [out] The destination tag
4901    /// @param taglen     [in/out] The max size and resulting size of the authentication tag
4902    /// @param direction  Encrypt or Decrypt direction (0 or 1)
4903    /// @return CRYPT_OK if successful
4904    pub accel_ccm_memory: ::std::option::Option<unsafe extern "C" fn(key:
4905                                                                         *const ::std::os::raw::c_uchar,
4906                                                                     keylen:
4907                                                                         ::std::os::raw::c_ulong,
4908                                                                     uskey:
4909                                                                         *mut symmetric_key,
4910                                                                     nonce:
4911                                                                         *const ::std::os::raw::c_uchar,
4912                                                                     noncelen:
4913                                                                         ::std::os::raw::c_ulong,
4914                                                                     header:
4915                                                                         *const ::std::os::raw::c_uchar,
4916                                                                     headerlen:
4917                                                                         ::std::os::raw::c_ulong,
4918                                                                     pt:
4919                                                                         *mut ::std::os::raw::c_uchar,
4920                                                                     ptlen:
4921                                                                         ::std::os::raw::c_ulong,
4922                                                                     ct:
4923                                                                         *mut ::std::os::raw::c_uchar,
4924                                                                     tag:
4925                                                                         *mut ::std::os::raw::c_uchar,
4926                                                                     taglen:
4927                                                                         *mut ::std::os::raw::c_ulong,
4928                                                                     direction:
4929                                                                         ::std::os::raw::c_int)
4930                                                    -> ::std::os::raw::c_int>,
4931    /// Accelerated GCM packet (one shot)
4932    /// @param key        The secret key
4933    /// @param keylen     The length of the secret key
4934    /// @param IV         The initialization vector
4935    /// @param IVlen      The length of the initialization vector
4936    /// @param adata      The additional authentication data (header)
4937    /// @param adatalen   The length of the adata
4938    /// @param pt         The plaintext
4939    /// @param ptlen      The length of the plaintext (ciphertext length is the same)
4940    /// @param ct         The ciphertext
4941    /// @param tag        [out] The MAC tag
4942    /// @param taglen     [in/out] The MAC tag length
4943    /// @param direction  Encrypt or Decrypt mode (GCM_ENCRYPT or GCM_DECRYPT)
4944    /// @return CRYPT_OK on success
4945    pub accel_gcm_memory: ::std::option::Option<unsafe extern "C" fn(key:
4946                                                                         *const ::std::os::raw::c_uchar,
4947                                                                     keylen:
4948                                                                         ::std::os::raw::c_ulong,
4949                                                                     IV:
4950                                                                         *const ::std::os::raw::c_uchar,
4951                                                                     IVlen:
4952                                                                         ::std::os::raw::c_ulong,
4953                                                                     adata:
4954                                                                         *const ::std::os::raw::c_uchar,
4955                                                                     adatalen:
4956                                                                         ::std::os::raw::c_ulong,
4957                                                                     pt:
4958                                                                         *mut ::std::os::raw::c_uchar,
4959                                                                     ptlen:
4960                                                                         ::std::os::raw::c_ulong,
4961                                                                     ct:
4962                                                                         *mut ::std::os::raw::c_uchar,
4963                                                                     tag:
4964                                                                         *mut ::std::os::raw::c_uchar,
4965                                                                     taglen:
4966                                                                         *mut ::std::os::raw::c_ulong,
4967                                                                     direction:
4968                                                                         ::std::os::raw::c_int)
4969                                                    -> ::std::os::raw::c_int>,
4970    /// Accelerated one shot LTC_OMAC
4971    /// @param key            The secret key
4972    /// @param keylen         The key length (octets)
4973    /// @param in             The message
4974    /// @param inlen          Length of message (octets)
4975    /// @param out            [out] Destination for tag
4976    /// @param outlen         [in/out] Initial and final size of out
4977    /// @return CRYPT_OK on success
4978    pub omac_memory: ::std::option::Option<unsafe extern "C" fn(key:
4979                                                                    *const ::std::os::raw::c_uchar,
4980                                                                keylen:
4981                                                                    ::std::os::raw::c_ulong,
4982                                                                in_:
4983                                                                    *const ::std::os::raw::c_uchar,
4984                                                                inlen:
4985                                                                    ::std::os::raw::c_ulong,
4986                                                                out:
4987                                                                    *mut ::std::os::raw::c_uchar,
4988                                                                outlen:
4989                                                                    *mut ::std::os::raw::c_ulong)
4990                                               -> ::std::os::raw::c_int>,
4991    /// Accelerated one shot XCBC
4992    /// @param key            The secret key
4993    /// @param keylen         The key length (octets)
4994    /// @param in             The message
4995    /// @param inlen          Length of message (octets)
4996    /// @param out            [out] Destination for tag
4997    /// @param outlen         [in/out] Initial and final size of out
4998    /// @return CRYPT_OK on success
4999    pub xcbc_memory: ::std::option::Option<unsafe extern "C" fn(key:
5000                                                                    *const ::std::os::raw::c_uchar,
5001                                                                keylen:
5002                                                                    ::std::os::raw::c_ulong,
5003                                                                in_:
5004                                                                    *const ::std::os::raw::c_uchar,
5005                                                                inlen:
5006                                                                    ::std::os::raw::c_ulong,
5007                                                                out:
5008                                                                    *mut ::std::os::raw::c_uchar,
5009                                                                outlen:
5010                                                                    *mut ::std::os::raw::c_ulong)
5011                                               -> ::std::os::raw::c_int>,
5012    /// Accelerated one shot F9
5013    /// @param key            The secret key
5014    /// @param keylen         The key length (octets)
5015    /// @param in             The message
5016    /// @param inlen          Length of message (octets)
5017    /// @param out            [out] Destination for tag
5018    /// @param outlen         [in/out] Initial and final size of out
5019    /// @return CRYPT_OK on success
5020    /// @remark Requires manual padding
5021    pub f9_memory: ::std::option::Option<unsafe extern "C" fn(key:
5022                                                                  *const ::std::os::raw::c_uchar,
5023                                                              keylen:
5024                                                                  ::std::os::raw::c_ulong,
5025                                                              in_:
5026                                                                  *const ::std::os::raw::c_uchar,
5027                                                              inlen:
5028                                                                  ::std::os::raw::c_ulong,
5029                                                              out:
5030                                                                  *mut ::std::os::raw::c_uchar,
5031                                                              outlen:
5032                                                                  *mut ::std::os::raw::c_ulong)
5033                                             -> ::std::os::raw::c_int>,
5034    /// Accelerated XTS encryption
5035    /// @param pt      Plaintext
5036    /// @param ct      Ciphertext
5037    /// @param blocks  The number of complete blocks to process
5038    /// @param tweak   The 128-bit encryption tweak (input/output).
5039    /// The tweak should not be encrypted on input, but
5040    /// next tweak will be copied encrypted on output.
5041    /// @param skey1   The first scheduled key context
5042    /// @param skey2   The second scheduled key context
5043    /// @return CRYPT_OK if successful
5044    pub accel_xts_encrypt: ::std::option::Option<unsafe extern "C" fn(pt:
5045                                                                          *const ::std::os::raw::c_uchar,
5046                                                                      ct:
5047                                                                          *mut ::std::os::raw::c_uchar,
5048                                                                      blocks:
5049                                                                          ::std::os::raw::c_ulong,
5050                                                                      tweak:
5051                                                                          *mut ::std::os::raw::c_uchar,
5052                                                                      skey1:
5053                                                                          *mut symmetric_key,
5054                                                                      skey2:
5055                                                                          *mut symmetric_key)
5056                                                     ->
5057                                                         ::std::os::raw::c_int>,
5058    /// Accelerated XTS decryption
5059    /// @param ct      Ciphertext
5060    /// @param pt      Plaintext
5061    /// @param blocks  The number of complete blocks to process
5062    /// @param tweak   The 128-bit encryption tweak (input/output).
5063    /// The tweak should not be encrypted on input, but
5064    /// next tweak will be copied encrypted on output.
5065    /// @param skey1   The first scheduled key context
5066    /// @param skey2   The second scheduled key context
5067    /// @return CRYPT_OK if successful
5068    pub accel_xts_decrypt: ::std::option::Option<unsafe extern "C" fn(ct:
5069                                                                          *const ::std::os::raw::c_uchar,
5070                                                                      pt:
5071                                                                          *mut ::std::os::raw::c_uchar,
5072                                                                      blocks:
5073                                                                          ::std::os::raw::c_ulong,
5074                                                                      tweak:
5075                                                                          *mut ::std::os::raw::c_uchar,
5076                                                                      skey1:
5077                                                                          *mut symmetric_key,
5078                                                                      skey2:
5079                                                                          *mut symmetric_key)
5080                                                     ->
5081                                                         ::std::os::raw::c_int>,
5082}
5083#[test]
5084fn bindgen_test_layout_ltc_cipher_descriptor() {
5085    assert_eq!(::std::mem::size_of::<ltc_cipher_descriptor>() , 192usize ,
5086               concat ! ( "Size of: " , stringify ! ( ltc_cipher_descriptor )
5087               ));
5088    assert_eq! (::std::mem::align_of::<ltc_cipher_descriptor>() , 8usize ,
5089                concat ! (
5090                "Alignment of " , stringify ! ( ltc_cipher_descriptor ) ));
5091    assert_eq! (unsafe {
5092                & ( * ( 0 as * const ltc_cipher_descriptor ) ) . name as *
5093                const _ as usize } , 0usize , concat ! (
5094                "Alignment of field: " , stringify ! ( ltc_cipher_descriptor )
5095                , "::" , stringify ! ( name ) ));
5096    assert_eq! (unsafe {
5097                & ( * ( 0 as * const ltc_cipher_descriptor ) ) . ID as * const
5098                _ as usize } , 8usize , concat ! (
5099                "Alignment of field: " , stringify ! ( ltc_cipher_descriptor )
5100                , "::" , stringify ! ( ID ) ));
5101    assert_eq! (unsafe {
5102                & ( * ( 0 as * const ltc_cipher_descriptor ) ) .
5103                min_key_length as * const _ as usize } , 12usize , concat ! (
5104                "Alignment of field: " , stringify ! ( ltc_cipher_descriptor )
5105                , "::" , stringify ! ( min_key_length ) ));
5106    assert_eq! (unsafe {
5107                & ( * ( 0 as * const ltc_cipher_descriptor ) ) .
5108                max_key_length as * const _ as usize } , 16usize , concat ! (
5109                "Alignment of field: " , stringify ! ( ltc_cipher_descriptor )
5110                , "::" , stringify ! ( max_key_length ) ));
5111    assert_eq! (unsafe {
5112                & ( * ( 0 as * const ltc_cipher_descriptor ) ) . block_length
5113                as * const _ as usize } , 20usize , concat ! (
5114                "Alignment of field: " , stringify ! ( ltc_cipher_descriptor )
5115                , "::" , stringify ! ( block_length ) ));
5116    assert_eq! (unsafe {
5117                & ( * ( 0 as * const ltc_cipher_descriptor ) ) .
5118                default_rounds as * const _ as usize } , 24usize , concat ! (
5119                "Alignment of field: " , stringify ! ( ltc_cipher_descriptor )
5120                , "::" , stringify ! ( default_rounds ) ));
5121    assert_eq! (unsafe {
5122                & ( * ( 0 as * const ltc_cipher_descriptor ) ) . setup as *
5123                const _ as usize } , 32usize , concat ! (
5124                "Alignment of field: " , stringify ! ( ltc_cipher_descriptor )
5125                , "::" , stringify ! ( setup ) ));
5126    assert_eq! (unsafe {
5127                & ( * ( 0 as * const ltc_cipher_descriptor ) ) . ecb_encrypt
5128                as * const _ as usize } , 40usize , concat ! (
5129                "Alignment of field: " , stringify ! ( ltc_cipher_descriptor )
5130                , "::" , stringify ! ( ecb_encrypt ) ));
5131    assert_eq! (unsafe {
5132                & ( * ( 0 as * const ltc_cipher_descriptor ) ) . ecb_decrypt
5133                as * const _ as usize } , 48usize , concat ! (
5134                "Alignment of field: " , stringify ! ( ltc_cipher_descriptor )
5135                , "::" , stringify ! ( ecb_decrypt ) ));
5136    assert_eq! (unsafe {
5137                & ( * ( 0 as * const ltc_cipher_descriptor ) ) . test as *
5138                const _ as usize } , 56usize , concat ! (
5139                "Alignment of field: " , stringify ! ( ltc_cipher_descriptor )
5140                , "::" , stringify ! ( test ) ));
5141    assert_eq! (unsafe {
5142                & ( * ( 0 as * const ltc_cipher_descriptor ) ) . done as *
5143                const _ as usize } , 64usize , concat ! (
5144                "Alignment of field: " , stringify ! ( ltc_cipher_descriptor )
5145                , "::" , stringify ! ( done ) ));
5146    assert_eq! (unsafe {
5147                & ( * ( 0 as * const ltc_cipher_descriptor ) ) . keysize as *
5148                const _ as usize } , 72usize , concat ! (
5149                "Alignment of field: " , stringify ! ( ltc_cipher_descriptor )
5150                , "::" , stringify ! ( keysize ) ));
5151    assert_eq! (unsafe {
5152                & ( * ( 0 as * const ltc_cipher_descriptor ) ) .
5153                accel_ecb_encrypt as * const _ as usize } , 80usize , concat !
5154                (
5155                "Alignment of field: " , stringify ! ( ltc_cipher_descriptor )
5156                , "::" , stringify ! ( accel_ecb_encrypt ) ));
5157    assert_eq! (unsafe {
5158                & ( * ( 0 as * const ltc_cipher_descriptor ) ) .
5159                accel_ecb_decrypt as * const _ as usize } , 88usize , concat !
5160                (
5161                "Alignment of field: " , stringify ! ( ltc_cipher_descriptor )
5162                , "::" , stringify ! ( accel_ecb_decrypt ) ));
5163    assert_eq! (unsafe {
5164                & ( * ( 0 as * const ltc_cipher_descriptor ) ) .
5165                accel_cbc_encrypt as * const _ as usize } , 96usize , concat !
5166                (
5167                "Alignment of field: " , stringify ! ( ltc_cipher_descriptor )
5168                , "::" , stringify ! ( accel_cbc_encrypt ) ));
5169    assert_eq! (unsafe {
5170                & ( * ( 0 as * const ltc_cipher_descriptor ) ) .
5171                accel_cbc_decrypt as * const _ as usize } , 104usize , concat
5172                ! (
5173                "Alignment of field: " , stringify ! ( ltc_cipher_descriptor )
5174                , "::" , stringify ! ( accel_cbc_decrypt ) ));
5175    assert_eq! (unsafe {
5176                & ( * ( 0 as * const ltc_cipher_descriptor ) ) .
5177                accel_ctr_encrypt as * const _ as usize } , 112usize , concat
5178                ! (
5179                "Alignment of field: " , stringify ! ( ltc_cipher_descriptor )
5180                , "::" , stringify ! ( accel_ctr_encrypt ) ));
5181    assert_eq! (unsafe {
5182                & ( * ( 0 as * const ltc_cipher_descriptor ) ) .
5183                accel_lrw_encrypt as * const _ as usize } , 120usize , concat
5184                ! (
5185                "Alignment of field: " , stringify ! ( ltc_cipher_descriptor )
5186                , "::" , stringify ! ( accel_lrw_encrypt ) ));
5187    assert_eq! (unsafe {
5188                & ( * ( 0 as * const ltc_cipher_descriptor ) ) .
5189                accel_lrw_decrypt as * const _ as usize } , 128usize , concat
5190                ! (
5191                "Alignment of field: " , stringify ! ( ltc_cipher_descriptor )
5192                , "::" , stringify ! ( accel_lrw_decrypt ) ));
5193    assert_eq! (unsafe {
5194                & ( * ( 0 as * const ltc_cipher_descriptor ) ) .
5195                accel_ccm_memory as * const _ as usize } , 136usize , concat !
5196                (
5197                "Alignment of field: " , stringify ! ( ltc_cipher_descriptor )
5198                , "::" , stringify ! ( accel_ccm_memory ) ));
5199    assert_eq! (unsafe {
5200                & ( * ( 0 as * const ltc_cipher_descriptor ) ) .
5201                accel_gcm_memory as * const _ as usize } , 144usize , concat !
5202                (
5203                "Alignment of field: " , stringify ! ( ltc_cipher_descriptor )
5204                , "::" , stringify ! ( accel_gcm_memory ) ));
5205    assert_eq! (unsafe {
5206                & ( * ( 0 as * const ltc_cipher_descriptor ) ) . omac_memory
5207                as * const _ as usize } , 152usize , concat ! (
5208                "Alignment of field: " , stringify ! ( ltc_cipher_descriptor )
5209                , "::" , stringify ! ( omac_memory ) ));
5210    assert_eq! (unsafe {
5211                & ( * ( 0 as * const ltc_cipher_descriptor ) ) . xcbc_memory
5212                as * const _ as usize } , 160usize , concat ! (
5213                "Alignment of field: " , stringify ! ( ltc_cipher_descriptor )
5214                , "::" , stringify ! ( xcbc_memory ) ));
5215    assert_eq! (unsafe {
5216                & ( * ( 0 as * const ltc_cipher_descriptor ) ) . f9_memory as
5217                * const _ as usize } , 168usize , concat ! (
5218                "Alignment of field: " , stringify ! ( ltc_cipher_descriptor )
5219                , "::" , stringify ! ( f9_memory ) ));
5220    assert_eq! (unsafe {
5221                & ( * ( 0 as * const ltc_cipher_descriptor ) ) .
5222                accel_xts_encrypt as * const _ as usize } , 176usize , concat
5223                ! (
5224                "Alignment of field: " , stringify ! ( ltc_cipher_descriptor )
5225                , "::" , stringify ! ( accel_xts_encrypt ) ));
5226    assert_eq! (unsafe {
5227                & ( * ( 0 as * const ltc_cipher_descriptor ) ) .
5228                accel_xts_decrypt as * const _ as usize } , 184usize , concat
5229                ! (
5230                "Alignment of field: " , stringify ! ( ltc_cipher_descriptor )
5231                , "::" , stringify ! ( accel_xts_decrypt ) ));
5232}
5233impl Clone for ltc_cipher_descriptor {
5234    fn clone(&self) -> Self { *self }
5235}
5236extern "C" {
5237    #[link_name = "cipher_descriptor"]
5238    pub static mut cipher_descriptor: [ltc_cipher_descriptor; 0usize];
5239}
5240extern "C" {
5241    pub fn blowfish_setup(key: *const ::std::os::raw::c_uchar,
5242                          keylen: ::std::os::raw::c_int,
5243                          num_rounds: ::std::os::raw::c_int,
5244                          skey: *mut symmetric_key) -> ::std::os::raw::c_int;
5245}
5246extern "C" {
5247    pub fn blowfish_ecb_encrypt(pt: *const ::std::os::raw::c_uchar,
5248                                ct: *mut ::std::os::raw::c_uchar,
5249                                skey: *mut symmetric_key)
5250     -> ::std::os::raw::c_int;
5251}
5252extern "C" {
5253    pub fn blowfish_ecb_decrypt(ct: *const ::std::os::raw::c_uchar,
5254                                pt: *mut ::std::os::raw::c_uchar,
5255                                skey: *mut symmetric_key)
5256     -> ::std::os::raw::c_int;
5257}
5258extern "C" {
5259    pub fn blowfish_test() -> ::std::os::raw::c_int;
5260}
5261extern "C" {
5262    pub fn blowfish_done(skey: *mut symmetric_key);
5263}
5264extern "C" {
5265    pub fn blowfish_keysize(keysize: *mut ::std::os::raw::c_int)
5266     -> ::std::os::raw::c_int;
5267}
5268extern "C" {
5269    #[link_name = "blowfish_desc"]
5270    pub static blowfish_desc: ltc_cipher_descriptor;
5271}
5272extern "C" {
5273    pub fn rc5_setup(key: *const ::std::os::raw::c_uchar,
5274                     keylen: ::std::os::raw::c_int,
5275                     num_rounds: ::std::os::raw::c_int,
5276                     skey: *mut symmetric_key) -> ::std::os::raw::c_int;
5277}
5278extern "C" {
5279    pub fn rc5_ecb_encrypt(pt: *const ::std::os::raw::c_uchar,
5280                           ct: *mut ::std::os::raw::c_uchar,
5281                           skey: *mut symmetric_key) -> ::std::os::raw::c_int;
5282}
5283extern "C" {
5284    pub fn rc5_ecb_decrypt(ct: *const ::std::os::raw::c_uchar,
5285                           pt: *mut ::std::os::raw::c_uchar,
5286                           skey: *mut symmetric_key) -> ::std::os::raw::c_int;
5287}
5288extern "C" {
5289    pub fn rc5_test() -> ::std::os::raw::c_int;
5290}
5291extern "C" {
5292    pub fn rc5_done(skey: *mut symmetric_key);
5293}
5294extern "C" {
5295    pub fn rc5_keysize(keysize: *mut ::std::os::raw::c_int)
5296     -> ::std::os::raw::c_int;
5297}
5298extern "C" {
5299    #[link_name = "rc5_desc"]
5300    pub static rc5_desc: ltc_cipher_descriptor;
5301}
5302extern "C" {
5303    pub fn rc6_setup(key: *const ::std::os::raw::c_uchar,
5304                     keylen: ::std::os::raw::c_int,
5305                     num_rounds: ::std::os::raw::c_int,
5306                     skey: *mut symmetric_key) -> ::std::os::raw::c_int;
5307}
5308extern "C" {
5309    pub fn rc6_ecb_encrypt(pt: *const ::std::os::raw::c_uchar,
5310                           ct: *mut ::std::os::raw::c_uchar,
5311                           skey: *mut symmetric_key) -> ::std::os::raw::c_int;
5312}
5313extern "C" {
5314    pub fn rc6_ecb_decrypt(ct: *const ::std::os::raw::c_uchar,
5315                           pt: *mut ::std::os::raw::c_uchar,
5316                           skey: *mut symmetric_key) -> ::std::os::raw::c_int;
5317}
5318extern "C" {
5319    pub fn rc6_test() -> ::std::os::raw::c_int;
5320}
5321extern "C" {
5322    pub fn rc6_done(skey: *mut symmetric_key);
5323}
5324extern "C" {
5325    pub fn rc6_keysize(keysize: *mut ::std::os::raw::c_int)
5326     -> ::std::os::raw::c_int;
5327}
5328extern "C" {
5329    #[link_name = "rc6_desc"]
5330    pub static rc6_desc: ltc_cipher_descriptor;
5331}
5332extern "C" {
5333    pub fn rc2_setup(key: *const ::std::os::raw::c_uchar,
5334                     keylen: ::std::os::raw::c_int,
5335                     num_rounds: ::std::os::raw::c_int,
5336                     skey: *mut symmetric_key) -> ::std::os::raw::c_int;
5337}
5338extern "C" {
5339    pub fn rc2_setup_ex(key: *const ::std::os::raw::c_uchar,
5340                        keylen: ::std::os::raw::c_int,
5341                        bits: ::std::os::raw::c_int,
5342                        num_rounds: ::std::os::raw::c_int,
5343                        skey: *mut symmetric_key) -> ::std::os::raw::c_int;
5344}
5345extern "C" {
5346    pub fn rc2_ecb_encrypt(pt: *const ::std::os::raw::c_uchar,
5347                           ct: *mut ::std::os::raw::c_uchar,
5348                           skey: *mut symmetric_key) -> ::std::os::raw::c_int;
5349}
5350extern "C" {
5351    pub fn rc2_ecb_decrypt(ct: *const ::std::os::raw::c_uchar,
5352                           pt: *mut ::std::os::raw::c_uchar,
5353                           skey: *mut symmetric_key) -> ::std::os::raw::c_int;
5354}
5355extern "C" {
5356    pub fn rc2_test() -> ::std::os::raw::c_int;
5357}
5358extern "C" {
5359    pub fn rc2_done(skey: *mut symmetric_key);
5360}
5361extern "C" {
5362    pub fn rc2_keysize(keysize: *mut ::std::os::raw::c_int)
5363     -> ::std::os::raw::c_int;
5364}
5365extern "C" {
5366    #[link_name = "rc2_desc"]
5367    pub static rc2_desc: ltc_cipher_descriptor;
5368}
5369extern "C" {
5370    pub fn saferp_setup(key: *const ::std::os::raw::c_uchar,
5371                        keylen: ::std::os::raw::c_int,
5372                        num_rounds: ::std::os::raw::c_int,
5373                        skey: *mut symmetric_key) -> ::std::os::raw::c_int;
5374}
5375extern "C" {
5376    pub fn saferp_ecb_encrypt(pt: *const ::std::os::raw::c_uchar,
5377                              ct: *mut ::std::os::raw::c_uchar,
5378                              skey: *mut symmetric_key)
5379     -> ::std::os::raw::c_int;
5380}
5381extern "C" {
5382    pub fn saferp_ecb_decrypt(ct: *const ::std::os::raw::c_uchar,
5383                              pt: *mut ::std::os::raw::c_uchar,
5384                              skey: *mut symmetric_key)
5385     -> ::std::os::raw::c_int;
5386}
5387extern "C" {
5388    pub fn saferp_test() -> ::std::os::raw::c_int;
5389}
5390extern "C" {
5391    pub fn saferp_done(skey: *mut symmetric_key);
5392}
5393extern "C" {
5394    pub fn saferp_keysize(keysize: *mut ::std::os::raw::c_int)
5395     -> ::std::os::raw::c_int;
5396}
5397extern "C" {
5398    #[link_name = "saferp_desc"]
5399    pub static saferp_desc: ltc_cipher_descriptor;
5400}
5401extern "C" {
5402    pub fn safer_k64_setup(key: *const ::std::os::raw::c_uchar,
5403                           keylen: ::std::os::raw::c_int,
5404                           num_rounds: ::std::os::raw::c_int,
5405                           skey: *mut symmetric_key) -> ::std::os::raw::c_int;
5406}
5407extern "C" {
5408    pub fn safer_sk64_setup(key: *const ::std::os::raw::c_uchar,
5409                            keylen: ::std::os::raw::c_int,
5410                            num_rounds: ::std::os::raw::c_int,
5411                            skey: *mut symmetric_key)
5412     -> ::std::os::raw::c_int;
5413}
5414extern "C" {
5415    pub fn safer_k128_setup(key: *const ::std::os::raw::c_uchar,
5416                            keylen: ::std::os::raw::c_int,
5417                            num_rounds: ::std::os::raw::c_int,
5418                            skey: *mut symmetric_key)
5419     -> ::std::os::raw::c_int;
5420}
5421extern "C" {
5422    pub fn safer_sk128_setup(key: *const ::std::os::raw::c_uchar,
5423                             keylen: ::std::os::raw::c_int,
5424                             num_rounds: ::std::os::raw::c_int,
5425                             skey: *mut symmetric_key)
5426     -> ::std::os::raw::c_int;
5427}
5428extern "C" {
5429    pub fn safer_ecb_encrypt(pt: *const ::std::os::raw::c_uchar,
5430                             ct: *mut ::std::os::raw::c_uchar,
5431                             key: *mut symmetric_key)
5432     -> ::std::os::raw::c_int;
5433}
5434extern "C" {
5435    pub fn safer_ecb_decrypt(ct: *const ::std::os::raw::c_uchar,
5436                             pt: *mut ::std::os::raw::c_uchar,
5437                             key: *mut symmetric_key)
5438     -> ::std::os::raw::c_int;
5439}
5440extern "C" {
5441    pub fn safer_k64_test() -> ::std::os::raw::c_int;
5442}
5443extern "C" {
5444    pub fn safer_sk64_test() -> ::std::os::raw::c_int;
5445}
5446extern "C" {
5447    pub fn safer_sk128_test() -> ::std::os::raw::c_int;
5448}
5449extern "C" {
5450    pub fn safer_done(skey: *mut symmetric_key);
5451}
5452extern "C" {
5453    pub fn safer_64_keysize(keysize: *mut ::std::os::raw::c_int)
5454     -> ::std::os::raw::c_int;
5455}
5456extern "C" {
5457    pub fn safer_128_keysize(keysize: *mut ::std::os::raw::c_int)
5458     -> ::std::os::raw::c_int;
5459}
5460extern "C" {
5461    #[link_name = "safer_k64_desc"]
5462    pub static safer_k64_desc: ltc_cipher_descriptor;
5463}
5464extern "C" {
5465    #[link_name = "safer_k128_desc"]
5466    pub static safer_k128_desc: ltc_cipher_descriptor;
5467}
5468extern "C" {
5469    #[link_name = "safer_sk64_desc"]
5470    pub static safer_sk64_desc: ltc_cipher_descriptor;
5471}
5472extern "C" {
5473    #[link_name = "safer_sk128_desc"]
5474    pub static safer_sk128_desc: ltc_cipher_descriptor;
5475}
5476extern "C" {
5477    pub fn rijndael_setup(key: *const ::std::os::raw::c_uchar,
5478                          keylen: ::std::os::raw::c_int,
5479                          num_rounds: ::std::os::raw::c_int,
5480                          skey: *mut symmetric_key) -> ::std::os::raw::c_int;
5481}
5482extern "C" {
5483    pub fn rijndael_ecb_encrypt(pt: *const ::std::os::raw::c_uchar,
5484                                ct: *mut ::std::os::raw::c_uchar,
5485                                skey: *mut symmetric_key)
5486     -> ::std::os::raw::c_int;
5487}
5488extern "C" {
5489    pub fn rijndael_ecb_decrypt(ct: *const ::std::os::raw::c_uchar,
5490                                pt: *mut ::std::os::raw::c_uchar,
5491                                skey: *mut symmetric_key)
5492     -> ::std::os::raw::c_int;
5493}
5494extern "C" {
5495    pub fn rijndael_test() -> ::std::os::raw::c_int;
5496}
5497extern "C" {
5498    pub fn rijndael_done(skey: *mut symmetric_key);
5499}
5500extern "C" {
5501    pub fn rijndael_keysize(keysize: *mut ::std::os::raw::c_int)
5502     -> ::std::os::raw::c_int;
5503}
5504extern "C" {
5505    pub fn rijndael_enc_setup(key: *const ::std::os::raw::c_uchar,
5506                              keylen: ::std::os::raw::c_int,
5507                              num_rounds: ::std::os::raw::c_int,
5508                              skey: *mut symmetric_key)
5509     -> ::std::os::raw::c_int;
5510}
5511extern "C" {
5512    pub fn rijndael_enc_ecb_encrypt(pt: *const ::std::os::raw::c_uchar,
5513                                    ct: *mut ::std::os::raw::c_uchar,
5514                                    skey: *mut symmetric_key)
5515     -> ::std::os::raw::c_int;
5516}
5517extern "C" {
5518    pub fn rijndael_enc_done(skey: *mut symmetric_key);
5519}
5520extern "C" {
5521    pub fn rijndael_enc_keysize(keysize: *mut ::std::os::raw::c_int)
5522     -> ::std::os::raw::c_int;
5523}
5524extern "C" {
5525    #[link_name = "rijndael_desc"]
5526    pub static rijndael_desc: ltc_cipher_descriptor;
5527}
5528extern "C" {
5529    #[link_name = "aes_desc"]
5530    pub static aes_desc: ltc_cipher_descriptor;
5531}
5532extern "C" {
5533    #[link_name = "rijndael_enc_desc"]
5534    pub static rijndael_enc_desc: ltc_cipher_descriptor;
5535}
5536extern "C" {
5537    #[link_name = "aes_enc_desc"]
5538    pub static aes_enc_desc: ltc_cipher_descriptor;
5539}
5540extern "C" {
5541    pub fn xtea_setup(key: *const ::std::os::raw::c_uchar,
5542                      keylen: ::std::os::raw::c_int,
5543                      num_rounds: ::std::os::raw::c_int,
5544                      skey: *mut symmetric_key) -> ::std::os::raw::c_int;
5545}
5546extern "C" {
5547    pub fn xtea_ecb_encrypt(pt: *const ::std::os::raw::c_uchar,
5548                            ct: *mut ::std::os::raw::c_uchar,
5549                            skey: *mut symmetric_key)
5550     -> ::std::os::raw::c_int;
5551}
5552extern "C" {
5553    pub fn xtea_ecb_decrypt(ct: *const ::std::os::raw::c_uchar,
5554                            pt: *mut ::std::os::raw::c_uchar,
5555                            skey: *mut symmetric_key)
5556     -> ::std::os::raw::c_int;
5557}
5558extern "C" {
5559    pub fn xtea_test() -> ::std::os::raw::c_int;
5560}
5561extern "C" {
5562    pub fn xtea_done(skey: *mut symmetric_key);
5563}
5564extern "C" {
5565    pub fn xtea_keysize(keysize: *mut ::std::os::raw::c_int)
5566     -> ::std::os::raw::c_int;
5567}
5568extern "C" {
5569    #[link_name = "xtea_desc"]
5570    pub static xtea_desc: ltc_cipher_descriptor;
5571}
5572extern "C" {
5573    pub fn twofish_setup(key: *const ::std::os::raw::c_uchar,
5574                         keylen: ::std::os::raw::c_int,
5575                         num_rounds: ::std::os::raw::c_int,
5576                         skey: *mut symmetric_key) -> ::std::os::raw::c_int;
5577}
5578extern "C" {
5579    pub fn twofish_ecb_encrypt(pt: *const ::std::os::raw::c_uchar,
5580                               ct: *mut ::std::os::raw::c_uchar,
5581                               skey: *mut symmetric_key)
5582     -> ::std::os::raw::c_int;
5583}
5584extern "C" {
5585    pub fn twofish_ecb_decrypt(ct: *const ::std::os::raw::c_uchar,
5586                               pt: *mut ::std::os::raw::c_uchar,
5587                               skey: *mut symmetric_key)
5588     -> ::std::os::raw::c_int;
5589}
5590extern "C" {
5591    pub fn twofish_test() -> ::std::os::raw::c_int;
5592}
5593extern "C" {
5594    pub fn twofish_done(skey: *mut symmetric_key);
5595}
5596extern "C" {
5597    pub fn twofish_keysize(keysize: *mut ::std::os::raw::c_int)
5598     -> ::std::os::raw::c_int;
5599}
5600extern "C" {
5601    #[link_name = "twofish_desc"]
5602    pub static twofish_desc: ltc_cipher_descriptor;
5603}
5604extern "C" {
5605    pub fn des_setup(key: *const ::std::os::raw::c_uchar,
5606                     keylen: ::std::os::raw::c_int,
5607                     num_rounds: ::std::os::raw::c_int,
5608                     skey: *mut symmetric_key) -> ::std::os::raw::c_int;
5609}
5610extern "C" {
5611    pub fn des_ecb_encrypt(pt: *const ::std::os::raw::c_uchar,
5612                           ct: *mut ::std::os::raw::c_uchar,
5613                           skey: *mut symmetric_key) -> ::std::os::raw::c_int;
5614}
5615extern "C" {
5616    pub fn des_ecb_decrypt(ct: *const ::std::os::raw::c_uchar,
5617                           pt: *mut ::std::os::raw::c_uchar,
5618                           skey: *mut symmetric_key) -> ::std::os::raw::c_int;
5619}
5620extern "C" {
5621    pub fn des_test() -> ::std::os::raw::c_int;
5622}
5623extern "C" {
5624    pub fn des_done(skey: *mut symmetric_key);
5625}
5626extern "C" {
5627    pub fn des_keysize(keysize: *mut ::std::os::raw::c_int)
5628     -> ::std::os::raw::c_int;
5629}
5630extern "C" {
5631    pub fn des3_setup(key: *const ::std::os::raw::c_uchar,
5632                      keylen: ::std::os::raw::c_int,
5633                      num_rounds: ::std::os::raw::c_int,
5634                      skey: *mut symmetric_key) -> ::std::os::raw::c_int;
5635}
5636extern "C" {
5637    pub fn des3_ecb_encrypt(pt: *const ::std::os::raw::c_uchar,
5638                            ct: *mut ::std::os::raw::c_uchar,
5639                            skey: *mut symmetric_key)
5640     -> ::std::os::raw::c_int;
5641}
5642extern "C" {
5643    pub fn des3_ecb_decrypt(ct: *const ::std::os::raw::c_uchar,
5644                            pt: *mut ::std::os::raw::c_uchar,
5645                            skey: *mut symmetric_key)
5646     -> ::std::os::raw::c_int;
5647}
5648extern "C" {
5649    pub fn des3_test() -> ::std::os::raw::c_int;
5650}
5651extern "C" {
5652    pub fn des3_done(skey: *mut symmetric_key);
5653}
5654extern "C" {
5655    pub fn des3_keysize(keysize: *mut ::std::os::raw::c_int)
5656     -> ::std::os::raw::c_int;
5657}
5658extern "C" {
5659    #[link_name = "des_desc"]
5660    pub static des_desc: ltc_cipher_descriptor;
5661}
5662extern "C" {
5663    #[link_name = "des3_desc"]
5664    pub static des3_desc: ltc_cipher_descriptor;
5665}
5666extern "C" {
5667    pub fn cast5_setup(key: *const ::std::os::raw::c_uchar,
5668                       keylen: ::std::os::raw::c_int,
5669                       num_rounds: ::std::os::raw::c_int,
5670                       skey: *mut symmetric_key) -> ::std::os::raw::c_int;
5671}
5672extern "C" {
5673    pub fn cast5_ecb_encrypt(pt: *const ::std::os::raw::c_uchar,
5674                             ct: *mut ::std::os::raw::c_uchar,
5675                             skey: *mut symmetric_key)
5676     -> ::std::os::raw::c_int;
5677}
5678extern "C" {
5679    pub fn cast5_ecb_decrypt(ct: *const ::std::os::raw::c_uchar,
5680                             pt: *mut ::std::os::raw::c_uchar,
5681                             skey: *mut symmetric_key)
5682     -> ::std::os::raw::c_int;
5683}
5684extern "C" {
5685    pub fn cast5_test() -> ::std::os::raw::c_int;
5686}
5687extern "C" {
5688    pub fn cast5_done(skey: *mut symmetric_key);
5689}
5690extern "C" {
5691    pub fn cast5_keysize(keysize: *mut ::std::os::raw::c_int)
5692     -> ::std::os::raw::c_int;
5693}
5694extern "C" {
5695    #[link_name = "cast5_desc"]
5696    pub static cast5_desc: ltc_cipher_descriptor;
5697}
5698extern "C" {
5699    pub fn noekeon_setup(key: *const ::std::os::raw::c_uchar,
5700                         keylen: ::std::os::raw::c_int,
5701                         num_rounds: ::std::os::raw::c_int,
5702                         skey: *mut symmetric_key) -> ::std::os::raw::c_int;
5703}
5704extern "C" {
5705    pub fn noekeon_ecb_encrypt(pt: *const ::std::os::raw::c_uchar,
5706                               ct: *mut ::std::os::raw::c_uchar,
5707                               skey: *mut symmetric_key)
5708     -> ::std::os::raw::c_int;
5709}
5710extern "C" {
5711    pub fn noekeon_ecb_decrypt(ct: *const ::std::os::raw::c_uchar,
5712                               pt: *mut ::std::os::raw::c_uchar,
5713                               skey: *mut symmetric_key)
5714     -> ::std::os::raw::c_int;
5715}
5716extern "C" {
5717    pub fn noekeon_test() -> ::std::os::raw::c_int;
5718}
5719extern "C" {
5720    pub fn noekeon_done(skey: *mut symmetric_key);
5721}
5722extern "C" {
5723    pub fn noekeon_keysize(keysize: *mut ::std::os::raw::c_int)
5724     -> ::std::os::raw::c_int;
5725}
5726extern "C" {
5727    #[link_name = "noekeon_desc"]
5728    pub static noekeon_desc: ltc_cipher_descriptor;
5729}
5730extern "C" {
5731    pub fn skipjack_setup(key: *const ::std::os::raw::c_uchar,
5732                          keylen: ::std::os::raw::c_int,
5733                          num_rounds: ::std::os::raw::c_int,
5734                          skey: *mut symmetric_key) -> ::std::os::raw::c_int;
5735}
5736extern "C" {
5737    pub fn skipjack_ecb_encrypt(pt: *const ::std::os::raw::c_uchar,
5738                                ct: *mut ::std::os::raw::c_uchar,
5739                                skey: *mut symmetric_key)
5740     -> ::std::os::raw::c_int;
5741}
5742extern "C" {
5743    pub fn skipjack_ecb_decrypt(ct: *const ::std::os::raw::c_uchar,
5744                                pt: *mut ::std::os::raw::c_uchar,
5745                                skey: *mut symmetric_key)
5746     -> ::std::os::raw::c_int;
5747}
5748extern "C" {
5749    pub fn skipjack_test() -> ::std::os::raw::c_int;
5750}
5751extern "C" {
5752    pub fn skipjack_done(skey: *mut symmetric_key);
5753}
5754extern "C" {
5755    pub fn skipjack_keysize(keysize: *mut ::std::os::raw::c_int)
5756     -> ::std::os::raw::c_int;
5757}
5758extern "C" {
5759    #[link_name = "skipjack_desc"]
5760    pub static skipjack_desc: ltc_cipher_descriptor;
5761}
5762extern "C" {
5763    pub fn khazad_setup(key: *const ::std::os::raw::c_uchar,
5764                        keylen: ::std::os::raw::c_int,
5765                        num_rounds: ::std::os::raw::c_int,
5766                        skey: *mut symmetric_key) -> ::std::os::raw::c_int;
5767}
5768extern "C" {
5769    pub fn khazad_ecb_encrypt(pt: *const ::std::os::raw::c_uchar,
5770                              ct: *mut ::std::os::raw::c_uchar,
5771                              skey: *mut symmetric_key)
5772     -> ::std::os::raw::c_int;
5773}
5774extern "C" {
5775    pub fn khazad_ecb_decrypt(ct: *const ::std::os::raw::c_uchar,
5776                              pt: *mut ::std::os::raw::c_uchar,
5777                              skey: *mut symmetric_key)
5778     -> ::std::os::raw::c_int;
5779}
5780extern "C" {
5781    pub fn khazad_test() -> ::std::os::raw::c_int;
5782}
5783extern "C" {
5784    pub fn khazad_done(skey: *mut symmetric_key);
5785}
5786extern "C" {
5787    pub fn khazad_keysize(keysize: *mut ::std::os::raw::c_int)
5788     -> ::std::os::raw::c_int;
5789}
5790extern "C" {
5791    #[link_name = "khazad_desc"]
5792    pub static khazad_desc: ltc_cipher_descriptor;
5793}
5794extern "C" {
5795    pub fn anubis_setup(key: *const ::std::os::raw::c_uchar,
5796                        keylen: ::std::os::raw::c_int,
5797                        num_rounds: ::std::os::raw::c_int,
5798                        skey: *mut symmetric_key) -> ::std::os::raw::c_int;
5799}
5800extern "C" {
5801    pub fn anubis_ecb_encrypt(pt: *const ::std::os::raw::c_uchar,
5802                              ct: *mut ::std::os::raw::c_uchar,
5803                              skey: *mut symmetric_key)
5804     -> ::std::os::raw::c_int;
5805}
5806extern "C" {
5807    pub fn anubis_ecb_decrypt(ct: *const ::std::os::raw::c_uchar,
5808                              pt: *mut ::std::os::raw::c_uchar,
5809                              skey: *mut symmetric_key)
5810     -> ::std::os::raw::c_int;
5811}
5812extern "C" {
5813    pub fn anubis_test() -> ::std::os::raw::c_int;
5814}
5815extern "C" {
5816    pub fn anubis_done(skey: *mut symmetric_key);
5817}
5818extern "C" {
5819    pub fn anubis_keysize(keysize: *mut ::std::os::raw::c_int)
5820     -> ::std::os::raw::c_int;
5821}
5822extern "C" {
5823    #[link_name = "anubis_desc"]
5824    pub static anubis_desc: ltc_cipher_descriptor;
5825}
5826extern "C" {
5827    pub fn kseed_setup(key: *const ::std::os::raw::c_uchar,
5828                       keylen: ::std::os::raw::c_int,
5829                       num_rounds: ::std::os::raw::c_int,
5830                       skey: *mut symmetric_key) -> ::std::os::raw::c_int;
5831}
5832extern "C" {
5833    pub fn kseed_ecb_encrypt(pt: *const ::std::os::raw::c_uchar,
5834                             ct: *mut ::std::os::raw::c_uchar,
5835                             skey: *mut symmetric_key)
5836     -> ::std::os::raw::c_int;
5837}
5838extern "C" {
5839    pub fn kseed_ecb_decrypt(ct: *const ::std::os::raw::c_uchar,
5840                             pt: *mut ::std::os::raw::c_uchar,
5841                             skey: *mut symmetric_key)
5842     -> ::std::os::raw::c_int;
5843}
5844extern "C" {
5845    pub fn kseed_test() -> ::std::os::raw::c_int;
5846}
5847extern "C" {
5848    pub fn kseed_done(skey: *mut symmetric_key);
5849}
5850extern "C" {
5851    pub fn kseed_keysize(keysize: *mut ::std::os::raw::c_int)
5852     -> ::std::os::raw::c_int;
5853}
5854extern "C" {
5855    #[link_name = "kseed_desc"]
5856    pub static kseed_desc: ltc_cipher_descriptor;
5857}
5858extern "C" {
5859    pub fn kasumi_setup(key: *const ::std::os::raw::c_uchar,
5860                        keylen: ::std::os::raw::c_int,
5861                        num_rounds: ::std::os::raw::c_int,
5862                        skey: *mut symmetric_key) -> ::std::os::raw::c_int;
5863}
5864extern "C" {
5865    pub fn kasumi_ecb_encrypt(pt: *const ::std::os::raw::c_uchar,
5866                              ct: *mut ::std::os::raw::c_uchar,
5867                              skey: *mut symmetric_key)
5868     -> ::std::os::raw::c_int;
5869}
5870extern "C" {
5871    pub fn kasumi_ecb_decrypt(ct: *const ::std::os::raw::c_uchar,
5872                              pt: *mut ::std::os::raw::c_uchar,
5873                              skey: *mut symmetric_key)
5874     -> ::std::os::raw::c_int;
5875}
5876extern "C" {
5877    pub fn kasumi_test() -> ::std::os::raw::c_int;
5878}
5879extern "C" {
5880    pub fn kasumi_done(skey: *mut symmetric_key);
5881}
5882extern "C" {
5883    pub fn kasumi_keysize(keysize: *mut ::std::os::raw::c_int)
5884     -> ::std::os::raw::c_int;
5885}
5886extern "C" {
5887    #[link_name = "kasumi_desc"]
5888    pub static kasumi_desc: ltc_cipher_descriptor;
5889}
5890extern "C" {
5891    pub fn multi2_setup(key: *const ::std::os::raw::c_uchar,
5892                        keylen: ::std::os::raw::c_int,
5893                        num_rounds: ::std::os::raw::c_int,
5894                        skey: *mut symmetric_key) -> ::std::os::raw::c_int;
5895}
5896extern "C" {
5897    pub fn multi2_ecb_encrypt(pt: *const ::std::os::raw::c_uchar,
5898                              ct: *mut ::std::os::raw::c_uchar,
5899                              skey: *mut symmetric_key)
5900     -> ::std::os::raw::c_int;
5901}
5902extern "C" {
5903    pub fn multi2_ecb_decrypt(ct: *const ::std::os::raw::c_uchar,
5904                              pt: *mut ::std::os::raw::c_uchar,
5905                              skey: *mut symmetric_key)
5906     -> ::std::os::raw::c_int;
5907}
5908extern "C" {
5909    pub fn multi2_test() -> ::std::os::raw::c_int;
5910}
5911extern "C" {
5912    pub fn multi2_done(skey: *mut symmetric_key);
5913}
5914extern "C" {
5915    pub fn multi2_keysize(keysize: *mut ::std::os::raw::c_int)
5916     -> ::std::os::raw::c_int;
5917}
5918extern "C" {
5919    #[link_name = "multi2_desc"]
5920    pub static multi2_desc: ltc_cipher_descriptor;
5921}
5922extern "C" {
5923    pub fn camellia_setup(key: *const ::std::os::raw::c_uchar,
5924                          keylen: ::std::os::raw::c_int,
5925                          num_rounds: ::std::os::raw::c_int,
5926                          skey: *mut symmetric_key) -> ::std::os::raw::c_int;
5927}
5928extern "C" {
5929    pub fn camellia_ecb_encrypt(pt: *const ::std::os::raw::c_uchar,
5930                                ct: *mut ::std::os::raw::c_uchar,
5931                                skey: *mut symmetric_key)
5932     -> ::std::os::raw::c_int;
5933}
5934extern "C" {
5935    pub fn camellia_ecb_decrypt(ct: *const ::std::os::raw::c_uchar,
5936                                pt: *mut ::std::os::raw::c_uchar,
5937                                skey: *mut symmetric_key)
5938     -> ::std::os::raw::c_int;
5939}
5940extern "C" {
5941    pub fn camellia_test() -> ::std::os::raw::c_int;
5942}
5943extern "C" {
5944    pub fn camellia_done(skey: *mut symmetric_key);
5945}
5946extern "C" {
5947    pub fn camellia_keysize(keysize: *mut ::std::os::raw::c_int)
5948     -> ::std::os::raw::c_int;
5949}
5950extern "C" {
5951    #[link_name = "camellia_desc"]
5952    pub static camellia_desc: ltc_cipher_descriptor;
5953}
5954extern "C" {
5955    pub fn ecb_start(cipher: ::std::os::raw::c_int,
5956                     key: *const ::std::os::raw::c_uchar,
5957                     keylen: ::std::os::raw::c_int,
5958                     num_rounds: ::std::os::raw::c_int,
5959                     ecb: *mut symmetric_ECB) -> ::std::os::raw::c_int;
5960}
5961extern "C" {
5962    pub fn ecb_encrypt(pt: *const ::std::os::raw::c_uchar,
5963                       ct: *mut ::std::os::raw::c_uchar,
5964                       len: ::std::os::raw::c_ulong, ecb: *mut symmetric_ECB)
5965     -> ::std::os::raw::c_int;
5966}
5967extern "C" {
5968    pub fn ecb_decrypt(ct: *const ::std::os::raw::c_uchar,
5969                       pt: *mut ::std::os::raw::c_uchar,
5970                       len: ::std::os::raw::c_ulong, ecb: *mut symmetric_ECB)
5971     -> ::std::os::raw::c_int;
5972}
5973extern "C" {
5974    pub fn ecb_done(ecb: *mut symmetric_ECB) -> ::std::os::raw::c_int;
5975}
5976extern "C" {
5977    pub fn cfb_start(cipher: ::std::os::raw::c_int,
5978                     IV: *const ::std::os::raw::c_uchar,
5979                     key: *const ::std::os::raw::c_uchar,
5980                     keylen: ::std::os::raw::c_int,
5981                     num_rounds: ::std::os::raw::c_int,
5982                     cfb: *mut symmetric_CFB) -> ::std::os::raw::c_int;
5983}
5984extern "C" {
5985    pub fn cfb_encrypt(pt: *const ::std::os::raw::c_uchar,
5986                       ct: *mut ::std::os::raw::c_uchar,
5987                       len: ::std::os::raw::c_ulong, cfb: *mut symmetric_CFB)
5988     -> ::std::os::raw::c_int;
5989}
5990extern "C" {
5991    pub fn cfb_decrypt(ct: *const ::std::os::raw::c_uchar,
5992                       pt: *mut ::std::os::raw::c_uchar,
5993                       len: ::std::os::raw::c_ulong, cfb: *mut symmetric_CFB)
5994     -> ::std::os::raw::c_int;
5995}
5996extern "C" {
5997    pub fn cfb_getiv(IV: *mut ::std::os::raw::c_uchar,
5998                     len: *mut ::std::os::raw::c_ulong,
5999                     cfb: *mut symmetric_CFB) -> ::std::os::raw::c_int;
6000}
6001extern "C" {
6002    pub fn cfb_setiv(IV: *const ::std::os::raw::c_uchar,
6003                     len: ::std::os::raw::c_ulong, cfb: *mut symmetric_CFB)
6004     -> ::std::os::raw::c_int;
6005}
6006extern "C" {
6007    pub fn cfb_done(cfb: *mut symmetric_CFB) -> ::std::os::raw::c_int;
6008}
6009extern "C" {
6010    pub fn ofb_start(cipher: ::std::os::raw::c_int,
6011                     IV: *const ::std::os::raw::c_uchar,
6012                     key: *const ::std::os::raw::c_uchar,
6013                     keylen: ::std::os::raw::c_int,
6014                     num_rounds: ::std::os::raw::c_int,
6015                     ofb: *mut symmetric_OFB) -> ::std::os::raw::c_int;
6016}
6017extern "C" {
6018    pub fn ofb_encrypt(pt: *const ::std::os::raw::c_uchar,
6019                       ct: *mut ::std::os::raw::c_uchar,
6020                       len: ::std::os::raw::c_ulong, ofb: *mut symmetric_OFB)
6021     -> ::std::os::raw::c_int;
6022}
6023extern "C" {
6024    pub fn ofb_decrypt(ct: *const ::std::os::raw::c_uchar,
6025                       pt: *mut ::std::os::raw::c_uchar,
6026                       len: ::std::os::raw::c_ulong, ofb: *mut symmetric_OFB)
6027     -> ::std::os::raw::c_int;
6028}
6029extern "C" {
6030    pub fn ofb_getiv(IV: *mut ::std::os::raw::c_uchar,
6031                     len: *mut ::std::os::raw::c_ulong,
6032                     ofb: *mut symmetric_OFB) -> ::std::os::raw::c_int;
6033}
6034extern "C" {
6035    pub fn ofb_setiv(IV: *const ::std::os::raw::c_uchar,
6036                     len: ::std::os::raw::c_ulong, ofb: *mut symmetric_OFB)
6037     -> ::std::os::raw::c_int;
6038}
6039extern "C" {
6040    pub fn ofb_done(ofb: *mut symmetric_OFB) -> ::std::os::raw::c_int;
6041}
6042extern "C" {
6043    pub fn cbc_start(cipher: ::std::os::raw::c_int,
6044                     IV: *const ::std::os::raw::c_uchar,
6045                     key: *const ::std::os::raw::c_uchar,
6046                     keylen: ::std::os::raw::c_int,
6047                     num_rounds: ::std::os::raw::c_int,
6048                     cbc: *mut symmetric_CBC) -> ::std::os::raw::c_int;
6049}
6050extern "C" {
6051    pub fn cbc_encrypt(pt: *const ::std::os::raw::c_uchar,
6052                       ct: *mut ::std::os::raw::c_uchar,
6053                       len: ::std::os::raw::c_ulong, cbc: *mut symmetric_CBC)
6054     -> ::std::os::raw::c_int;
6055}
6056extern "C" {
6057    pub fn cbc_decrypt(ct: *const ::std::os::raw::c_uchar,
6058                       pt: *mut ::std::os::raw::c_uchar,
6059                       len: ::std::os::raw::c_ulong, cbc: *mut symmetric_CBC)
6060     -> ::std::os::raw::c_int;
6061}
6062extern "C" {
6063    pub fn cbc_getiv(IV: *mut ::std::os::raw::c_uchar,
6064                     len: *mut ::std::os::raw::c_ulong,
6065                     cbc: *mut symmetric_CBC) -> ::std::os::raw::c_int;
6066}
6067extern "C" {
6068    pub fn cbc_setiv(IV: *const ::std::os::raw::c_uchar,
6069                     len: ::std::os::raw::c_ulong, cbc: *mut symmetric_CBC)
6070     -> ::std::os::raw::c_int;
6071}
6072extern "C" {
6073    pub fn cbc_done(cbc: *mut symmetric_CBC) -> ::std::os::raw::c_int;
6074}
6075extern "C" {
6076    pub fn ctr_start(cipher: ::std::os::raw::c_int,
6077                     IV: *const ::std::os::raw::c_uchar,
6078                     key: *const ::std::os::raw::c_uchar,
6079                     keylen: ::std::os::raw::c_int,
6080                     num_rounds: ::std::os::raw::c_int,
6081                     ctr_mode: ::std::os::raw::c_int, ctr: *mut symmetric_CTR)
6082     -> ::std::os::raw::c_int;
6083}
6084extern "C" {
6085    pub fn ctr_encrypt(pt: *const ::std::os::raw::c_uchar,
6086                       ct: *mut ::std::os::raw::c_uchar,
6087                       len: ::std::os::raw::c_ulong, ctr: *mut symmetric_CTR)
6088     -> ::std::os::raw::c_int;
6089}
6090extern "C" {
6091    pub fn ctr_decrypt(ct: *const ::std::os::raw::c_uchar,
6092                       pt: *mut ::std::os::raw::c_uchar,
6093                       len: ::std::os::raw::c_ulong, ctr: *mut symmetric_CTR)
6094     -> ::std::os::raw::c_int;
6095}
6096extern "C" {
6097    pub fn ctr_getiv(IV: *mut ::std::os::raw::c_uchar,
6098                     len: *mut ::std::os::raw::c_ulong,
6099                     ctr: *mut symmetric_CTR) -> ::std::os::raw::c_int;
6100}
6101extern "C" {
6102    pub fn ctr_setiv(IV: *const ::std::os::raw::c_uchar,
6103                     len: ::std::os::raw::c_ulong, ctr: *mut symmetric_CTR)
6104     -> ::std::os::raw::c_int;
6105}
6106extern "C" {
6107    pub fn ctr_done(ctr: *mut symmetric_CTR) -> ::std::os::raw::c_int;
6108}
6109extern "C" {
6110    pub fn ctr_test() -> ::std::os::raw::c_int;
6111}
6112extern "C" {
6113    pub fn lrw_start(cipher: ::std::os::raw::c_int,
6114                     IV: *const ::std::os::raw::c_uchar,
6115                     key: *const ::std::os::raw::c_uchar,
6116                     keylen: ::std::os::raw::c_int,
6117                     tweak: *const ::std::os::raw::c_uchar,
6118                     num_rounds: ::std::os::raw::c_int,
6119                     lrw: *mut symmetric_LRW) -> ::std::os::raw::c_int;
6120}
6121extern "C" {
6122    pub fn lrw_encrypt(pt: *const ::std::os::raw::c_uchar,
6123                       ct: *mut ::std::os::raw::c_uchar,
6124                       len: ::std::os::raw::c_ulong, lrw: *mut symmetric_LRW)
6125     -> ::std::os::raw::c_int;
6126}
6127extern "C" {
6128    pub fn lrw_decrypt(ct: *const ::std::os::raw::c_uchar,
6129                       pt: *mut ::std::os::raw::c_uchar,
6130                       len: ::std::os::raw::c_ulong, lrw: *mut symmetric_LRW)
6131     -> ::std::os::raw::c_int;
6132}
6133extern "C" {
6134    pub fn lrw_getiv(IV: *mut ::std::os::raw::c_uchar,
6135                     len: *mut ::std::os::raw::c_ulong,
6136                     lrw: *mut symmetric_LRW) -> ::std::os::raw::c_int;
6137}
6138extern "C" {
6139    pub fn lrw_setiv(IV: *const ::std::os::raw::c_uchar,
6140                     len: ::std::os::raw::c_ulong, lrw: *mut symmetric_LRW)
6141     -> ::std::os::raw::c_int;
6142}
6143extern "C" {
6144    pub fn lrw_done(lrw: *mut symmetric_LRW) -> ::std::os::raw::c_int;
6145}
6146extern "C" {
6147    pub fn lrw_test() -> ::std::os::raw::c_int;
6148}
6149extern "C" {
6150    pub fn lrw_process(pt: *const ::std::os::raw::c_uchar,
6151                       ct: *mut ::std::os::raw::c_uchar,
6152                       len: ::std::os::raw::c_ulong,
6153                       mode: ::std::os::raw::c_int, lrw: *mut symmetric_LRW)
6154     -> ::std::os::raw::c_int;
6155}
6156extern "C" {
6157    pub fn f8_start(cipher: ::std::os::raw::c_int,
6158                    IV: *const ::std::os::raw::c_uchar,
6159                    key: *const ::std::os::raw::c_uchar,
6160                    keylen: ::std::os::raw::c_int,
6161                    salt_key: *const ::std::os::raw::c_uchar,
6162                    skeylen: ::std::os::raw::c_int,
6163                    num_rounds: ::std::os::raw::c_int, f8: *mut symmetric_F8)
6164     -> ::std::os::raw::c_int;
6165}
6166extern "C" {
6167    pub fn f8_encrypt(pt: *const ::std::os::raw::c_uchar,
6168                      ct: *mut ::std::os::raw::c_uchar,
6169                      len: ::std::os::raw::c_ulong, f8: *mut symmetric_F8)
6170     -> ::std::os::raw::c_int;
6171}
6172extern "C" {
6173    pub fn f8_decrypt(ct: *const ::std::os::raw::c_uchar,
6174                      pt: *mut ::std::os::raw::c_uchar,
6175                      len: ::std::os::raw::c_ulong, f8: *mut symmetric_F8)
6176     -> ::std::os::raw::c_int;
6177}
6178extern "C" {
6179    pub fn f8_getiv(IV: *mut ::std::os::raw::c_uchar,
6180                    len: *mut ::std::os::raw::c_ulong, f8: *mut symmetric_F8)
6181     -> ::std::os::raw::c_int;
6182}
6183extern "C" {
6184    pub fn f8_setiv(IV: *const ::std::os::raw::c_uchar,
6185                    len: ::std::os::raw::c_ulong, f8: *mut symmetric_F8)
6186     -> ::std::os::raw::c_int;
6187}
6188extern "C" {
6189    pub fn f8_done(f8: *mut symmetric_F8) -> ::std::os::raw::c_int;
6190}
6191extern "C" {
6192    pub fn f8_test_mode() -> ::std::os::raw::c_int;
6193}
6194#[repr(C)]
6195#[derive(Copy)]
6196pub struct symmetric_xts {
6197    pub key1: symmetric_key,
6198    pub key2: symmetric_key,
6199    pub cipher: ::std::os::raw::c_int,
6200}
6201#[test]
6202fn bindgen_test_layout_symmetric_xts() {
6203    assert_eq!(::std::mem::size_of::<symmetric_xts>() , 8520usize , concat ! (
6204               "Size of: " , stringify ! ( symmetric_xts ) ));
6205    assert_eq! (::std::mem::align_of::<symmetric_xts>() , 8usize , concat ! (
6206                "Alignment of " , stringify ! ( symmetric_xts ) ));
6207    assert_eq! (unsafe {
6208                & ( * ( 0 as * const symmetric_xts ) ) . key1 as * const _ as
6209                usize } , 0usize , concat ! (
6210                "Alignment of field: " , stringify ! ( symmetric_xts ) , "::"
6211                , stringify ! ( key1 ) ));
6212    assert_eq! (unsafe {
6213                & ( * ( 0 as * const symmetric_xts ) ) . key2 as * const _ as
6214                usize } , 4256usize , concat ! (
6215                "Alignment of field: " , stringify ! ( symmetric_xts ) , "::"
6216                , stringify ! ( key2 ) ));
6217    assert_eq! (unsafe {
6218                & ( * ( 0 as * const symmetric_xts ) ) . cipher as * const _
6219                as usize } , 8512usize , concat ! (
6220                "Alignment of field: " , stringify ! ( symmetric_xts ) , "::"
6221                , stringify ! ( cipher ) ));
6222}
6223impl Clone for symmetric_xts {
6224    fn clone(&self) -> Self { *self }
6225}
6226extern "C" {
6227    pub fn xts_start(cipher: ::std::os::raw::c_int,
6228                     key1: *const ::std::os::raw::c_uchar,
6229                     key2: *const ::std::os::raw::c_uchar,
6230                     keylen: ::std::os::raw::c_ulong,
6231                     num_rounds: ::std::os::raw::c_int,
6232                     xts: *mut symmetric_xts) -> ::std::os::raw::c_int;
6233}
6234extern "C" {
6235    pub fn xts_encrypt(pt: *const ::std::os::raw::c_uchar,
6236                       ptlen: ::std::os::raw::c_ulong,
6237                       ct: *mut ::std::os::raw::c_uchar,
6238                       tweak: *mut ::std::os::raw::c_uchar,
6239                       xts: *mut symmetric_xts) -> ::std::os::raw::c_int;
6240}
6241extern "C" {
6242    pub fn xts_decrypt(ct: *const ::std::os::raw::c_uchar,
6243                       ptlen: ::std::os::raw::c_ulong,
6244                       pt: *mut ::std::os::raw::c_uchar,
6245                       tweak: *mut ::std::os::raw::c_uchar,
6246                       xts: *mut symmetric_xts) -> ::std::os::raw::c_int;
6247}
6248extern "C" {
6249    pub fn xts_done(xts: *mut symmetric_xts);
6250}
6251extern "C" {
6252    pub fn xts_test() -> ::std::os::raw::c_int;
6253}
6254extern "C" {
6255    pub fn xts_mult_x(I: *mut ::std::os::raw::c_uchar);
6256}
6257extern "C" {
6258    pub fn find_cipher(name: *const ::std::os::raw::c_char)
6259     -> ::std::os::raw::c_int;
6260}
6261extern "C" {
6262    pub fn find_cipher_any(name: *const ::std::os::raw::c_char,
6263                           blocklen: ::std::os::raw::c_int,
6264                           keylen: ::std::os::raw::c_int)
6265     -> ::std::os::raw::c_int;
6266}
6267extern "C" {
6268    pub fn find_cipher_id(ID: ::std::os::raw::c_uchar)
6269     -> ::std::os::raw::c_int;
6270}
6271extern "C" {
6272    pub fn register_cipher(cipher: *const ltc_cipher_descriptor)
6273     -> ::std::os::raw::c_int;
6274}
6275extern "C" {
6276    pub fn unregister_cipher(cipher: *const ltc_cipher_descriptor)
6277     -> ::std::os::raw::c_int;
6278}
6279extern "C" {
6280    pub fn register_all_ciphers() -> ::std::os::raw::c_int;
6281}
6282extern "C" {
6283    pub fn cipher_is_valid(idx: ::std::os::raw::c_int)
6284     -> ::std::os::raw::c_int;
6285}
6286#[repr(C)]
6287#[derive(Copy)]
6288pub struct chacha_state {
6289    pub input: [ulong32; 16usize],
6290    pub kstream: [::std::os::raw::c_uchar; 64usize],
6291    pub ksleft: ::std::os::raw::c_ulong,
6292    pub ivlen: ::std::os::raw::c_ulong,
6293    pub rounds: ::std::os::raw::c_int,
6294}
6295#[test]
6296fn bindgen_test_layout_chacha_state() {
6297    assert_eq!(::std::mem::size_of::<chacha_state>() , 152usize , concat ! (
6298               "Size of: " , stringify ! ( chacha_state ) ));
6299    assert_eq! (::std::mem::align_of::<chacha_state>() , 8usize , concat ! (
6300                "Alignment of " , stringify ! ( chacha_state ) ));
6301    assert_eq! (unsafe {
6302                & ( * ( 0 as * const chacha_state ) ) . input as * const _ as
6303                usize } , 0usize , concat ! (
6304                "Alignment of field: " , stringify ! ( chacha_state ) , "::" ,
6305                stringify ! ( input ) ));
6306    assert_eq! (unsafe {
6307                & ( * ( 0 as * const chacha_state ) ) . kstream as * const _
6308                as usize } , 64usize , concat ! (
6309                "Alignment of field: " , stringify ! ( chacha_state ) , "::" ,
6310                stringify ! ( kstream ) ));
6311    assert_eq! (unsafe {
6312                & ( * ( 0 as * const chacha_state ) ) . ksleft as * const _ as
6313                usize } , 128usize , concat ! (
6314                "Alignment of field: " , stringify ! ( chacha_state ) , "::" ,
6315                stringify ! ( ksleft ) ));
6316    assert_eq! (unsafe {
6317                & ( * ( 0 as * const chacha_state ) ) . ivlen as * const _ as
6318                usize } , 136usize , concat ! (
6319                "Alignment of field: " , stringify ! ( chacha_state ) , "::" ,
6320                stringify ! ( ivlen ) ));
6321    assert_eq! (unsafe {
6322                & ( * ( 0 as * const chacha_state ) ) . rounds as * const _ as
6323                usize } , 144usize , concat ! (
6324                "Alignment of field: " , stringify ! ( chacha_state ) , "::" ,
6325                stringify ! ( rounds ) ));
6326}
6327impl Clone for chacha_state {
6328    fn clone(&self) -> Self { *self }
6329}
6330extern "C" {
6331    pub fn chacha_setup(st: *mut chacha_state,
6332                        key: *const ::std::os::raw::c_uchar,
6333                        keylen: ::std::os::raw::c_ulong,
6334                        rounds: ::std::os::raw::c_int)
6335     -> ::std::os::raw::c_int;
6336}
6337extern "C" {
6338    pub fn chacha_ivctr32(st: *mut chacha_state,
6339                          iv: *const ::std::os::raw::c_uchar,
6340                          ivlen: ::std::os::raw::c_ulong, counter: ulong32)
6341     -> ::std::os::raw::c_int;
6342}
6343extern "C" {
6344    pub fn chacha_ivctr64(st: *mut chacha_state,
6345                          iv: *const ::std::os::raw::c_uchar,
6346                          ivlen: ::std::os::raw::c_ulong, counter: ulong64)
6347     -> ::std::os::raw::c_int;
6348}
6349extern "C" {
6350    pub fn chacha_crypt(st: *mut chacha_state,
6351                        in_: *const ::std::os::raw::c_uchar,
6352                        inlen: ::std::os::raw::c_ulong,
6353                        out: *mut ::std::os::raw::c_uchar)
6354     -> ::std::os::raw::c_int;
6355}
6356extern "C" {
6357    pub fn chacha_keystream(st: *mut chacha_state,
6358                            out: *mut ::std::os::raw::c_uchar,
6359                            outlen: ::std::os::raw::c_ulong)
6360     -> ::std::os::raw::c_int;
6361}
6362extern "C" {
6363    pub fn chacha_done(st: *mut chacha_state) -> ::std::os::raw::c_int;
6364}
6365extern "C" {
6366    pub fn chacha_test() -> ::std::os::raw::c_int;
6367}
6368#[repr(C)]
6369#[derive(Copy)]
6370pub struct rc4_state {
6371    pub x: ::std::os::raw::c_uint,
6372    pub y: ::std::os::raw::c_uint,
6373    pub buf: [::std::os::raw::c_uchar; 256usize],
6374}
6375#[test]
6376fn bindgen_test_layout_rc4_state() {
6377    assert_eq!(::std::mem::size_of::<rc4_state>() , 264usize , concat ! (
6378               "Size of: " , stringify ! ( rc4_state ) ));
6379    assert_eq! (::std::mem::align_of::<rc4_state>() , 4usize , concat ! (
6380                "Alignment of " , stringify ! ( rc4_state ) ));
6381    assert_eq! (unsafe {
6382                & ( * ( 0 as * const rc4_state ) ) . x as * const _ as usize }
6383                , 0usize , concat ! (
6384                "Alignment of field: " , stringify ! ( rc4_state ) , "::" ,
6385                stringify ! ( x ) ));
6386    assert_eq! (unsafe {
6387                & ( * ( 0 as * const rc4_state ) ) . y as * const _ as usize }
6388                , 4usize , concat ! (
6389                "Alignment of field: " , stringify ! ( rc4_state ) , "::" ,
6390                stringify ! ( y ) ));
6391    assert_eq! (unsafe {
6392                & ( * ( 0 as * const rc4_state ) ) . buf as * const _ as usize
6393                } , 8usize , concat ! (
6394                "Alignment of field: " , stringify ! ( rc4_state ) , "::" ,
6395                stringify ! ( buf ) ));
6396}
6397impl Clone for rc4_state {
6398    fn clone(&self) -> Self { *self }
6399}
6400extern "C" {
6401    pub fn rc4_stream_setup(st: *mut rc4_state,
6402                            key: *const ::std::os::raw::c_uchar,
6403                            keylen: ::std::os::raw::c_ulong)
6404     -> ::std::os::raw::c_int;
6405}
6406extern "C" {
6407    pub fn rc4_stream_crypt(st: *mut rc4_state,
6408                            in_: *const ::std::os::raw::c_uchar,
6409                            inlen: ::std::os::raw::c_ulong,
6410                            out: *mut ::std::os::raw::c_uchar)
6411     -> ::std::os::raw::c_int;
6412}
6413extern "C" {
6414    pub fn rc4_stream_keystream(st: *mut rc4_state,
6415                                out: *mut ::std::os::raw::c_uchar,
6416                                outlen: ::std::os::raw::c_ulong)
6417     -> ::std::os::raw::c_int;
6418}
6419extern "C" {
6420    pub fn rc4_stream_done(st: *mut rc4_state) -> ::std::os::raw::c_int;
6421}
6422extern "C" {
6423    pub fn rc4_stream_test() -> ::std::os::raw::c_int;
6424}
6425#[repr(C)]
6426#[derive(Debug, Copy)]
6427pub struct sober128_state {
6428    pub R: [ulong32; 17usize],
6429    pub initR: [ulong32; 17usize],
6430    pub konst: ulong32,
6431    pub sbuf: ulong32,
6432    pub nbuf: ::std::os::raw::c_int,
6433}
6434#[test]
6435fn bindgen_test_layout_sober128_state() {
6436    assert_eq!(::std::mem::size_of::<sober128_state>() , 148usize , concat ! (
6437               "Size of: " , stringify ! ( sober128_state ) ));
6438    assert_eq! (::std::mem::align_of::<sober128_state>() , 4usize , concat ! (
6439                "Alignment of " , stringify ! ( sober128_state ) ));
6440    assert_eq! (unsafe {
6441                & ( * ( 0 as * const sober128_state ) ) . R as * const _ as
6442                usize } , 0usize , concat ! (
6443                "Alignment of field: " , stringify ! ( sober128_state ) , "::"
6444                , stringify ! ( R ) ));
6445    assert_eq! (unsafe {
6446                & ( * ( 0 as * const sober128_state ) ) . initR as * const _
6447                as usize } , 68usize , concat ! (
6448                "Alignment of field: " , stringify ! ( sober128_state ) , "::"
6449                , stringify ! ( initR ) ));
6450    assert_eq! (unsafe {
6451                & ( * ( 0 as * const sober128_state ) ) . konst as * const _
6452                as usize } , 136usize , concat ! (
6453                "Alignment of field: " , stringify ! ( sober128_state ) , "::"
6454                , stringify ! ( konst ) ));
6455    assert_eq! (unsafe {
6456                & ( * ( 0 as * const sober128_state ) ) . sbuf as * const _ as
6457                usize } , 140usize , concat ! (
6458                "Alignment of field: " , stringify ! ( sober128_state ) , "::"
6459                , stringify ! ( sbuf ) ));
6460    assert_eq! (unsafe {
6461                & ( * ( 0 as * const sober128_state ) ) . nbuf as * const _ as
6462                usize } , 144usize , concat ! (
6463                "Alignment of field: " , stringify ! ( sober128_state ) , "::"
6464                , stringify ! ( nbuf ) ));
6465}
6466impl Clone for sober128_state {
6467    fn clone(&self) -> Self { *self }
6468}
6469extern "C" {
6470    pub fn sober128_stream_setup(st: *mut sober128_state,
6471                                 key: *const ::std::os::raw::c_uchar,
6472                                 keylen: ::std::os::raw::c_ulong)
6473     -> ::std::os::raw::c_int;
6474}
6475extern "C" {
6476    pub fn sober128_stream_setiv(st: *mut sober128_state,
6477                                 iv: *const ::std::os::raw::c_uchar,
6478                                 ivlen: ::std::os::raw::c_ulong)
6479     -> ::std::os::raw::c_int;
6480}
6481extern "C" {
6482    pub fn sober128_stream_crypt(st: *mut sober128_state,
6483                                 in_: *const ::std::os::raw::c_uchar,
6484                                 inlen: ::std::os::raw::c_ulong,
6485                                 out: *mut ::std::os::raw::c_uchar)
6486     -> ::std::os::raw::c_int;
6487}
6488extern "C" {
6489    pub fn sober128_stream_keystream(st: *mut sober128_state,
6490                                     out: *mut ::std::os::raw::c_uchar,
6491                                     outlen: ::std::os::raw::c_ulong)
6492     -> ::std::os::raw::c_int;
6493}
6494extern "C" {
6495    pub fn sober128_stream_done(st: *mut sober128_state)
6496     -> ::std::os::raw::c_int;
6497}
6498extern "C" {
6499    pub fn sober128_stream_test() -> ::std::os::raw::c_int;
6500}
6501#[repr(C)]
6502#[derive(Copy)]
6503pub struct sha3_state {
6504    pub saved: ulong64,
6505    pub s: [ulong64; 25usize],
6506    pub sb: [::std::os::raw::c_uchar; 200usize],
6507    pub byte_index: ::std::os::raw::c_ushort,
6508    pub word_index: ::std::os::raw::c_ushort,
6509    pub capacity_words: ::std::os::raw::c_ushort,
6510    pub xof_flag: ::std::os::raw::c_ushort,
6511}
6512#[test]
6513fn bindgen_test_layout_sha3_state() {
6514    assert_eq!(::std::mem::size_of::<sha3_state>() , 416usize , concat ! (
6515               "Size of: " , stringify ! ( sha3_state ) ));
6516    assert_eq! (::std::mem::align_of::<sha3_state>() , 8usize , concat ! (
6517                "Alignment of " , stringify ! ( sha3_state ) ));
6518    assert_eq! (unsafe {
6519                & ( * ( 0 as * const sha3_state ) ) . saved as * const _ as
6520                usize } , 0usize , concat ! (
6521                "Alignment of field: " , stringify ! ( sha3_state ) , "::" ,
6522                stringify ! ( saved ) ));
6523    assert_eq! (unsafe {
6524                & ( * ( 0 as * const sha3_state ) ) . s as * const _ as usize
6525                } , 8usize , concat ! (
6526                "Alignment of field: " , stringify ! ( sha3_state ) , "::" ,
6527                stringify ! ( s ) ));
6528    assert_eq! (unsafe {
6529                & ( * ( 0 as * const sha3_state ) ) . sb as * const _ as usize
6530                } , 208usize , concat ! (
6531                "Alignment of field: " , stringify ! ( sha3_state ) , "::" ,
6532                stringify ! ( sb ) ));
6533    assert_eq! (unsafe {
6534                & ( * ( 0 as * const sha3_state ) ) . byte_index as * const _
6535                as usize } , 408usize , concat ! (
6536                "Alignment of field: " , stringify ! ( sha3_state ) , "::" ,
6537                stringify ! ( byte_index ) ));
6538    assert_eq! (unsafe {
6539                & ( * ( 0 as * const sha3_state ) ) . word_index as * const _
6540                as usize } , 410usize , concat ! (
6541                "Alignment of field: " , stringify ! ( sha3_state ) , "::" ,
6542                stringify ! ( word_index ) ));
6543    assert_eq! (unsafe {
6544                & ( * ( 0 as * const sha3_state ) ) . capacity_words as *
6545                const _ as usize } , 412usize , concat ! (
6546                "Alignment of field: " , stringify ! ( sha3_state ) , "::" ,
6547                stringify ! ( capacity_words ) ));
6548    assert_eq! (unsafe {
6549                & ( * ( 0 as * const sha3_state ) ) . xof_flag as * const _ as
6550                usize } , 414usize , concat ! (
6551                "Alignment of field: " , stringify ! ( sha3_state ) , "::" ,
6552                stringify ! ( xof_flag ) ));
6553}
6554impl Clone for sha3_state {
6555    fn clone(&self) -> Self { *self }
6556}
6557#[repr(C)]
6558#[derive(Copy)]
6559pub struct sha512_state {
6560    pub length: ulong64,
6561    pub state: [ulong64; 8usize],
6562    pub curlen: ::std::os::raw::c_ulong,
6563    pub buf: [::std::os::raw::c_uchar; 128usize],
6564}
6565#[test]
6566fn bindgen_test_layout_sha512_state() {
6567    assert_eq!(::std::mem::size_of::<sha512_state>() , 208usize , concat ! (
6568               "Size of: " , stringify ! ( sha512_state ) ));
6569    assert_eq! (::std::mem::align_of::<sha512_state>() , 8usize , concat ! (
6570                "Alignment of " , stringify ! ( sha512_state ) ));
6571    assert_eq! (unsafe {
6572                & ( * ( 0 as * const sha512_state ) ) . length as * const _ as
6573                usize } , 0usize , concat ! (
6574                "Alignment of field: " , stringify ! ( sha512_state ) , "::" ,
6575                stringify ! ( length ) ));
6576    assert_eq! (unsafe {
6577                & ( * ( 0 as * const sha512_state ) ) . state as * const _ as
6578                usize } , 8usize , concat ! (
6579                "Alignment of field: " , stringify ! ( sha512_state ) , "::" ,
6580                stringify ! ( state ) ));
6581    assert_eq! (unsafe {
6582                & ( * ( 0 as * const sha512_state ) ) . curlen as * const _ as
6583                usize } , 72usize , concat ! (
6584                "Alignment of field: " , stringify ! ( sha512_state ) , "::" ,
6585                stringify ! ( curlen ) ));
6586    assert_eq! (unsafe {
6587                & ( * ( 0 as * const sha512_state ) ) . buf as * const _ as
6588                usize } , 80usize , concat ! (
6589                "Alignment of field: " , stringify ! ( sha512_state ) , "::" ,
6590                stringify ! ( buf ) ));
6591}
6592impl Clone for sha512_state {
6593    fn clone(&self) -> Self { *self }
6594}
6595#[repr(C)]
6596#[derive(Copy)]
6597pub struct sha256_state {
6598    pub length: ulong64,
6599    pub state: [ulong32; 8usize],
6600    pub curlen: ulong32,
6601    pub buf: [::std::os::raw::c_uchar; 64usize],
6602}
6603#[test]
6604fn bindgen_test_layout_sha256_state() {
6605    assert_eq!(::std::mem::size_of::<sha256_state>() , 112usize , concat ! (
6606               "Size of: " , stringify ! ( sha256_state ) ));
6607    assert_eq! (::std::mem::align_of::<sha256_state>() , 8usize , concat ! (
6608                "Alignment of " , stringify ! ( sha256_state ) ));
6609    assert_eq! (unsafe {
6610                & ( * ( 0 as * const sha256_state ) ) . length as * const _ as
6611                usize } , 0usize , concat ! (
6612                "Alignment of field: " , stringify ! ( sha256_state ) , "::" ,
6613                stringify ! ( length ) ));
6614    assert_eq! (unsafe {
6615                & ( * ( 0 as * const sha256_state ) ) . state as * const _ as
6616                usize } , 8usize , concat ! (
6617                "Alignment of field: " , stringify ! ( sha256_state ) , "::" ,
6618                stringify ! ( state ) ));
6619    assert_eq! (unsafe {
6620                & ( * ( 0 as * const sha256_state ) ) . curlen as * const _ as
6621                usize } , 40usize , concat ! (
6622                "Alignment of field: " , stringify ! ( sha256_state ) , "::" ,
6623                stringify ! ( curlen ) ));
6624    assert_eq! (unsafe {
6625                & ( * ( 0 as * const sha256_state ) ) . buf as * const _ as
6626                usize } , 44usize , concat ! (
6627                "Alignment of field: " , stringify ! ( sha256_state ) , "::" ,
6628                stringify ! ( buf ) ));
6629}
6630impl Clone for sha256_state {
6631    fn clone(&self) -> Self { *self }
6632}
6633#[repr(C)]
6634#[derive(Copy)]
6635pub struct sha1_state {
6636    pub length: ulong64,
6637    pub state: [ulong32; 5usize],
6638    pub curlen: ulong32,
6639    pub buf: [::std::os::raw::c_uchar; 64usize],
6640}
6641#[test]
6642fn bindgen_test_layout_sha1_state() {
6643    assert_eq!(::std::mem::size_of::<sha1_state>() , 96usize , concat ! (
6644               "Size of: " , stringify ! ( sha1_state ) ));
6645    assert_eq! (::std::mem::align_of::<sha1_state>() , 8usize , concat ! (
6646                "Alignment of " , stringify ! ( sha1_state ) ));
6647    assert_eq! (unsafe {
6648                & ( * ( 0 as * const sha1_state ) ) . length as * const _ as
6649                usize } , 0usize , concat ! (
6650                "Alignment of field: " , stringify ! ( sha1_state ) , "::" ,
6651                stringify ! ( length ) ));
6652    assert_eq! (unsafe {
6653                & ( * ( 0 as * const sha1_state ) ) . state as * const _ as
6654                usize } , 8usize , concat ! (
6655                "Alignment of field: " , stringify ! ( sha1_state ) , "::" ,
6656                stringify ! ( state ) ));
6657    assert_eq! (unsafe {
6658                & ( * ( 0 as * const sha1_state ) ) . curlen as * const _ as
6659                usize } , 28usize , concat ! (
6660                "Alignment of field: " , stringify ! ( sha1_state ) , "::" ,
6661                stringify ! ( curlen ) ));
6662    assert_eq! (unsafe {
6663                & ( * ( 0 as * const sha1_state ) ) . buf as * const _ as
6664                usize } , 32usize , concat ! (
6665                "Alignment of field: " , stringify ! ( sha1_state ) , "::" ,
6666                stringify ! ( buf ) ));
6667}
6668impl Clone for sha1_state {
6669    fn clone(&self) -> Self { *self }
6670}
6671#[repr(C)]
6672#[derive(Copy)]
6673pub struct md5_state {
6674    pub length: ulong64,
6675    pub state: [ulong32; 4usize],
6676    pub curlen: ulong32,
6677    pub buf: [::std::os::raw::c_uchar; 64usize],
6678}
6679#[test]
6680fn bindgen_test_layout_md5_state() {
6681    assert_eq!(::std::mem::size_of::<md5_state>() , 96usize , concat ! (
6682               "Size of: " , stringify ! ( md5_state ) ));
6683    assert_eq! (::std::mem::align_of::<md5_state>() , 8usize , concat ! (
6684                "Alignment of " , stringify ! ( md5_state ) ));
6685    assert_eq! (unsafe {
6686                & ( * ( 0 as * const md5_state ) ) . length as * const _ as
6687                usize } , 0usize , concat ! (
6688                "Alignment of field: " , stringify ! ( md5_state ) , "::" ,
6689                stringify ! ( length ) ));
6690    assert_eq! (unsafe {
6691                & ( * ( 0 as * const md5_state ) ) . state as * const _ as
6692                usize } , 8usize , concat ! (
6693                "Alignment of field: " , stringify ! ( md5_state ) , "::" ,
6694                stringify ! ( state ) ));
6695    assert_eq! (unsafe {
6696                & ( * ( 0 as * const md5_state ) ) . curlen as * const _ as
6697                usize } , 24usize , concat ! (
6698                "Alignment of field: " , stringify ! ( md5_state ) , "::" ,
6699                stringify ! ( curlen ) ));
6700    assert_eq! (unsafe {
6701                & ( * ( 0 as * const md5_state ) ) . buf as * const _ as usize
6702                } , 28usize , concat ! (
6703                "Alignment of field: " , stringify ! ( md5_state ) , "::" ,
6704                stringify ! ( buf ) ));
6705}
6706impl Clone for md5_state {
6707    fn clone(&self) -> Self { *self }
6708}
6709#[repr(C)]
6710#[derive(Copy)]
6711pub struct md4_state {
6712    pub length: ulong64,
6713    pub state: [ulong32; 4usize],
6714    pub curlen: ulong32,
6715    pub buf: [::std::os::raw::c_uchar; 64usize],
6716}
6717#[test]
6718fn bindgen_test_layout_md4_state() {
6719    assert_eq!(::std::mem::size_of::<md4_state>() , 96usize , concat ! (
6720               "Size of: " , stringify ! ( md4_state ) ));
6721    assert_eq! (::std::mem::align_of::<md4_state>() , 8usize , concat ! (
6722                "Alignment of " , stringify ! ( md4_state ) ));
6723    assert_eq! (unsafe {
6724                & ( * ( 0 as * const md4_state ) ) . length as * const _ as
6725                usize } , 0usize , concat ! (
6726                "Alignment of field: " , stringify ! ( md4_state ) , "::" ,
6727                stringify ! ( length ) ));
6728    assert_eq! (unsafe {
6729                & ( * ( 0 as * const md4_state ) ) . state as * const _ as
6730                usize } , 8usize , concat ! (
6731                "Alignment of field: " , stringify ! ( md4_state ) , "::" ,
6732                stringify ! ( state ) ));
6733    assert_eq! (unsafe {
6734                & ( * ( 0 as * const md4_state ) ) . curlen as * const _ as
6735                usize } , 24usize , concat ! (
6736                "Alignment of field: " , stringify ! ( md4_state ) , "::" ,
6737                stringify ! ( curlen ) ));
6738    assert_eq! (unsafe {
6739                & ( * ( 0 as * const md4_state ) ) . buf as * const _ as usize
6740                } , 28usize , concat ! (
6741                "Alignment of field: " , stringify ! ( md4_state ) , "::" ,
6742                stringify ! ( buf ) ));
6743}
6744impl Clone for md4_state {
6745    fn clone(&self) -> Self { *self }
6746}
6747#[repr(C)]
6748#[derive(Copy)]
6749pub struct tiger_state {
6750    pub state: [ulong64; 3usize],
6751    pub length: ulong64,
6752    pub curlen: ::std::os::raw::c_ulong,
6753    pub buf: [::std::os::raw::c_uchar; 64usize],
6754}
6755#[test]
6756fn bindgen_test_layout_tiger_state() {
6757    assert_eq!(::std::mem::size_of::<tiger_state>() , 104usize , concat ! (
6758               "Size of: " , stringify ! ( tiger_state ) ));
6759    assert_eq! (::std::mem::align_of::<tiger_state>() , 8usize , concat ! (
6760                "Alignment of " , stringify ! ( tiger_state ) ));
6761    assert_eq! (unsafe {
6762                & ( * ( 0 as * const tiger_state ) ) . state as * const _ as
6763                usize } , 0usize , concat ! (
6764                "Alignment of field: " , stringify ! ( tiger_state ) , "::" ,
6765                stringify ! ( state ) ));
6766    assert_eq! (unsafe {
6767                & ( * ( 0 as * const tiger_state ) ) . length as * const _ as
6768                usize } , 24usize , concat ! (
6769                "Alignment of field: " , stringify ! ( tiger_state ) , "::" ,
6770                stringify ! ( length ) ));
6771    assert_eq! (unsafe {
6772                & ( * ( 0 as * const tiger_state ) ) . curlen as * const _ as
6773                usize } , 32usize , concat ! (
6774                "Alignment of field: " , stringify ! ( tiger_state ) , "::" ,
6775                stringify ! ( curlen ) ));
6776    assert_eq! (unsafe {
6777                & ( * ( 0 as * const tiger_state ) ) . buf as * const _ as
6778                usize } , 40usize , concat ! (
6779                "Alignment of field: " , stringify ! ( tiger_state ) , "::" ,
6780                stringify ! ( buf ) ));
6781}
6782impl Clone for tiger_state {
6783    fn clone(&self) -> Self { *self }
6784}
6785#[repr(C)]
6786#[derive(Copy)]
6787pub struct md2_state {
6788    pub chksum: [::std::os::raw::c_uchar; 16usize],
6789    pub X: [::std::os::raw::c_uchar; 48usize],
6790    pub buf: [::std::os::raw::c_uchar; 16usize],
6791    pub curlen: ::std::os::raw::c_ulong,
6792}
6793#[test]
6794fn bindgen_test_layout_md2_state() {
6795    assert_eq!(::std::mem::size_of::<md2_state>() , 88usize , concat ! (
6796               "Size of: " , stringify ! ( md2_state ) ));
6797    assert_eq! (::std::mem::align_of::<md2_state>() , 8usize , concat ! (
6798                "Alignment of " , stringify ! ( md2_state ) ));
6799    assert_eq! (unsafe {
6800                & ( * ( 0 as * const md2_state ) ) . chksum as * const _ as
6801                usize } , 0usize , concat ! (
6802                "Alignment of field: " , stringify ! ( md2_state ) , "::" ,
6803                stringify ! ( chksum ) ));
6804    assert_eq! (unsafe {
6805                & ( * ( 0 as * const md2_state ) ) . X as * const _ as usize }
6806                , 16usize , concat ! (
6807                "Alignment of field: " , stringify ! ( md2_state ) , "::" ,
6808                stringify ! ( X ) ));
6809    assert_eq! (unsafe {
6810                & ( * ( 0 as * const md2_state ) ) . buf as * const _ as usize
6811                } , 64usize , concat ! (
6812                "Alignment of field: " , stringify ! ( md2_state ) , "::" ,
6813                stringify ! ( buf ) ));
6814    assert_eq! (unsafe {
6815                & ( * ( 0 as * const md2_state ) ) . curlen as * const _ as
6816                usize } , 80usize , concat ! (
6817                "Alignment of field: " , stringify ! ( md2_state ) , "::" ,
6818                stringify ! ( curlen ) ));
6819}
6820impl Clone for md2_state {
6821    fn clone(&self) -> Self { *self }
6822}
6823#[repr(C)]
6824#[derive(Copy)]
6825pub struct rmd128_state {
6826    pub length: ulong64,
6827    pub buf: [::std::os::raw::c_uchar; 64usize],
6828    pub curlen: ulong32,
6829    pub state: [ulong32; 4usize],
6830}
6831#[test]
6832fn bindgen_test_layout_rmd128_state() {
6833    assert_eq!(::std::mem::size_of::<rmd128_state>() , 96usize , concat ! (
6834               "Size of: " , stringify ! ( rmd128_state ) ));
6835    assert_eq! (::std::mem::align_of::<rmd128_state>() , 8usize , concat ! (
6836                "Alignment of " , stringify ! ( rmd128_state ) ));
6837    assert_eq! (unsafe {
6838                & ( * ( 0 as * const rmd128_state ) ) . length as * const _ as
6839                usize } , 0usize , concat ! (
6840                "Alignment of field: " , stringify ! ( rmd128_state ) , "::" ,
6841                stringify ! ( length ) ));
6842    assert_eq! (unsafe {
6843                & ( * ( 0 as * const rmd128_state ) ) . buf as * const _ as
6844                usize } , 8usize , concat ! (
6845                "Alignment of field: " , stringify ! ( rmd128_state ) , "::" ,
6846                stringify ! ( buf ) ));
6847    assert_eq! (unsafe {
6848                & ( * ( 0 as * const rmd128_state ) ) . curlen as * const _ as
6849                usize } , 72usize , concat ! (
6850                "Alignment of field: " , stringify ! ( rmd128_state ) , "::" ,
6851                stringify ! ( curlen ) ));
6852    assert_eq! (unsafe {
6853                & ( * ( 0 as * const rmd128_state ) ) . state as * const _ as
6854                usize } , 76usize , concat ! (
6855                "Alignment of field: " , stringify ! ( rmd128_state ) , "::" ,
6856                stringify ! ( state ) ));
6857}
6858impl Clone for rmd128_state {
6859    fn clone(&self) -> Self { *self }
6860}
6861#[repr(C)]
6862#[derive(Copy)]
6863pub struct rmd160_state {
6864    pub length: ulong64,
6865    pub buf: [::std::os::raw::c_uchar; 64usize],
6866    pub curlen: ulong32,
6867    pub state: [ulong32; 5usize],
6868}
6869#[test]
6870fn bindgen_test_layout_rmd160_state() {
6871    assert_eq!(::std::mem::size_of::<rmd160_state>() , 96usize , concat ! (
6872               "Size of: " , stringify ! ( rmd160_state ) ));
6873    assert_eq! (::std::mem::align_of::<rmd160_state>() , 8usize , concat ! (
6874                "Alignment of " , stringify ! ( rmd160_state ) ));
6875    assert_eq! (unsafe {
6876                & ( * ( 0 as * const rmd160_state ) ) . length as * const _ as
6877                usize } , 0usize , concat ! (
6878                "Alignment of field: " , stringify ! ( rmd160_state ) , "::" ,
6879                stringify ! ( length ) ));
6880    assert_eq! (unsafe {
6881                & ( * ( 0 as * const rmd160_state ) ) . buf as * const _ as
6882                usize } , 8usize , concat ! (
6883                "Alignment of field: " , stringify ! ( rmd160_state ) , "::" ,
6884                stringify ! ( buf ) ));
6885    assert_eq! (unsafe {
6886                & ( * ( 0 as * const rmd160_state ) ) . curlen as * const _ as
6887                usize } , 72usize , concat ! (
6888                "Alignment of field: " , stringify ! ( rmd160_state ) , "::" ,
6889                stringify ! ( curlen ) ));
6890    assert_eq! (unsafe {
6891                & ( * ( 0 as * const rmd160_state ) ) . state as * const _ as
6892                usize } , 76usize , concat ! (
6893                "Alignment of field: " , stringify ! ( rmd160_state ) , "::" ,
6894                stringify ! ( state ) ));
6895}
6896impl Clone for rmd160_state {
6897    fn clone(&self) -> Self { *self }
6898}
6899#[repr(C)]
6900#[derive(Copy)]
6901pub struct rmd256_state {
6902    pub length: ulong64,
6903    pub buf: [::std::os::raw::c_uchar; 64usize],
6904    pub curlen: ulong32,
6905    pub state: [ulong32; 8usize],
6906}
6907#[test]
6908fn bindgen_test_layout_rmd256_state() {
6909    assert_eq!(::std::mem::size_of::<rmd256_state>() , 112usize , concat ! (
6910               "Size of: " , stringify ! ( rmd256_state ) ));
6911    assert_eq! (::std::mem::align_of::<rmd256_state>() , 8usize , concat ! (
6912                "Alignment of " , stringify ! ( rmd256_state ) ));
6913    assert_eq! (unsafe {
6914                & ( * ( 0 as * const rmd256_state ) ) . length as * const _ as
6915                usize } , 0usize , concat ! (
6916                "Alignment of field: " , stringify ! ( rmd256_state ) , "::" ,
6917                stringify ! ( length ) ));
6918    assert_eq! (unsafe {
6919                & ( * ( 0 as * const rmd256_state ) ) . buf as * const _ as
6920                usize } , 8usize , concat ! (
6921                "Alignment of field: " , stringify ! ( rmd256_state ) , "::" ,
6922                stringify ! ( buf ) ));
6923    assert_eq! (unsafe {
6924                & ( * ( 0 as * const rmd256_state ) ) . curlen as * const _ as
6925                usize } , 72usize , concat ! (
6926                "Alignment of field: " , stringify ! ( rmd256_state ) , "::" ,
6927                stringify ! ( curlen ) ));
6928    assert_eq! (unsafe {
6929                & ( * ( 0 as * const rmd256_state ) ) . state as * const _ as
6930                usize } , 76usize , concat ! (
6931                "Alignment of field: " , stringify ! ( rmd256_state ) , "::" ,
6932                stringify ! ( state ) ));
6933}
6934impl Clone for rmd256_state {
6935    fn clone(&self) -> Self { *self }
6936}
6937#[repr(C)]
6938#[derive(Copy)]
6939pub struct rmd320_state {
6940    pub length: ulong64,
6941    pub buf: [::std::os::raw::c_uchar; 64usize],
6942    pub curlen: ulong32,
6943    pub state: [ulong32; 10usize],
6944}
6945#[test]
6946fn bindgen_test_layout_rmd320_state() {
6947    assert_eq!(::std::mem::size_of::<rmd320_state>() , 120usize , concat ! (
6948               "Size of: " , stringify ! ( rmd320_state ) ));
6949    assert_eq! (::std::mem::align_of::<rmd320_state>() , 8usize , concat ! (
6950                "Alignment of " , stringify ! ( rmd320_state ) ));
6951    assert_eq! (unsafe {
6952                & ( * ( 0 as * const rmd320_state ) ) . length as * const _ as
6953                usize } , 0usize , concat ! (
6954                "Alignment of field: " , stringify ! ( rmd320_state ) , "::" ,
6955                stringify ! ( length ) ));
6956    assert_eq! (unsafe {
6957                & ( * ( 0 as * const rmd320_state ) ) . buf as * const _ as
6958                usize } , 8usize , concat ! (
6959                "Alignment of field: " , stringify ! ( rmd320_state ) , "::" ,
6960                stringify ! ( buf ) ));
6961    assert_eq! (unsafe {
6962                & ( * ( 0 as * const rmd320_state ) ) . curlen as * const _ as
6963                usize } , 72usize , concat ! (
6964                "Alignment of field: " , stringify ! ( rmd320_state ) , "::" ,
6965                stringify ! ( curlen ) ));
6966    assert_eq! (unsafe {
6967                & ( * ( 0 as * const rmd320_state ) ) . state as * const _ as
6968                usize } , 76usize , concat ! (
6969                "Alignment of field: " , stringify ! ( rmd320_state ) , "::" ,
6970                stringify ! ( state ) ));
6971}
6972impl Clone for rmd320_state {
6973    fn clone(&self) -> Self { *self }
6974}
6975#[repr(C)]
6976#[derive(Copy)]
6977pub struct whirlpool_state {
6978    pub length: ulong64,
6979    pub state: [ulong64; 8usize],
6980    pub buf: [::std::os::raw::c_uchar; 64usize],
6981    pub curlen: ulong32,
6982}
6983#[test]
6984fn bindgen_test_layout_whirlpool_state() {
6985    assert_eq!(::std::mem::size_of::<whirlpool_state>() , 144usize , concat !
6986               ( "Size of: " , stringify ! ( whirlpool_state ) ));
6987    assert_eq! (::std::mem::align_of::<whirlpool_state>() , 8usize , concat !
6988                ( "Alignment of " , stringify ! ( whirlpool_state ) ));
6989    assert_eq! (unsafe {
6990                & ( * ( 0 as * const whirlpool_state ) ) . length as * const _
6991                as usize } , 0usize , concat ! (
6992                "Alignment of field: " , stringify ! ( whirlpool_state ) ,
6993                "::" , stringify ! ( length ) ));
6994    assert_eq! (unsafe {
6995                & ( * ( 0 as * const whirlpool_state ) ) . state as * const _
6996                as usize } , 8usize , concat ! (
6997                "Alignment of field: " , stringify ! ( whirlpool_state ) ,
6998                "::" , stringify ! ( state ) ));
6999    assert_eq! (unsafe {
7000                & ( * ( 0 as * const whirlpool_state ) ) . buf as * const _ as
7001                usize } , 72usize , concat ! (
7002                "Alignment of field: " , stringify ! ( whirlpool_state ) ,
7003                "::" , stringify ! ( buf ) ));
7004    assert_eq! (unsafe {
7005                & ( * ( 0 as * const whirlpool_state ) ) . curlen as * const _
7006                as usize } , 136usize , concat ! (
7007                "Alignment of field: " , stringify ! ( whirlpool_state ) ,
7008                "::" , stringify ! ( curlen ) ));
7009}
7010impl Clone for whirlpool_state {
7011    fn clone(&self) -> Self { *self }
7012}
7013#[repr(C)]
7014#[derive(Copy)]
7015pub struct chc_state {
7016    pub length: ulong64,
7017    pub state: [::std::os::raw::c_uchar; 128usize],
7018    pub buf: [::std::os::raw::c_uchar; 128usize],
7019    pub curlen: ulong32,
7020}
7021#[test]
7022fn bindgen_test_layout_chc_state() {
7023    assert_eq!(::std::mem::size_of::<chc_state>() , 272usize , concat ! (
7024               "Size of: " , stringify ! ( chc_state ) ));
7025    assert_eq! (::std::mem::align_of::<chc_state>() , 8usize , concat ! (
7026                "Alignment of " , stringify ! ( chc_state ) ));
7027    assert_eq! (unsafe {
7028                & ( * ( 0 as * const chc_state ) ) . length as * const _ as
7029                usize } , 0usize , concat ! (
7030                "Alignment of field: " , stringify ! ( chc_state ) , "::" ,
7031                stringify ! ( length ) ));
7032    assert_eq! (unsafe {
7033                & ( * ( 0 as * const chc_state ) ) . state as * const _ as
7034                usize } , 8usize , concat ! (
7035                "Alignment of field: " , stringify ! ( chc_state ) , "::" ,
7036                stringify ! ( state ) ));
7037    assert_eq! (unsafe {
7038                & ( * ( 0 as * const chc_state ) ) . buf as * const _ as usize
7039                } , 136usize , concat ! (
7040                "Alignment of field: " , stringify ! ( chc_state ) , "::" ,
7041                stringify ! ( buf ) ));
7042    assert_eq! (unsafe {
7043                & ( * ( 0 as * const chc_state ) ) . curlen as * const _ as
7044                usize } , 264usize , concat ! (
7045                "Alignment of field: " , stringify ! ( chc_state ) , "::" ,
7046                stringify ! ( curlen ) ));
7047}
7048impl Clone for chc_state {
7049    fn clone(&self) -> Self { *self }
7050}
7051#[repr(C)]
7052#[derive(Copy)]
7053pub struct blake2s_state {
7054    pub h: [ulong32; 8usize],
7055    pub t: [ulong32; 2usize],
7056    pub f: [ulong32; 2usize],
7057    pub buf: [::std::os::raw::c_uchar; 64usize],
7058    pub curlen: ::std::os::raw::c_ulong,
7059    pub outlen: ::std::os::raw::c_ulong,
7060    pub last_node: ::std::os::raw::c_uchar,
7061}
7062#[test]
7063fn bindgen_test_layout_blake2s_state() {
7064    assert_eq!(::std::mem::size_of::<blake2s_state>() , 136usize , concat ! (
7065               "Size of: " , stringify ! ( blake2s_state ) ));
7066    assert_eq! (::std::mem::align_of::<blake2s_state>() , 8usize , concat ! (
7067                "Alignment of " , stringify ! ( blake2s_state ) ));
7068    assert_eq! (unsafe {
7069                & ( * ( 0 as * const blake2s_state ) ) . h as * const _ as
7070                usize } , 0usize , concat ! (
7071                "Alignment of field: " , stringify ! ( blake2s_state ) , "::"
7072                , stringify ! ( h ) ));
7073    assert_eq! (unsafe {
7074                & ( * ( 0 as * const blake2s_state ) ) . t as * const _ as
7075                usize } , 32usize , concat ! (
7076                "Alignment of field: " , stringify ! ( blake2s_state ) , "::"
7077                , stringify ! ( t ) ));
7078    assert_eq! (unsafe {
7079                & ( * ( 0 as * const blake2s_state ) ) . f as * const _ as
7080                usize } , 40usize , concat ! (
7081                "Alignment of field: " , stringify ! ( blake2s_state ) , "::"
7082                , stringify ! ( f ) ));
7083    assert_eq! (unsafe {
7084                & ( * ( 0 as * const blake2s_state ) ) . buf as * const _ as
7085                usize } , 48usize , concat ! (
7086                "Alignment of field: " , stringify ! ( blake2s_state ) , "::"
7087                , stringify ! ( buf ) ));
7088    assert_eq! (unsafe {
7089                & ( * ( 0 as * const blake2s_state ) ) . curlen as * const _
7090                as usize } , 112usize , concat ! (
7091                "Alignment of field: " , stringify ! ( blake2s_state ) , "::"
7092                , stringify ! ( curlen ) ));
7093    assert_eq! (unsafe {
7094                & ( * ( 0 as * const blake2s_state ) ) . outlen as * const _
7095                as usize } , 120usize , concat ! (
7096                "Alignment of field: " , stringify ! ( blake2s_state ) , "::"
7097                , stringify ! ( outlen ) ));
7098    assert_eq! (unsafe {
7099                & ( * ( 0 as * const blake2s_state ) ) . last_node as * const
7100                _ as usize } , 128usize , concat ! (
7101                "Alignment of field: " , stringify ! ( blake2s_state ) , "::"
7102                , stringify ! ( last_node ) ));
7103}
7104impl Clone for blake2s_state {
7105    fn clone(&self) -> Self { *self }
7106}
7107#[repr(C)]
7108#[derive(Copy)]
7109pub struct blake2b_state {
7110    pub h: [ulong64; 8usize],
7111    pub t: [ulong64; 2usize],
7112    pub f: [ulong64; 2usize],
7113    pub buf: [::std::os::raw::c_uchar; 128usize],
7114    pub curlen: ::std::os::raw::c_ulong,
7115    pub outlen: ::std::os::raw::c_ulong,
7116    pub last_node: ::std::os::raw::c_uchar,
7117}
7118#[test]
7119fn bindgen_test_layout_blake2b_state() {
7120    assert_eq!(::std::mem::size_of::<blake2b_state>() , 248usize , concat ! (
7121               "Size of: " , stringify ! ( blake2b_state ) ));
7122    assert_eq! (::std::mem::align_of::<blake2b_state>() , 8usize , concat ! (
7123                "Alignment of " , stringify ! ( blake2b_state ) ));
7124    assert_eq! (unsafe {
7125                & ( * ( 0 as * const blake2b_state ) ) . h as * const _ as
7126                usize } , 0usize , concat ! (
7127                "Alignment of field: " , stringify ! ( blake2b_state ) , "::"
7128                , stringify ! ( h ) ));
7129    assert_eq! (unsafe {
7130                & ( * ( 0 as * const blake2b_state ) ) . t as * const _ as
7131                usize } , 64usize , concat ! (
7132                "Alignment of field: " , stringify ! ( blake2b_state ) , "::"
7133                , stringify ! ( t ) ));
7134    assert_eq! (unsafe {
7135                & ( * ( 0 as * const blake2b_state ) ) . f as * const _ as
7136                usize } , 80usize , concat ! (
7137                "Alignment of field: " , stringify ! ( blake2b_state ) , "::"
7138                , stringify ! ( f ) ));
7139    assert_eq! (unsafe {
7140                & ( * ( 0 as * const blake2b_state ) ) . buf as * const _ as
7141                usize } , 96usize , concat ! (
7142                "Alignment of field: " , stringify ! ( blake2b_state ) , "::"
7143                , stringify ! ( buf ) ));
7144    assert_eq! (unsafe {
7145                & ( * ( 0 as * const blake2b_state ) ) . curlen as * const _
7146                as usize } , 224usize , concat ! (
7147                "Alignment of field: " , stringify ! ( blake2b_state ) , "::"
7148                , stringify ! ( curlen ) ));
7149    assert_eq! (unsafe {
7150                & ( * ( 0 as * const blake2b_state ) ) . outlen as * const _
7151                as usize } , 232usize , concat ! (
7152                "Alignment of field: " , stringify ! ( blake2b_state ) , "::"
7153                , stringify ! ( outlen ) ));
7154    assert_eq! (unsafe {
7155                & ( * ( 0 as * const blake2b_state ) ) . last_node as * const
7156                _ as usize } , 240usize , concat ! (
7157                "Alignment of field: " , stringify ! ( blake2b_state ) , "::"
7158                , stringify ! ( last_node ) ));
7159}
7160impl Clone for blake2b_state {
7161    fn clone(&self) -> Self { *self }
7162}
7163#[repr(C)]
7164#[derive(Copy)]
7165pub union Hash_state {
7166    pub dummy: [::std::os::raw::c_char; 1usize],
7167    pub chc: chc_state,
7168    pub whirlpool: whirlpool_state,
7169    pub sha3: sha3_state,
7170    pub sha512: sha512_state,
7171    pub sha256: sha256_state,
7172    pub sha1: sha1_state,
7173    pub md5: md5_state,
7174    pub md4: md4_state,
7175    pub md2: md2_state,
7176    pub tiger: tiger_state,
7177    pub rmd128: rmd128_state,
7178    pub rmd160: rmd160_state,
7179    pub rmd256: rmd256_state,
7180    pub rmd320: rmd320_state,
7181    pub blake2s: blake2s_state,
7182    pub blake2b: blake2b_state,
7183    pub data: *mut ::std::os::raw::c_void,
7184    _bindgen_union_align: [u64; 52usize],
7185}
7186#[test]
7187fn bindgen_test_layout_Hash_state() {
7188    assert_eq!(::std::mem::size_of::<Hash_state>() , 416usize , concat ! (
7189               "Size of: " , stringify ! ( Hash_state ) ));
7190    assert_eq! (::std::mem::align_of::<Hash_state>() , 8usize , concat ! (
7191                "Alignment of " , stringify ! ( Hash_state ) ));
7192    assert_eq! (unsafe {
7193                & ( * ( 0 as * const Hash_state ) ) . dummy as * const _ as
7194                usize } , 0usize , concat ! (
7195                "Alignment of field: " , stringify ! ( Hash_state ) , "::" ,
7196                stringify ! ( dummy ) ));
7197    assert_eq! (unsafe {
7198                & ( * ( 0 as * const Hash_state ) ) . chc as * const _ as
7199                usize } , 0usize , concat ! (
7200                "Alignment of field: " , stringify ! ( Hash_state ) , "::" ,
7201                stringify ! ( chc ) ));
7202    assert_eq! (unsafe {
7203                & ( * ( 0 as * const Hash_state ) ) . whirlpool as * const _
7204                as usize } , 0usize , concat ! (
7205                "Alignment of field: " , stringify ! ( Hash_state ) , "::" ,
7206                stringify ! ( whirlpool ) ));
7207    assert_eq! (unsafe {
7208                & ( * ( 0 as * const Hash_state ) ) . sha3 as * const _ as
7209                usize } , 0usize , concat ! (
7210                "Alignment of field: " , stringify ! ( Hash_state ) , "::" ,
7211                stringify ! ( sha3 ) ));
7212    assert_eq! (unsafe {
7213                & ( * ( 0 as * const Hash_state ) ) . sha512 as * const _ as
7214                usize } , 0usize , concat ! (
7215                "Alignment of field: " , stringify ! ( Hash_state ) , "::" ,
7216                stringify ! ( sha512 ) ));
7217    assert_eq! (unsafe {
7218                & ( * ( 0 as * const Hash_state ) ) . sha256 as * const _ as
7219                usize } , 0usize , concat ! (
7220                "Alignment of field: " , stringify ! ( Hash_state ) , "::" ,
7221                stringify ! ( sha256 ) ));
7222    assert_eq! (unsafe {
7223                & ( * ( 0 as * const Hash_state ) ) . sha1 as * const _ as
7224                usize } , 0usize , concat ! (
7225                "Alignment of field: " , stringify ! ( Hash_state ) , "::" ,
7226                stringify ! ( sha1 ) ));
7227    assert_eq! (unsafe {
7228                & ( * ( 0 as * const Hash_state ) ) . md5 as * const _ as
7229                usize } , 0usize , concat ! (
7230                "Alignment of field: " , stringify ! ( Hash_state ) , "::" ,
7231                stringify ! ( md5 ) ));
7232    assert_eq! (unsafe {
7233                & ( * ( 0 as * const Hash_state ) ) . md4 as * const _ as
7234                usize } , 0usize , concat ! (
7235                "Alignment of field: " , stringify ! ( Hash_state ) , "::" ,
7236                stringify ! ( md4 ) ));
7237    assert_eq! (unsafe {
7238                & ( * ( 0 as * const Hash_state ) ) . md2 as * const _ as
7239                usize } , 0usize , concat ! (
7240                "Alignment of field: " , stringify ! ( Hash_state ) , "::" ,
7241                stringify ! ( md2 ) ));
7242    assert_eq! (unsafe {
7243                & ( * ( 0 as * const Hash_state ) ) . tiger as * const _ as
7244                usize } , 0usize , concat ! (
7245                "Alignment of field: " , stringify ! ( Hash_state ) , "::" ,
7246                stringify ! ( tiger ) ));
7247    assert_eq! (unsafe {
7248                & ( * ( 0 as * const Hash_state ) ) . rmd128 as * const _ as
7249                usize } , 0usize , concat ! (
7250                "Alignment of field: " , stringify ! ( Hash_state ) , "::" ,
7251                stringify ! ( rmd128 ) ));
7252    assert_eq! (unsafe {
7253                & ( * ( 0 as * const Hash_state ) ) . rmd160 as * const _ as
7254                usize } , 0usize , concat ! (
7255                "Alignment of field: " , stringify ! ( Hash_state ) , "::" ,
7256                stringify ! ( rmd160 ) ));
7257    assert_eq! (unsafe {
7258                & ( * ( 0 as * const Hash_state ) ) . rmd256 as * const _ as
7259                usize } , 0usize , concat ! (
7260                "Alignment of field: " , stringify ! ( Hash_state ) , "::" ,
7261                stringify ! ( rmd256 ) ));
7262    assert_eq! (unsafe {
7263                & ( * ( 0 as * const Hash_state ) ) . rmd320 as * const _ as
7264                usize } , 0usize , concat ! (
7265                "Alignment of field: " , stringify ! ( Hash_state ) , "::" ,
7266                stringify ! ( rmd320 ) ));
7267    assert_eq! (unsafe {
7268                & ( * ( 0 as * const Hash_state ) ) . blake2s as * const _ as
7269                usize } , 0usize , concat ! (
7270                "Alignment of field: " , stringify ! ( Hash_state ) , "::" ,
7271                stringify ! ( blake2s ) ));
7272    assert_eq! (unsafe {
7273                & ( * ( 0 as * const Hash_state ) ) . blake2b as * const _ as
7274                usize } , 0usize , concat ! (
7275                "Alignment of field: " , stringify ! ( Hash_state ) , "::" ,
7276                stringify ! ( blake2b ) ));
7277    assert_eq! (unsafe {
7278                & ( * ( 0 as * const Hash_state ) ) . data as * const _ as
7279                usize } , 0usize , concat ! (
7280                "Alignment of field: " , stringify ! ( Hash_state ) , "::" ,
7281                stringify ! ( data ) ));
7282}
7283impl Clone for Hash_state {
7284    fn clone(&self) -> Self { *self }
7285}
7286pub type hash_state = Hash_state;
7287/// hash descriptor
7288#[repr(C)]
7289#[derive(Debug, Copy)]
7290pub struct ltc_hash_descriptor {
7291    /// name of hash
7292    pub name: *const ::std::os::raw::c_char,
7293    /// internal ID
7294    pub ID: ::std::os::raw::c_uchar,
7295    /// Size of digest in octets
7296    pub hashsize: ::std::os::raw::c_ulong,
7297    /// Input block size in octets
7298    pub blocksize: ::std::os::raw::c_ulong,
7299    /// ASN.1 OID
7300    pub OID: [::std::os::raw::c_ulong; 16usize],
7301    /// Length of DER encoding
7302    pub OIDlen: ::std::os::raw::c_ulong,
7303    /// Init a hash state
7304    /// @param hash   The hash to initialize
7305    /// @return CRYPT_OK if successful
7306    pub init: ::std::option::Option<unsafe extern "C" fn(hash:
7307                                                             *mut hash_state)
7308                                        -> ::std::os::raw::c_int>,
7309    /// Process a block of data
7310    /// @param hash   The hash state
7311    /// @param in     The data to hash
7312    /// @param inlen  The length of the data (octets)
7313    /// @return CRYPT_OK if successful
7314    pub process: ::std::option::Option<unsafe extern "C" fn(hash:
7315                                                                *mut hash_state,
7316                                                            in_:
7317                                                                *const ::std::os::raw::c_uchar,
7318                                                            inlen:
7319                                                                ::std::os::raw::c_ulong)
7320                                           -> ::std::os::raw::c_int>,
7321    /// Produce the digest and store it
7322    /// @param hash   The hash state
7323    /// @param out    [out] The destination of the digest
7324    /// @return CRYPT_OK if successful
7325    pub done: ::std::option::Option<unsafe extern "C" fn(hash:
7326                                                             *mut hash_state,
7327                                                         out:
7328                                                             *mut ::std::os::raw::c_uchar)
7329                                        -> ::std::os::raw::c_int>,
7330    /// Self-test
7331    /// @return CRYPT_OK if successful, CRYPT_NOP if self-tests have been disabled
7332    pub test: ::std::option::Option<unsafe extern "C" fn()
7333                                        -> ::std::os::raw::c_int>,
7334    pub hmac_block: ::std::option::Option<unsafe extern "C" fn(key:
7335                                                                   *const ::std::os::raw::c_uchar,
7336                                                               keylen:
7337                                                                   ::std::os::raw::c_ulong,
7338                                                               in_:
7339                                                                   *const ::std::os::raw::c_uchar,
7340                                                               inlen:
7341                                                                   ::std::os::raw::c_ulong,
7342                                                               out:
7343                                                                   *mut ::std::os::raw::c_uchar,
7344                                                               outlen:
7345                                                                   *mut ::std::os::raw::c_ulong)
7346                                              -> ::std::os::raw::c_int>,
7347}
7348#[test]
7349fn bindgen_test_layout_ltc_hash_descriptor() {
7350    assert_eq!(::std::mem::size_of::<ltc_hash_descriptor>() , 208usize ,
7351               concat ! ( "Size of: " , stringify ! ( ltc_hash_descriptor )
7352               ));
7353    assert_eq! (::std::mem::align_of::<ltc_hash_descriptor>() , 8usize ,
7354                concat ! (
7355                "Alignment of " , stringify ! ( ltc_hash_descriptor ) ));
7356    assert_eq! (unsafe {
7357                & ( * ( 0 as * const ltc_hash_descriptor ) ) . name as * const
7358                _ as usize } , 0usize , concat ! (
7359                "Alignment of field: " , stringify ! ( ltc_hash_descriptor ) ,
7360                "::" , stringify ! ( name ) ));
7361    assert_eq! (unsafe {
7362                & ( * ( 0 as * const ltc_hash_descriptor ) ) . ID as * const _
7363                as usize } , 8usize , concat ! (
7364                "Alignment of field: " , stringify ! ( ltc_hash_descriptor ) ,
7365                "::" , stringify ! ( ID ) ));
7366    assert_eq! (unsafe {
7367                & ( * ( 0 as * const ltc_hash_descriptor ) ) . hashsize as *
7368                const _ as usize } , 16usize , concat ! (
7369                "Alignment of field: " , stringify ! ( ltc_hash_descriptor ) ,
7370                "::" , stringify ! ( hashsize ) ));
7371    assert_eq! (unsafe {
7372                & ( * ( 0 as * const ltc_hash_descriptor ) ) . blocksize as *
7373                const _ as usize } , 24usize , concat ! (
7374                "Alignment of field: " , stringify ! ( ltc_hash_descriptor ) ,
7375                "::" , stringify ! ( blocksize ) ));
7376    assert_eq! (unsafe {
7377                & ( * ( 0 as * const ltc_hash_descriptor ) ) . OID as * const
7378                _ as usize } , 32usize , concat ! (
7379                "Alignment of field: " , stringify ! ( ltc_hash_descriptor ) ,
7380                "::" , stringify ! ( OID ) ));
7381    assert_eq! (unsafe {
7382                & ( * ( 0 as * const ltc_hash_descriptor ) ) . OIDlen as *
7383                const _ as usize } , 160usize , concat ! (
7384                "Alignment of field: " , stringify ! ( ltc_hash_descriptor ) ,
7385                "::" , stringify ! ( OIDlen ) ));
7386    assert_eq! (unsafe {
7387                & ( * ( 0 as * const ltc_hash_descriptor ) ) . init as * const
7388                _ as usize } , 168usize , concat ! (
7389                "Alignment of field: " , stringify ! ( ltc_hash_descriptor ) ,
7390                "::" , stringify ! ( init ) ));
7391    assert_eq! (unsafe {
7392                & ( * ( 0 as * const ltc_hash_descriptor ) ) . process as *
7393                const _ as usize } , 176usize , concat ! (
7394                "Alignment of field: " , stringify ! ( ltc_hash_descriptor ) ,
7395                "::" , stringify ! ( process ) ));
7396    assert_eq! (unsafe {
7397                & ( * ( 0 as * const ltc_hash_descriptor ) ) . done as * const
7398                _ as usize } , 184usize , concat ! (
7399                "Alignment of field: " , stringify ! ( ltc_hash_descriptor ) ,
7400                "::" , stringify ! ( done ) ));
7401    assert_eq! (unsafe {
7402                & ( * ( 0 as * const ltc_hash_descriptor ) ) . test as * const
7403                _ as usize } , 192usize , concat ! (
7404                "Alignment of field: " , stringify ! ( ltc_hash_descriptor ) ,
7405                "::" , stringify ! ( test ) ));
7406    assert_eq! (unsafe {
7407                & ( * ( 0 as * const ltc_hash_descriptor ) ) . hmac_block as *
7408                const _ as usize } , 200usize , concat ! (
7409                "Alignment of field: " , stringify ! ( ltc_hash_descriptor ) ,
7410                "::" , stringify ! ( hmac_block ) ));
7411}
7412impl Clone for ltc_hash_descriptor {
7413    fn clone(&self) -> Self { *self }
7414}
7415extern "C" {
7416    #[link_name = "hash_descriptor"]
7417    pub static mut hash_descriptor: [ltc_hash_descriptor; 0usize];
7418}
7419extern "C" {
7420    pub fn chc_register(cipher: ::std::os::raw::c_int)
7421     -> ::std::os::raw::c_int;
7422}
7423extern "C" {
7424    pub fn chc_init(md: *mut hash_state) -> ::std::os::raw::c_int;
7425}
7426extern "C" {
7427    pub fn chc_process(md: *mut hash_state,
7428                       in_: *const ::std::os::raw::c_uchar,
7429                       inlen: ::std::os::raw::c_ulong)
7430     -> ::std::os::raw::c_int;
7431}
7432extern "C" {
7433    pub fn chc_done(md: *mut hash_state, hash: *mut ::std::os::raw::c_uchar)
7434     -> ::std::os::raw::c_int;
7435}
7436extern "C" {
7437    pub fn chc_test() -> ::std::os::raw::c_int;
7438}
7439extern "C" {
7440    #[link_name = "chc_desc"]
7441    pub static chc_desc: ltc_hash_descriptor;
7442}
7443extern "C" {
7444    pub fn whirlpool_init(md: *mut hash_state) -> ::std::os::raw::c_int;
7445}
7446extern "C" {
7447    pub fn whirlpool_process(md: *mut hash_state,
7448                             in_: *const ::std::os::raw::c_uchar,
7449                             inlen: ::std::os::raw::c_ulong)
7450     -> ::std::os::raw::c_int;
7451}
7452extern "C" {
7453    pub fn whirlpool_done(md: *mut hash_state,
7454                          hash: *mut ::std::os::raw::c_uchar)
7455     -> ::std::os::raw::c_int;
7456}
7457extern "C" {
7458    pub fn whirlpool_test() -> ::std::os::raw::c_int;
7459}
7460extern "C" {
7461    #[link_name = "whirlpool_desc"]
7462    pub static whirlpool_desc: ltc_hash_descriptor;
7463}
7464extern "C" {
7465    pub fn sha3_512_init(md: *mut hash_state) -> ::std::os::raw::c_int;
7466}
7467extern "C" {
7468    pub fn sha3_512_test() -> ::std::os::raw::c_int;
7469}
7470extern "C" {
7471    #[link_name = "sha3_512_desc"]
7472    pub static sha3_512_desc: ltc_hash_descriptor;
7473}
7474extern "C" {
7475    pub fn sha3_384_init(md: *mut hash_state) -> ::std::os::raw::c_int;
7476}
7477extern "C" {
7478    pub fn sha3_384_test() -> ::std::os::raw::c_int;
7479}
7480extern "C" {
7481    #[link_name = "sha3_384_desc"]
7482    pub static sha3_384_desc: ltc_hash_descriptor;
7483}
7484extern "C" {
7485    pub fn sha3_256_init(md: *mut hash_state) -> ::std::os::raw::c_int;
7486}
7487extern "C" {
7488    pub fn sha3_256_test() -> ::std::os::raw::c_int;
7489}
7490extern "C" {
7491    #[link_name = "sha3_256_desc"]
7492    pub static sha3_256_desc: ltc_hash_descriptor;
7493}
7494extern "C" {
7495    pub fn sha3_224_init(md: *mut hash_state) -> ::std::os::raw::c_int;
7496}
7497extern "C" {
7498    pub fn sha3_224_test() -> ::std::os::raw::c_int;
7499}
7500extern "C" {
7501    #[link_name = "sha3_224_desc"]
7502    pub static sha3_224_desc: ltc_hash_descriptor;
7503}
7504extern "C" {
7505    pub fn sha3_process(md: *mut hash_state,
7506                        in_: *const ::std::os::raw::c_uchar,
7507                        inlen: ::std::os::raw::c_ulong)
7508     -> ::std::os::raw::c_int;
7509}
7510extern "C" {
7511    pub fn sha3_done(md: *mut hash_state, hash: *mut ::std::os::raw::c_uchar)
7512     -> ::std::os::raw::c_int;
7513}
7514extern "C" {
7515    pub fn sha3_shake_init(md: *mut hash_state, num: ::std::os::raw::c_int)
7516     -> ::std::os::raw::c_int;
7517}
7518extern "C" {
7519    pub fn sha3_shake_done(md: *mut hash_state,
7520                           out: *mut ::std::os::raw::c_uchar,
7521                           outlen: ::std::os::raw::c_ulong)
7522     -> ::std::os::raw::c_int;
7523}
7524extern "C" {
7525    pub fn sha3_shake_test() -> ::std::os::raw::c_int;
7526}
7527extern "C" {
7528    pub fn sha3_shake_memory(num: ::std::os::raw::c_int,
7529                             in_: *const ::std::os::raw::c_uchar,
7530                             inlen: ::std::os::raw::c_ulong,
7531                             out: *mut ::std::os::raw::c_uchar,
7532                             outlen: *mut ::std::os::raw::c_ulong)
7533     -> ::std::os::raw::c_int;
7534}
7535extern "C" {
7536    pub fn sha512_init(md: *mut hash_state) -> ::std::os::raw::c_int;
7537}
7538extern "C" {
7539    pub fn sha512_process(md: *mut hash_state,
7540                          in_: *const ::std::os::raw::c_uchar,
7541                          inlen: ::std::os::raw::c_ulong)
7542     -> ::std::os::raw::c_int;
7543}
7544extern "C" {
7545    pub fn sha512_done(md: *mut hash_state,
7546                       hash: *mut ::std::os::raw::c_uchar)
7547     -> ::std::os::raw::c_int;
7548}
7549extern "C" {
7550    pub fn sha512_test() -> ::std::os::raw::c_int;
7551}
7552extern "C" {
7553    #[link_name = "sha512_desc"]
7554    pub static sha512_desc: ltc_hash_descriptor;
7555}
7556extern "C" {
7557    pub fn sha384_init(md: *mut hash_state) -> ::std::os::raw::c_int;
7558}
7559extern "C" {
7560    pub fn sha384_done(md: *mut hash_state,
7561                       hash: *mut ::std::os::raw::c_uchar)
7562     -> ::std::os::raw::c_int;
7563}
7564extern "C" {
7565    pub fn sha384_test() -> ::std::os::raw::c_int;
7566}
7567extern "C" {
7568    #[link_name = "sha384_desc"]
7569    pub static sha384_desc: ltc_hash_descriptor;
7570}
7571extern "C" {
7572    pub fn sha512_256_init(md: *mut hash_state) -> ::std::os::raw::c_int;
7573}
7574extern "C" {
7575    pub fn sha512_256_done(md: *mut hash_state,
7576                           hash: *mut ::std::os::raw::c_uchar)
7577     -> ::std::os::raw::c_int;
7578}
7579extern "C" {
7580    pub fn sha512_256_test() -> ::std::os::raw::c_int;
7581}
7582extern "C" {
7583    #[link_name = "sha512_256_desc"]
7584    pub static sha512_256_desc: ltc_hash_descriptor;
7585}
7586extern "C" {
7587    pub fn sha512_224_init(md: *mut hash_state) -> ::std::os::raw::c_int;
7588}
7589extern "C" {
7590    pub fn sha512_224_done(md: *mut hash_state,
7591                           hash: *mut ::std::os::raw::c_uchar)
7592     -> ::std::os::raw::c_int;
7593}
7594extern "C" {
7595    pub fn sha512_224_test() -> ::std::os::raw::c_int;
7596}
7597extern "C" {
7598    #[link_name = "sha512_224_desc"]
7599    pub static sha512_224_desc: ltc_hash_descriptor;
7600}
7601extern "C" {
7602    pub fn sha256_init(md: *mut hash_state) -> ::std::os::raw::c_int;
7603}
7604extern "C" {
7605    pub fn sha256_process(md: *mut hash_state,
7606                          in_: *const ::std::os::raw::c_uchar,
7607                          inlen: ::std::os::raw::c_ulong)
7608     -> ::std::os::raw::c_int;
7609}
7610extern "C" {
7611    pub fn sha256_done(md: *mut hash_state,
7612                       hash: *mut ::std::os::raw::c_uchar)
7613     -> ::std::os::raw::c_int;
7614}
7615extern "C" {
7616    pub fn sha256_test() -> ::std::os::raw::c_int;
7617}
7618extern "C" {
7619    #[link_name = "sha256_desc"]
7620    pub static sha256_desc: ltc_hash_descriptor;
7621}
7622extern "C" {
7623    pub fn sha224_init(md: *mut hash_state) -> ::std::os::raw::c_int;
7624}
7625extern "C" {
7626    pub fn sha224_done(md: *mut hash_state,
7627                       hash: *mut ::std::os::raw::c_uchar)
7628     -> ::std::os::raw::c_int;
7629}
7630extern "C" {
7631    pub fn sha224_test() -> ::std::os::raw::c_int;
7632}
7633extern "C" {
7634    #[link_name = "sha224_desc"]
7635    pub static sha224_desc: ltc_hash_descriptor;
7636}
7637extern "C" {
7638    pub fn sha1_init(md: *mut hash_state) -> ::std::os::raw::c_int;
7639}
7640extern "C" {
7641    pub fn sha1_process(md: *mut hash_state,
7642                        in_: *const ::std::os::raw::c_uchar,
7643                        inlen: ::std::os::raw::c_ulong)
7644     -> ::std::os::raw::c_int;
7645}
7646extern "C" {
7647    pub fn sha1_done(md: *mut hash_state, hash: *mut ::std::os::raw::c_uchar)
7648     -> ::std::os::raw::c_int;
7649}
7650extern "C" {
7651    pub fn sha1_test() -> ::std::os::raw::c_int;
7652}
7653extern "C" {
7654    #[link_name = "sha1_desc"]
7655    pub static sha1_desc: ltc_hash_descriptor;
7656}
7657extern "C" {
7658    #[link_name = "blake2s_256_desc"]
7659    pub static blake2s_256_desc: ltc_hash_descriptor;
7660}
7661extern "C" {
7662    pub fn blake2s_256_init(md: *mut hash_state) -> ::std::os::raw::c_int;
7663}
7664extern "C" {
7665    pub fn blake2s_256_test() -> ::std::os::raw::c_int;
7666}
7667extern "C" {
7668    #[link_name = "blake2s_224_desc"]
7669    pub static blake2s_224_desc: ltc_hash_descriptor;
7670}
7671extern "C" {
7672    pub fn blake2s_224_init(md: *mut hash_state) -> ::std::os::raw::c_int;
7673}
7674extern "C" {
7675    pub fn blake2s_224_test() -> ::std::os::raw::c_int;
7676}
7677extern "C" {
7678    #[link_name = "blake2s_160_desc"]
7679    pub static blake2s_160_desc: ltc_hash_descriptor;
7680}
7681extern "C" {
7682    pub fn blake2s_160_init(md: *mut hash_state) -> ::std::os::raw::c_int;
7683}
7684extern "C" {
7685    pub fn blake2s_160_test() -> ::std::os::raw::c_int;
7686}
7687extern "C" {
7688    #[link_name = "blake2s_128_desc"]
7689    pub static blake2s_128_desc: ltc_hash_descriptor;
7690}
7691extern "C" {
7692    pub fn blake2s_128_init(md: *mut hash_state) -> ::std::os::raw::c_int;
7693}
7694extern "C" {
7695    pub fn blake2s_128_test() -> ::std::os::raw::c_int;
7696}
7697extern "C" {
7698    pub fn blake2s_init(md: *mut hash_state, outlen: ::std::os::raw::c_ulong,
7699                        key: *const ::std::os::raw::c_uchar,
7700                        keylen: ::std::os::raw::c_ulong)
7701     -> ::std::os::raw::c_int;
7702}
7703extern "C" {
7704    pub fn blake2s_process(md: *mut hash_state,
7705                           in_: *const ::std::os::raw::c_uchar,
7706                           inlen: ::std::os::raw::c_ulong)
7707     -> ::std::os::raw::c_int;
7708}
7709extern "C" {
7710    pub fn blake2s_done(md: *mut hash_state,
7711                        hash: *mut ::std::os::raw::c_uchar)
7712     -> ::std::os::raw::c_int;
7713}
7714extern "C" {
7715    #[link_name = "blake2b_512_desc"]
7716    pub static blake2b_512_desc: ltc_hash_descriptor;
7717}
7718extern "C" {
7719    pub fn blake2b_512_init(md: *mut hash_state) -> ::std::os::raw::c_int;
7720}
7721extern "C" {
7722    pub fn blake2b_512_test() -> ::std::os::raw::c_int;
7723}
7724extern "C" {
7725    #[link_name = "blake2b_384_desc"]
7726    pub static blake2b_384_desc: ltc_hash_descriptor;
7727}
7728extern "C" {
7729    pub fn blake2b_384_init(md: *mut hash_state) -> ::std::os::raw::c_int;
7730}
7731extern "C" {
7732    pub fn blake2b_384_test() -> ::std::os::raw::c_int;
7733}
7734extern "C" {
7735    #[link_name = "blake2b_256_desc"]
7736    pub static blake2b_256_desc: ltc_hash_descriptor;
7737}
7738extern "C" {
7739    pub fn blake2b_256_init(md: *mut hash_state) -> ::std::os::raw::c_int;
7740}
7741extern "C" {
7742    pub fn blake2b_256_test() -> ::std::os::raw::c_int;
7743}
7744extern "C" {
7745    #[link_name = "blake2b_160_desc"]
7746    pub static blake2b_160_desc: ltc_hash_descriptor;
7747}
7748extern "C" {
7749    pub fn blake2b_160_init(md: *mut hash_state) -> ::std::os::raw::c_int;
7750}
7751extern "C" {
7752    pub fn blake2b_160_test() -> ::std::os::raw::c_int;
7753}
7754extern "C" {
7755    pub fn blake2b_init(md: *mut hash_state, outlen: ::std::os::raw::c_ulong,
7756                        key: *const ::std::os::raw::c_uchar,
7757                        keylen: ::std::os::raw::c_ulong)
7758     -> ::std::os::raw::c_int;
7759}
7760extern "C" {
7761    pub fn blake2b_process(md: *mut hash_state,
7762                           in_: *const ::std::os::raw::c_uchar,
7763                           inlen: ::std::os::raw::c_ulong)
7764     -> ::std::os::raw::c_int;
7765}
7766extern "C" {
7767    pub fn blake2b_done(md: *mut hash_state,
7768                        hash: *mut ::std::os::raw::c_uchar)
7769     -> ::std::os::raw::c_int;
7770}
7771extern "C" {
7772    pub fn md5_init(md: *mut hash_state) -> ::std::os::raw::c_int;
7773}
7774extern "C" {
7775    pub fn md5_process(md: *mut hash_state,
7776                       in_: *const ::std::os::raw::c_uchar,
7777                       inlen: ::std::os::raw::c_ulong)
7778     -> ::std::os::raw::c_int;
7779}
7780extern "C" {
7781    pub fn md5_done(md: *mut hash_state, hash: *mut ::std::os::raw::c_uchar)
7782     -> ::std::os::raw::c_int;
7783}
7784extern "C" {
7785    pub fn md5_test() -> ::std::os::raw::c_int;
7786}
7787extern "C" {
7788    #[link_name = "md5_desc"]
7789    pub static md5_desc: ltc_hash_descriptor;
7790}
7791extern "C" {
7792    pub fn md4_init(md: *mut hash_state) -> ::std::os::raw::c_int;
7793}
7794extern "C" {
7795    pub fn md4_process(md: *mut hash_state,
7796                       in_: *const ::std::os::raw::c_uchar,
7797                       inlen: ::std::os::raw::c_ulong)
7798     -> ::std::os::raw::c_int;
7799}
7800extern "C" {
7801    pub fn md4_done(md: *mut hash_state, hash: *mut ::std::os::raw::c_uchar)
7802     -> ::std::os::raw::c_int;
7803}
7804extern "C" {
7805    pub fn md4_test() -> ::std::os::raw::c_int;
7806}
7807extern "C" {
7808    #[link_name = "md4_desc"]
7809    pub static md4_desc: ltc_hash_descriptor;
7810}
7811extern "C" {
7812    pub fn md2_init(md: *mut hash_state) -> ::std::os::raw::c_int;
7813}
7814extern "C" {
7815    pub fn md2_process(md: *mut hash_state,
7816                       in_: *const ::std::os::raw::c_uchar,
7817                       inlen: ::std::os::raw::c_ulong)
7818     -> ::std::os::raw::c_int;
7819}
7820extern "C" {
7821    pub fn md2_done(md: *mut hash_state, hash: *mut ::std::os::raw::c_uchar)
7822     -> ::std::os::raw::c_int;
7823}
7824extern "C" {
7825    pub fn md2_test() -> ::std::os::raw::c_int;
7826}
7827extern "C" {
7828    #[link_name = "md2_desc"]
7829    pub static md2_desc: ltc_hash_descriptor;
7830}
7831extern "C" {
7832    pub fn tiger_init(md: *mut hash_state) -> ::std::os::raw::c_int;
7833}
7834extern "C" {
7835    pub fn tiger_process(md: *mut hash_state,
7836                         in_: *const ::std::os::raw::c_uchar,
7837                         inlen: ::std::os::raw::c_ulong)
7838     -> ::std::os::raw::c_int;
7839}
7840extern "C" {
7841    pub fn tiger_done(md: *mut hash_state, hash: *mut ::std::os::raw::c_uchar)
7842     -> ::std::os::raw::c_int;
7843}
7844extern "C" {
7845    pub fn tiger_test() -> ::std::os::raw::c_int;
7846}
7847extern "C" {
7848    #[link_name = "tiger_desc"]
7849    pub static tiger_desc: ltc_hash_descriptor;
7850}
7851extern "C" {
7852    pub fn rmd128_init(md: *mut hash_state) -> ::std::os::raw::c_int;
7853}
7854extern "C" {
7855    pub fn rmd128_process(md: *mut hash_state,
7856                          in_: *const ::std::os::raw::c_uchar,
7857                          inlen: ::std::os::raw::c_ulong)
7858     -> ::std::os::raw::c_int;
7859}
7860extern "C" {
7861    pub fn rmd128_done(md: *mut hash_state,
7862                       hash: *mut ::std::os::raw::c_uchar)
7863     -> ::std::os::raw::c_int;
7864}
7865extern "C" {
7866    pub fn rmd128_test() -> ::std::os::raw::c_int;
7867}
7868extern "C" {
7869    #[link_name = "rmd128_desc"]
7870    pub static rmd128_desc: ltc_hash_descriptor;
7871}
7872extern "C" {
7873    pub fn rmd160_init(md: *mut hash_state) -> ::std::os::raw::c_int;
7874}
7875extern "C" {
7876    pub fn rmd160_process(md: *mut hash_state,
7877                          in_: *const ::std::os::raw::c_uchar,
7878                          inlen: ::std::os::raw::c_ulong)
7879     -> ::std::os::raw::c_int;
7880}
7881extern "C" {
7882    pub fn rmd160_done(md: *mut hash_state,
7883                       hash: *mut ::std::os::raw::c_uchar)
7884     -> ::std::os::raw::c_int;
7885}
7886extern "C" {
7887    pub fn rmd160_test() -> ::std::os::raw::c_int;
7888}
7889extern "C" {
7890    #[link_name = "rmd160_desc"]
7891    pub static rmd160_desc: ltc_hash_descriptor;
7892}
7893extern "C" {
7894    pub fn rmd256_init(md: *mut hash_state) -> ::std::os::raw::c_int;
7895}
7896extern "C" {
7897    pub fn rmd256_process(md: *mut hash_state,
7898                          in_: *const ::std::os::raw::c_uchar,
7899                          inlen: ::std::os::raw::c_ulong)
7900     -> ::std::os::raw::c_int;
7901}
7902extern "C" {
7903    pub fn rmd256_done(md: *mut hash_state,
7904                       hash: *mut ::std::os::raw::c_uchar)
7905     -> ::std::os::raw::c_int;
7906}
7907extern "C" {
7908    pub fn rmd256_test() -> ::std::os::raw::c_int;
7909}
7910extern "C" {
7911    #[link_name = "rmd256_desc"]
7912    pub static rmd256_desc: ltc_hash_descriptor;
7913}
7914extern "C" {
7915    pub fn rmd320_init(md: *mut hash_state) -> ::std::os::raw::c_int;
7916}
7917extern "C" {
7918    pub fn rmd320_process(md: *mut hash_state,
7919                          in_: *const ::std::os::raw::c_uchar,
7920                          inlen: ::std::os::raw::c_ulong)
7921     -> ::std::os::raw::c_int;
7922}
7923extern "C" {
7924    pub fn rmd320_done(md: *mut hash_state,
7925                       hash: *mut ::std::os::raw::c_uchar)
7926     -> ::std::os::raw::c_int;
7927}
7928extern "C" {
7929    pub fn rmd320_test() -> ::std::os::raw::c_int;
7930}
7931extern "C" {
7932    #[link_name = "rmd320_desc"]
7933    pub static rmd320_desc: ltc_hash_descriptor;
7934}
7935extern "C" {
7936    pub fn find_hash(name: *const ::std::os::raw::c_char)
7937     -> ::std::os::raw::c_int;
7938}
7939extern "C" {
7940    pub fn find_hash_id(ID: ::std::os::raw::c_uchar) -> ::std::os::raw::c_int;
7941}
7942extern "C" {
7943    pub fn find_hash_oid(ID: *const ::std::os::raw::c_ulong,
7944                         IDlen: ::std::os::raw::c_ulong)
7945     -> ::std::os::raw::c_int;
7946}
7947extern "C" {
7948    pub fn find_hash_any(name: *const ::std::os::raw::c_char,
7949                         digestlen: ::std::os::raw::c_int)
7950     -> ::std::os::raw::c_int;
7951}
7952extern "C" {
7953    pub fn register_hash(hash: *const ltc_hash_descriptor)
7954     -> ::std::os::raw::c_int;
7955}
7956extern "C" {
7957    pub fn unregister_hash(hash: *const ltc_hash_descriptor)
7958     -> ::std::os::raw::c_int;
7959}
7960extern "C" {
7961    pub fn register_all_hashes() -> ::std::os::raw::c_int;
7962}
7963extern "C" {
7964    pub fn hash_is_valid(idx: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
7965}
7966extern "C" {
7967    pub fn hash_memory(hash: ::std::os::raw::c_int,
7968                       in_: *const ::std::os::raw::c_uchar,
7969                       inlen: ::std::os::raw::c_ulong,
7970                       out: *mut ::std::os::raw::c_uchar,
7971                       outlen: *mut ::std::os::raw::c_ulong)
7972     -> ::std::os::raw::c_int;
7973}
7974extern "C" {
7975    pub fn hash_memory_multi(hash: ::std::os::raw::c_int,
7976                             out: *mut ::std::os::raw::c_uchar,
7977                             outlen: *mut ::std::os::raw::c_ulong,
7978                             in_: *const ::std::os::raw::c_uchar,
7979                             inlen: ::std::os::raw::c_ulong, ...)
7980     -> ::std::os::raw::c_int;
7981}
7982extern "C" {
7983    pub fn hash_filehandle(hash: ::std::os::raw::c_int, in_: *mut FILE,
7984                           out: *mut ::std::os::raw::c_uchar,
7985                           outlen: *mut ::std::os::raw::c_ulong)
7986     -> ::std::os::raw::c_int;
7987}
7988extern "C" {
7989    pub fn hash_file(hash: ::std::os::raw::c_int,
7990                     fname: *const ::std::os::raw::c_char,
7991                     out: *mut ::std::os::raw::c_uchar,
7992                     outlen: *mut ::std::os::raw::c_ulong)
7993     -> ::std::os::raw::c_int;
7994}
7995#[repr(C)]
7996#[derive(Copy)]
7997pub struct Hmac_state {
7998    pub md: hash_state,
7999    pub hash: ::std::os::raw::c_int,
8000    pub hashstate: hash_state,
8001    pub key: *mut ::std::os::raw::c_uchar,
8002}
8003#[test]
8004fn bindgen_test_layout_Hmac_state() {
8005    assert_eq!(::std::mem::size_of::<Hmac_state>() , 848usize , concat ! (
8006               "Size of: " , stringify ! ( Hmac_state ) ));
8007    assert_eq! (::std::mem::align_of::<Hmac_state>() , 8usize , concat ! (
8008                "Alignment of " , stringify ! ( Hmac_state ) ));
8009    assert_eq! (unsafe {
8010                & ( * ( 0 as * const Hmac_state ) ) . md as * const _ as usize
8011                } , 0usize , concat ! (
8012                "Alignment of field: " , stringify ! ( Hmac_state ) , "::" ,
8013                stringify ! ( md ) ));
8014    assert_eq! (unsafe {
8015                & ( * ( 0 as * const Hmac_state ) ) . hash as * const _ as
8016                usize } , 416usize , concat ! (
8017                "Alignment of field: " , stringify ! ( Hmac_state ) , "::" ,
8018                stringify ! ( hash ) ));
8019    assert_eq! (unsafe {
8020                & ( * ( 0 as * const Hmac_state ) ) . hashstate as * const _
8021                as usize } , 424usize , concat ! (
8022                "Alignment of field: " , stringify ! ( Hmac_state ) , "::" ,
8023                stringify ! ( hashstate ) ));
8024    assert_eq! (unsafe {
8025                & ( * ( 0 as * const Hmac_state ) ) . key as * const _ as
8026                usize } , 840usize , concat ! (
8027                "Alignment of field: " , stringify ! ( Hmac_state ) , "::" ,
8028                stringify ! ( key ) ));
8029}
8030impl Clone for Hmac_state {
8031    fn clone(&self) -> Self { *self }
8032}
8033pub type hmac_state = Hmac_state;
8034extern "C" {
8035    pub fn hmac_init(hmac: *mut hmac_state, hash: ::std::os::raw::c_int,
8036                     key: *const ::std::os::raw::c_uchar,
8037                     keylen: ::std::os::raw::c_ulong)
8038     -> ::std::os::raw::c_int;
8039}
8040extern "C" {
8041    pub fn hmac_process(hmac: *mut hmac_state,
8042                        in_: *const ::std::os::raw::c_uchar,
8043                        inlen: ::std::os::raw::c_ulong)
8044     -> ::std::os::raw::c_int;
8045}
8046extern "C" {
8047    pub fn hmac_done(hmac: *mut hmac_state, out: *mut ::std::os::raw::c_uchar,
8048                     outlen: *mut ::std::os::raw::c_ulong)
8049     -> ::std::os::raw::c_int;
8050}
8051extern "C" {
8052    pub fn hmac_test() -> ::std::os::raw::c_int;
8053}
8054extern "C" {
8055    pub fn hmac_memory(hash: ::std::os::raw::c_int,
8056                       key: *const ::std::os::raw::c_uchar,
8057                       keylen: ::std::os::raw::c_ulong,
8058                       in_: *const ::std::os::raw::c_uchar,
8059                       inlen: ::std::os::raw::c_ulong,
8060                       out: *mut ::std::os::raw::c_uchar,
8061                       outlen: *mut ::std::os::raw::c_ulong)
8062     -> ::std::os::raw::c_int;
8063}
8064extern "C" {
8065    pub fn hmac_memory_multi(hash: ::std::os::raw::c_int,
8066                             key: *const ::std::os::raw::c_uchar,
8067                             keylen: ::std::os::raw::c_ulong,
8068                             out: *mut ::std::os::raw::c_uchar,
8069                             outlen: *mut ::std::os::raw::c_ulong,
8070                             in_: *const ::std::os::raw::c_uchar,
8071                             inlen: ::std::os::raw::c_ulong, ...)
8072     -> ::std::os::raw::c_int;
8073}
8074extern "C" {
8075    pub fn hmac_file(hash: ::std::os::raw::c_int,
8076                     fname: *const ::std::os::raw::c_char,
8077                     key: *const ::std::os::raw::c_uchar,
8078                     keylen: ::std::os::raw::c_ulong,
8079                     dst: *mut ::std::os::raw::c_uchar,
8080                     dstlen: *mut ::std::os::raw::c_ulong)
8081     -> ::std::os::raw::c_int;
8082}
8083#[repr(C)]
8084#[derive(Copy)]
8085pub struct omac_state {
8086    pub cipher_idx: ::std::os::raw::c_int,
8087    pub buflen: ::std::os::raw::c_int,
8088    pub blklen: ::std::os::raw::c_int,
8089    pub block: [::std::os::raw::c_uchar; 128usize],
8090    pub prev: [::std::os::raw::c_uchar; 128usize],
8091    pub Lu: [[::std::os::raw::c_uchar; 128usize]; 2usize],
8092    pub key: symmetric_key,
8093}
8094#[test]
8095fn bindgen_test_layout_omac_state() {
8096    assert_eq!(::std::mem::size_of::<omac_state>() , 4784usize , concat ! (
8097               "Size of: " , stringify ! ( omac_state ) ));
8098    assert_eq! (::std::mem::align_of::<omac_state>() , 8usize , concat ! (
8099                "Alignment of " , stringify ! ( omac_state ) ));
8100    assert_eq! (unsafe {
8101                & ( * ( 0 as * const omac_state ) ) . cipher_idx as * const _
8102                as usize } , 0usize , concat ! (
8103                "Alignment of field: " , stringify ! ( omac_state ) , "::" ,
8104                stringify ! ( cipher_idx ) ));
8105    assert_eq! (unsafe {
8106                & ( * ( 0 as * const omac_state ) ) . buflen as * const _ as
8107                usize } , 4usize , concat ! (
8108                "Alignment of field: " , stringify ! ( omac_state ) , "::" ,
8109                stringify ! ( buflen ) ));
8110    assert_eq! (unsafe {
8111                & ( * ( 0 as * const omac_state ) ) . blklen as * const _ as
8112                usize } , 8usize , concat ! (
8113                "Alignment of field: " , stringify ! ( omac_state ) , "::" ,
8114                stringify ! ( blklen ) ));
8115    assert_eq! (unsafe {
8116                & ( * ( 0 as * const omac_state ) ) . block as * const _ as
8117                usize } , 12usize , concat ! (
8118                "Alignment of field: " , stringify ! ( omac_state ) , "::" ,
8119                stringify ! ( block ) ));
8120    assert_eq! (unsafe {
8121                & ( * ( 0 as * const omac_state ) ) . prev as * const _ as
8122                usize } , 140usize , concat ! (
8123                "Alignment of field: " , stringify ! ( omac_state ) , "::" ,
8124                stringify ! ( prev ) ));
8125    assert_eq! (unsafe {
8126                & ( * ( 0 as * const omac_state ) ) . Lu as * const _ as usize
8127                } , 268usize , concat ! (
8128                "Alignment of field: " , stringify ! ( omac_state ) , "::" ,
8129                stringify ! ( Lu ) ));
8130    assert_eq! (unsafe {
8131                & ( * ( 0 as * const omac_state ) ) . key as * const _ as
8132                usize } , 528usize , concat ! (
8133                "Alignment of field: " , stringify ! ( omac_state ) , "::" ,
8134                stringify ! ( key ) ));
8135}
8136impl Clone for omac_state {
8137    fn clone(&self) -> Self { *self }
8138}
8139extern "C" {
8140    pub fn omac_init(omac: *mut omac_state, cipher: ::std::os::raw::c_int,
8141                     key: *const ::std::os::raw::c_uchar,
8142                     keylen: ::std::os::raw::c_ulong)
8143     -> ::std::os::raw::c_int;
8144}
8145extern "C" {
8146    pub fn omac_process(omac: *mut omac_state,
8147                        in_: *const ::std::os::raw::c_uchar,
8148                        inlen: ::std::os::raw::c_ulong)
8149     -> ::std::os::raw::c_int;
8150}
8151extern "C" {
8152    pub fn omac_done(omac: *mut omac_state, out: *mut ::std::os::raw::c_uchar,
8153                     outlen: *mut ::std::os::raw::c_ulong)
8154     -> ::std::os::raw::c_int;
8155}
8156extern "C" {
8157    pub fn omac_memory(cipher: ::std::os::raw::c_int,
8158                       key: *const ::std::os::raw::c_uchar,
8159                       keylen: ::std::os::raw::c_ulong,
8160                       in_: *const ::std::os::raw::c_uchar,
8161                       inlen: ::std::os::raw::c_ulong,
8162                       out: *mut ::std::os::raw::c_uchar,
8163                       outlen: *mut ::std::os::raw::c_ulong)
8164     -> ::std::os::raw::c_int;
8165}
8166extern "C" {
8167    pub fn omac_memory_multi(cipher: ::std::os::raw::c_int,
8168                             key: *const ::std::os::raw::c_uchar,
8169                             keylen: ::std::os::raw::c_ulong,
8170                             out: *mut ::std::os::raw::c_uchar,
8171                             outlen: *mut ::std::os::raw::c_ulong,
8172                             in_: *const ::std::os::raw::c_uchar,
8173                             inlen: ::std::os::raw::c_ulong, ...)
8174     -> ::std::os::raw::c_int;
8175}
8176extern "C" {
8177    pub fn omac_file(cipher: ::std::os::raw::c_int,
8178                     key: *const ::std::os::raw::c_uchar,
8179                     keylen: ::std::os::raw::c_ulong,
8180                     filename: *const ::std::os::raw::c_char,
8181                     out: *mut ::std::os::raw::c_uchar,
8182                     outlen: *mut ::std::os::raw::c_ulong)
8183     -> ::std::os::raw::c_int;
8184}
8185extern "C" {
8186    pub fn omac_test() -> ::std::os::raw::c_int;
8187}
8188#[repr(C)]
8189#[derive(Copy)]
8190pub struct pmac_state {
8191    pub Ls: [[::std::os::raw::c_uchar; 128usize]; 32usize],
8192    pub Li: [::std::os::raw::c_uchar; 128usize],
8193    pub Lr: [::std::os::raw::c_uchar; 128usize],
8194    pub block: [::std::os::raw::c_uchar; 128usize],
8195    pub checksum: [::std::os::raw::c_uchar; 128usize],
8196    pub key: symmetric_key,
8197    pub block_index: ::std::os::raw::c_ulong,
8198    pub cipher_idx: ::std::os::raw::c_int,
8199    pub block_len: ::std::os::raw::c_int,
8200    pub buflen: ::std::os::raw::c_int,
8201}
8202#[test]
8203fn bindgen_test_layout_pmac_state() {
8204    assert_eq!(::std::mem::size_of::<pmac_state>() , 8888usize , concat ! (
8205               "Size of: " , stringify ! ( pmac_state ) ));
8206    assert_eq! (::std::mem::align_of::<pmac_state>() , 8usize , concat ! (
8207                "Alignment of " , stringify ! ( pmac_state ) ));
8208    assert_eq! (unsafe {
8209                & ( * ( 0 as * const pmac_state ) ) . Ls as * const _ as usize
8210                } , 0usize , concat ! (
8211                "Alignment of field: " , stringify ! ( pmac_state ) , "::" ,
8212                stringify ! ( Ls ) ));
8213    assert_eq! (unsafe {
8214                & ( * ( 0 as * const pmac_state ) ) . Li as * const _ as usize
8215                } , 4096usize , concat ! (
8216                "Alignment of field: " , stringify ! ( pmac_state ) , "::" ,
8217                stringify ! ( Li ) ));
8218    assert_eq! (unsafe {
8219                & ( * ( 0 as * const pmac_state ) ) . Lr as * const _ as usize
8220                } , 4224usize , concat ! (
8221                "Alignment of field: " , stringify ! ( pmac_state ) , "::" ,
8222                stringify ! ( Lr ) ));
8223    assert_eq! (unsafe {
8224                & ( * ( 0 as * const pmac_state ) ) . block as * const _ as
8225                usize } , 4352usize , concat ! (
8226                "Alignment of field: " , stringify ! ( pmac_state ) , "::" ,
8227                stringify ! ( block ) ));
8228    assert_eq! (unsafe {
8229                & ( * ( 0 as * const pmac_state ) ) . checksum as * const _ as
8230                usize } , 4480usize , concat ! (
8231                "Alignment of field: " , stringify ! ( pmac_state ) , "::" ,
8232                stringify ! ( checksum ) ));
8233    assert_eq! (unsafe {
8234                & ( * ( 0 as * const pmac_state ) ) . key as * const _ as
8235                usize } , 4608usize , concat ! (
8236                "Alignment of field: " , stringify ! ( pmac_state ) , "::" ,
8237                stringify ! ( key ) ));
8238    assert_eq! (unsafe {
8239                & ( * ( 0 as * const pmac_state ) ) . block_index as * const _
8240                as usize } , 8864usize , concat ! (
8241                "Alignment of field: " , stringify ! ( pmac_state ) , "::" ,
8242                stringify ! ( block_index ) ));
8243    assert_eq! (unsafe {
8244                & ( * ( 0 as * const pmac_state ) ) . cipher_idx as * const _
8245                as usize } , 8872usize , concat ! (
8246                "Alignment of field: " , stringify ! ( pmac_state ) , "::" ,
8247                stringify ! ( cipher_idx ) ));
8248    assert_eq! (unsafe {
8249                & ( * ( 0 as * const pmac_state ) ) . block_len as * const _
8250                as usize } , 8876usize , concat ! (
8251                "Alignment of field: " , stringify ! ( pmac_state ) , "::" ,
8252                stringify ! ( block_len ) ));
8253    assert_eq! (unsafe {
8254                & ( * ( 0 as * const pmac_state ) ) . buflen as * const _ as
8255                usize } , 8880usize , concat ! (
8256                "Alignment of field: " , stringify ! ( pmac_state ) , "::" ,
8257                stringify ! ( buflen ) ));
8258}
8259impl Clone for pmac_state {
8260    fn clone(&self) -> Self { *self }
8261}
8262extern "C" {
8263    pub fn pmac_init(pmac: *mut pmac_state, cipher: ::std::os::raw::c_int,
8264                     key: *const ::std::os::raw::c_uchar,
8265                     keylen: ::std::os::raw::c_ulong)
8266     -> ::std::os::raw::c_int;
8267}
8268extern "C" {
8269    pub fn pmac_process(pmac: *mut pmac_state,
8270                        in_: *const ::std::os::raw::c_uchar,
8271                        inlen: ::std::os::raw::c_ulong)
8272     -> ::std::os::raw::c_int;
8273}
8274extern "C" {
8275    pub fn pmac_done(pmac: *mut pmac_state, out: *mut ::std::os::raw::c_uchar,
8276                     outlen: *mut ::std::os::raw::c_ulong)
8277     -> ::std::os::raw::c_int;
8278}
8279extern "C" {
8280    pub fn pmac_memory(cipher: ::std::os::raw::c_int,
8281                       key: *const ::std::os::raw::c_uchar,
8282                       keylen: ::std::os::raw::c_ulong,
8283                       msg: *const ::std::os::raw::c_uchar,
8284                       msglen: ::std::os::raw::c_ulong,
8285                       out: *mut ::std::os::raw::c_uchar,
8286                       outlen: *mut ::std::os::raw::c_ulong)
8287     -> ::std::os::raw::c_int;
8288}
8289extern "C" {
8290    pub fn pmac_memory_multi(cipher: ::std::os::raw::c_int,
8291                             key: *const ::std::os::raw::c_uchar,
8292                             keylen: ::std::os::raw::c_ulong,
8293                             out: *mut ::std::os::raw::c_uchar,
8294                             outlen: *mut ::std::os::raw::c_ulong,
8295                             in_: *const ::std::os::raw::c_uchar,
8296                             inlen: ::std::os::raw::c_ulong, ...)
8297     -> ::std::os::raw::c_int;
8298}
8299extern "C" {
8300    pub fn pmac_file(cipher: ::std::os::raw::c_int,
8301                     key: *const ::std::os::raw::c_uchar,
8302                     keylen: ::std::os::raw::c_ulong,
8303                     filename: *const ::std::os::raw::c_char,
8304                     out: *mut ::std::os::raw::c_uchar,
8305                     outlen: *mut ::std::os::raw::c_ulong)
8306     -> ::std::os::raw::c_int;
8307}
8308extern "C" {
8309    pub fn pmac_test() -> ::std::os::raw::c_int;
8310}
8311extern "C" {
8312    pub fn pmac_ntz(x: ::std::os::raw::c_ulong) -> ::std::os::raw::c_int;
8313}
8314extern "C" {
8315    pub fn pmac_shift_xor(pmac: *mut pmac_state);
8316}
8317#[repr(C)]
8318#[derive(Debug, Copy)]
8319pub struct poly1305_state {
8320    pub r: [ulong32; 5usize],
8321    pub h: [ulong32; 5usize],
8322    pub pad: [ulong32; 4usize],
8323    pub leftover: ::std::os::raw::c_ulong,
8324    pub buffer: [::std::os::raw::c_uchar; 16usize],
8325    pub final_: ::std::os::raw::c_int,
8326}
8327#[test]
8328fn bindgen_test_layout_poly1305_state() {
8329    assert_eq!(::std::mem::size_of::<poly1305_state>() , 88usize , concat ! (
8330               "Size of: " , stringify ! ( poly1305_state ) ));
8331    assert_eq! (::std::mem::align_of::<poly1305_state>() , 8usize , concat ! (
8332                "Alignment of " , stringify ! ( poly1305_state ) ));
8333    assert_eq! (unsafe {
8334                & ( * ( 0 as * const poly1305_state ) ) . r as * const _ as
8335                usize } , 0usize , concat ! (
8336                "Alignment of field: " , stringify ! ( poly1305_state ) , "::"
8337                , stringify ! ( r ) ));
8338    assert_eq! (unsafe {
8339                & ( * ( 0 as * const poly1305_state ) ) . h as * const _ as
8340                usize } , 20usize , concat ! (
8341                "Alignment of field: " , stringify ! ( poly1305_state ) , "::"
8342                , stringify ! ( h ) ));
8343    assert_eq! (unsafe {
8344                & ( * ( 0 as * const poly1305_state ) ) . pad as * const _ as
8345                usize } , 40usize , concat ! (
8346                "Alignment of field: " , stringify ! ( poly1305_state ) , "::"
8347                , stringify ! ( pad ) ));
8348    assert_eq! (unsafe {
8349                & ( * ( 0 as * const poly1305_state ) ) . leftover as * const
8350                _ as usize } , 56usize , concat ! (
8351                "Alignment of field: " , stringify ! ( poly1305_state ) , "::"
8352                , stringify ! ( leftover ) ));
8353    assert_eq! (unsafe {
8354                & ( * ( 0 as * const poly1305_state ) ) . buffer as * const _
8355                as usize } , 64usize , concat ! (
8356                "Alignment of field: " , stringify ! ( poly1305_state ) , "::"
8357                , stringify ! ( buffer ) ));
8358    assert_eq! (unsafe {
8359                & ( * ( 0 as * const poly1305_state ) ) . final_ as * const _
8360                as usize } , 80usize , concat ! (
8361                "Alignment of field: " , stringify ! ( poly1305_state ) , "::"
8362                , stringify ! ( final_ ) ));
8363}
8364impl Clone for poly1305_state {
8365    fn clone(&self) -> Self { *self }
8366}
8367extern "C" {
8368    pub fn poly1305_init(st: *mut poly1305_state,
8369                         key: *const ::std::os::raw::c_uchar,
8370                         keylen: ::std::os::raw::c_ulong)
8371     -> ::std::os::raw::c_int;
8372}
8373extern "C" {
8374    pub fn poly1305_process(st: *mut poly1305_state,
8375                            in_: *const ::std::os::raw::c_uchar,
8376                            inlen: ::std::os::raw::c_ulong)
8377     -> ::std::os::raw::c_int;
8378}
8379extern "C" {
8380    pub fn poly1305_done(st: *mut poly1305_state,
8381                         mac: *mut ::std::os::raw::c_uchar,
8382                         maclen: *mut ::std::os::raw::c_ulong)
8383     -> ::std::os::raw::c_int;
8384}
8385extern "C" {
8386    pub fn poly1305_test() -> ::std::os::raw::c_int;
8387}
8388extern "C" {
8389    pub fn poly1305_memory(key: *const ::std::os::raw::c_uchar,
8390                           keylen: ::std::os::raw::c_ulong,
8391                           in_: *const ::std::os::raw::c_uchar,
8392                           inlen: ::std::os::raw::c_ulong,
8393                           mac: *mut ::std::os::raw::c_uchar,
8394                           maclen: *mut ::std::os::raw::c_ulong)
8395     -> ::std::os::raw::c_int;
8396}
8397extern "C" {
8398    pub fn poly1305_memory_multi(key: *const ::std::os::raw::c_uchar,
8399                                 keylen: ::std::os::raw::c_ulong,
8400                                 mac: *mut ::std::os::raw::c_uchar,
8401                                 maclen: *mut ::std::os::raw::c_ulong,
8402                                 in_: *const ::std::os::raw::c_uchar,
8403                                 inlen: ::std::os::raw::c_ulong, ...)
8404     -> ::std::os::raw::c_int;
8405}
8406extern "C" {
8407    pub fn poly1305_file(fname: *const ::std::os::raw::c_char,
8408                         key: *const ::std::os::raw::c_uchar,
8409                         keylen: ::std::os::raw::c_ulong,
8410                         mac: *mut ::std::os::raw::c_uchar,
8411                         maclen: *mut ::std::os::raw::c_ulong)
8412     -> ::std::os::raw::c_int;
8413}
8414pub type blake2smac_state = hash_state;
8415extern "C" {
8416    pub fn blake2smac_init(st: *mut blake2smac_state,
8417                           outlen: ::std::os::raw::c_ulong,
8418                           key: *const ::std::os::raw::c_uchar,
8419                           keylen: ::std::os::raw::c_ulong)
8420     -> ::std::os::raw::c_int;
8421}
8422extern "C" {
8423    pub fn blake2smac_process(st: *mut blake2smac_state,
8424                              in_: *const ::std::os::raw::c_uchar,
8425                              inlen: ::std::os::raw::c_ulong)
8426     -> ::std::os::raw::c_int;
8427}
8428extern "C" {
8429    pub fn blake2smac_done(st: *mut blake2smac_state,
8430                           mac: *mut ::std::os::raw::c_uchar,
8431                           maclen: *mut ::std::os::raw::c_ulong)
8432     -> ::std::os::raw::c_int;
8433}
8434extern "C" {
8435    pub fn blake2smac_test() -> ::std::os::raw::c_int;
8436}
8437extern "C" {
8438    pub fn blake2smac_memory(key: *const ::std::os::raw::c_uchar,
8439                             keylen: ::std::os::raw::c_ulong,
8440                             in_: *const ::std::os::raw::c_uchar,
8441                             inlen: ::std::os::raw::c_ulong,
8442                             mac: *mut ::std::os::raw::c_uchar,
8443                             maclen: *mut ::std::os::raw::c_ulong)
8444     -> ::std::os::raw::c_int;
8445}
8446extern "C" {
8447    pub fn blake2smac_memory_multi(key: *const ::std::os::raw::c_uchar,
8448                                   keylen: ::std::os::raw::c_ulong,
8449                                   mac: *mut ::std::os::raw::c_uchar,
8450                                   maclen: *mut ::std::os::raw::c_ulong,
8451                                   in_: *const ::std::os::raw::c_uchar,
8452                                   inlen: ::std::os::raw::c_ulong, ...)
8453     -> ::std::os::raw::c_int;
8454}
8455extern "C" {
8456    pub fn blake2smac_file(fname: *const ::std::os::raw::c_char,
8457                           key: *const ::std::os::raw::c_uchar,
8458                           keylen: ::std::os::raw::c_ulong,
8459                           mac: *mut ::std::os::raw::c_uchar,
8460                           maclen: *mut ::std::os::raw::c_ulong)
8461     -> ::std::os::raw::c_int;
8462}
8463pub type blake2bmac_state = hash_state;
8464extern "C" {
8465    pub fn blake2bmac_init(st: *mut blake2bmac_state,
8466                           outlen: ::std::os::raw::c_ulong,
8467                           key: *const ::std::os::raw::c_uchar,
8468                           keylen: ::std::os::raw::c_ulong)
8469     -> ::std::os::raw::c_int;
8470}
8471extern "C" {
8472    pub fn blake2bmac_process(st: *mut blake2bmac_state,
8473                              in_: *const ::std::os::raw::c_uchar,
8474                              inlen: ::std::os::raw::c_ulong)
8475     -> ::std::os::raw::c_int;
8476}
8477extern "C" {
8478    pub fn blake2bmac_done(st: *mut blake2bmac_state,
8479                           mac: *mut ::std::os::raw::c_uchar,
8480                           maclen: *mut ::std::os::raw::c_ulong)
8481     -> ::std::os::raw::c_int;
8482}
8483extern "C" {
8484    pub fn blake2bmac_test() -> ::std::os::raw::c_int;
8485}
8486extern "C" {
8487    pub fn blake2bmac_memory(key: *const ::std::os::raw::c_uchar,
8488                             keylen: ::std::os::raw::c_ulong,
8489                             in_: *const ::std::os::raw::c_uchar,
8490                             inlen: ::std::os::raw::c_ulong,
8491                             mac: *mut ::std::os::raw::c_uchar,
8492                             maclen: *mut ::std::os::raw::c_ulong)
8493     -> ::std::os::raw::c_int;
8494}
8495extern "C" {
8496    pub fn blake2bmac_memory_multi(key: *const ::std::os::raw::c_uchar,
8497                                   keylen: ::std::os::raw::c_ulong,
8498                                   mac: *mut ::std::os::raw::c_uchar,
8499                                   maclen: *mut ::std::os::raw::c_ulong,
8500                                   in_: *const ::std::os::raw::c_uchar,
8501                                   inlen: ::std::os::raw::c_ulong, ...)
8502     -> ::std::os::raw::c_int;
8503}
8504extern "C" {
8505    pub fn blake2bmac_file(fname: *const ::std::os::raw::c_char,
8506                           key: *const ::std::os::raw::c_uchar,
8507                           keylen: ::std::os::raw::c_ulong,
8508                           mac: *mut ::std::os::raw::c_uchar,
8509                           maclen: *mut ::std::os::raw::c_ulong)
8510     -> ::std::os::raw::c_int;
8511}
8512#[repr(C)]
8513#[derive(Copy)]
8514pub struct eax_state {
8515    pub N: [::std::os::raw::c_uchar; 128usize],
8516    pub ctr: symmetric_CTR,
8517    pub headeromac: omac_state,
8518    pub ctomac: omac_state,
8519}
8520#[test]
8521fn bindgen_test_layout_eax_state() {
8522    assert_eq!(::std::mem::size_of::<eax_state>() , 14232usize , concat ! (
8523               "Size of: " , stringify ! ( eax_state ) ));
8524    assert_eq! (::std::mem::align_of::<eax_state>() , 8usize , concat ! (
8525                "Alignment of " , stringify ! ( eax_state ) ));
8526    assert_eq! (unsafe {
8527                & ( * ( 0 as * const eax_state ) ) . N as * const _ as usize }
8528                , 0usize , concat ! (
8529                "Alignment of field: " , stringify ! ( eax_state ) , "::" ,
8530                stringify ! ( N ) ));
8531    assert_eq! (unsafe {
8532                & ( * ( 0 as * const eax_state ) ) . ctr as * const _ as usize
8533                } , 128usize , concat ! (
8534                "Alignment of field: " , stringify ! ( eax_state ) , "::" ,
8535                stringify ! ( ctr ) ));
8536    assert_eq! (unsafe {
8537                & ( * ( 0 as * const eax_state ) ) . headeromac as * const _
8538                as usize } , 4664usize , concat ! (
8539                "Alignment of field: " , stringify ! ( eax_state ) , "::" ,
8540                stringify ! ( headeromac ) ));
8541    assert_eq! (unsafe {
8542                & ( * ( 0 as * const eax_state ) ) . ctomac as * const _ as
8543                usize } , 9448usize , concat ! (
8544                "Alignment of field: " , stringify ! ( eax_state ) , "::" ,
8545                stringify ! ( ctomac ) ));
8546}
8547impl Clone for eax_state {
8548    fn clone(&self) -> Self { *self }
8549}
8550extern "C" {
8551    pub fn eax_init(eax: *mut eax_state, cipher: ::std::os::raw::c_int,
8552                    key: *const ::std::os::raw::c_uchar,
8553                    keylen: ::std::os::raw::c_ulong,
8554                    nonce: *const ::std::os::raw::c_uchar,
8555                    noncelen: ::std::os::raw::c_ulong,
8556                    header: *const ::std::os::raw::c_uchar,
8557                    headerlen: ::std::os::raw::c_ulong)
8558     -> ::std::os::raw::c_int;
8559}
8560extern "C" {
8561    pub fn eax_encrypt(eax: *mut eax_state,
8562                       pt: *const ::std::os::raw::c_uchar,
8563                       ct: *mut ::std::os::raw::c_uchar,
8564                       length: ::std::os::raw::c_ulong)
8565     -> ::std::os::raw::c_int;
8566}
8567extern "C" {
8568    pub fn eax_decrypt(eax: *mut eax_state,
8569                       ct: *const ::std::os::raw::c_uchar,
8570                       pt: *mut ::std::os::raw::c_uchar,
8571                       length: ::std::os::raw::c_ulong)
8572     -> ::std::os::raw::c_int;
8573}
8574extern "C" {
8575    pub fn eax_addheader(eax: *mut eax_state,
8576                         header: *const ::std::os::raw::c_uchar,
8577                         length: ::std::os::raw::c_ulong)
8578     -> ::std::os::raw::c_int;
8579}
8580extern "C" {
8581    pub fn eax_done(eax: *mut eax_state, tag: *mut ::std::os::raw::c_uchar,
8582                    taglen: *mut ::std::os::raw::c_ulong)
8583     -> ::std::os::raw::c_int;
8584}
8585extern "C" {
8586    pub fn eax_encrypt_authenticate_memory(cipher: ::std::os::raw::c_int,
8587                                           key:
8588                                               *const ::std::os::raw::c_uchar,
8589                                           keylen: ::std::os::raw::c_ulong,
8590                                           nonce:
8591                                               *const ::std::os::raw::c_uchar,
8592                                           noncelen: ::std::os::raw::c_ulong,
8593                                           header:
8594                                               *const ::std::os::raw::c_uchar,
8595                                           headerlen: ::std::os::raw::c_ulong,
8596                                           pt: *const ::std::os::raw::c_uchar,
8597                                           ptlen: ::std::os::raw::c_ulong,
8598                                           ct: *mut ::std::os::raw::c_uchar,
8599                                           tag: *mut ::std::os::raw::c_uchar,
8600                                           taglen:
8601                                               *mut ::std::os::raw::c_ulong)
8602     -> ::std::os::raw::c_int;
8603}
8604extern "C" {
8605    pub fn eax_decrypt_verify_memory(cipher: ::std::os::raw::c_int,
8606                                     key: *const ::std::os::raw::c_uchar,
8607                                     keylen: ::std::os::raw::c_ulong,
8608                                     nonce: *const ::std::os::raw::c_uchar,
8609                                     noncelen: ::std::os::raw::c_ulong,
8610                                     header: *const ::std::os::raw::c_uchar,
8611                                     headerlen: ::std::os::raw::c_ulong,
8612                                     ct: *const ::std::os::raw::c_uchar,
8613                                     ctlen: ::std::os::raw::c_ulong,
8614                                     pt: *mut ::std::os::raw::c_uchar,
8615                                     tag: *mut ::std::os::raw::c_uchar,
8616                                     taglen: ::std::os::raw::c_ulong,
8617                                     stat: *mut ::std::os::raw::c_int)
8618     -> ::std::os::raw::c_int;
8619}
8620extern "C" {
8621    pub fn eax_test() -> ::std::os::raw::c_int;
8622}
8623#[repr(C)]
8624#[derive(Copy)]
8625pub struct ocb_state {
8626    pub L: [::std::os::raw::c_uchar; 128usize],
8627    pub Ls: [[::std::os::raw::c_uchar; 128usize]; 32usize],
8628    pub Li: [::std::os::raw::c_uchar; 128usize],
8629    pub Lr: [::std::os::raw::c_uchar; 128usize],
8630    pub R: [::std::os::raw::c_uchar; 128usize],
8631    pub checksum: [::std::os::raw::c_uchar; 128usize],
8632    pub key: symmetric_key,
8633    pub block_index: ::std::os::raw::c_ulong,
8634    pub cipher: ::std::os::raw::c_int,
8635    pub block_len: ::std::os::raw::c_int,
8636}
8637#[test]
8638fn bindgen_test_layout_ocb_state() {
8639    assert_eq!(::std::mem::size_of::<ocb_state>() , 9008usize , concat ! (
8640               "Size of: " , stringify ! ( ocb_state ) ));
8641    assert_eq! (::std::mem::align_of::<ocb_state>() , 8usize , concat ! (
8642                "Alignment of " , stringify ! ( ocb_state ) ));
8643    assert_eq! (unsafe {
8644                & ( * ( 0 as * const ocb_state ) ) . L as * const _ as usize }
8645                , 0usize , concat ! (
8646                "Alignment of field: " , stringify ! ( ocb_state ) , "::" ,
8647                stringify ! ( L ) ));
8648    assert_eq! (unsafe {
8649                & ( * ( 0 as * const ocb_state ) ) . Ls as * const _ as usize
8650                } , 128usize , concat ! (
8651                "Alignment of field: " , stringify ! ( ocb_state ) , "::" ,
8652                stringify ! ( Ls ) ));
8653    assert_eq! (unsafe {
8654                & ( * ( 0 as * const ocb_state ) ) . Li as * const _ as usize
8655                } , 4224usize , concat ! (
8656                "Alignment of field: " , stringify ! ( ocb_state ) , "::" ,
8657                stringify ! ( Li ) ));
8658    assert_eq! (unsafe {
8659                & ( * ( 0 as * const ocb_state ) ) . Lr as * const _ as usize
8660                } , 4352usize , concat ! (
8661                "Alignment of field: " , stringify ! ( ocb_state ) , "::" ,
8662                stringify ! ( Lr ) ));
8663    assert_eq! (unsafe {
8664                & ( * ( 0 as * const ocb_state ) ) . R as * const _ as usize }
8665                , 4480usize , concat ! (
8666                "Alignment of field: " , stringify ! ( ocb_state ) , "::" ,
8667                stringify ! ( R ) ));
8668    assert_eq! (unsafe {
8669                & ( * ( 0 as * const ocb_state ) ) . checksum as * const _ as
8670                usize } , 4608usize , concat ! (
8671                "Alignment of field: " , stringify ! ( ocb_state ) , "::" ,
8672                stringify ! ( checksum ) ));
8673    assert_eq! (unsafe {
8674                & ( * ( 0 as * const ocb_state ) ) . key as * const _ as usize
8675                } , 4736usize , concat ! (
8676                "Alignment of field: " , stringify ! ( ocb_state ) , "::" ,
8677                stringify ! ( key ) ));
8678    assert_eq! (unsafe {
8679                & ( * ( 0 as * const ocb_state ) ) . block_index as * const _
8680                as usize } , 8992usize , concat ! (
8681                "Alignment of field: " , stringify ! ( ocb_state ) , "::" ,
8682                stringify ! ( block_index ) ));
8683    assert_eq! (unsafe {
8684                & ( * ( 0 as * const ocb_state ) ) . cipher as * const _ as
8685                usize } , 9000usize , concat ! (
8686                "Alignment of field: " , stringify ! ( ocb_state ) , "::" ,
8687                stringify ! ( cipher ) ));
8688    assert_eq! (unsafe {
8689                & ( * ( 0 as * const ocb_state ) ) . block_len as * const _ as
8690                usize } , 9004usize , concat ! (
8691                "Alignment of field: " , stringify ! ( ocb_state ) , "::" ,
8692                stringify ! ( block_len ) ));
8693}
8694impl Clone for ocb_state {
8695    fn clone(&self) -> Self { *self }
8696}
8697extern "C" {
8698    pub fn ocb_init(ocb: *mut ocb_state, cipher: ::std::os::raw::c_int,
8699                    key: *const ::std::os::raw::c_uchar,
8700                    keylen: ::std::os::raw::c_ulong,
8701                    nonce: *const ::std::os::raw::c_uchar)
8702     -> ::std::os::raw::c_int;
8703}
8704extern "C" {
8705    pub fn ocb_encrypt(ocb: *mut ocb_state,
8706                       pt: *const ::std::os::raw::c_uchar,
8707                       ct: *mut ::std::os::raw::c_uchar)
8708     -> ::std::os::raw::c_int;
8709}
8710extern "C" {
8711    pub fn ocb_decrypt(ocb: *mut ocb_state,
8712                       ct: *const ::std::os::raw::c_uchar,
8713                       pt: *mut ::std::os::raw::c_uchar)
8714     -> ::std::os::raw::c_int;
8715}
8716extern "C" {
8717    pub fn ocb_done_encrypt(ocb: *mut ocb_state,
8718                            pt: *const ::std::os::raw::c_uchar,
8719                            ptlen: ::std::os::raw::c_ulong,
8720                            ct: *mut ::std::os::raw::c_uchar,
8721                            tag: *mut ::std::os::raw::c_uchar,
8722                            taglen: *mut ::std::os::raw::c_ulong)
8723     -> ::std::os::raw::c_int;
8724}
8725extern "C" {
8726    pub fn ocb_done_decrypt(ocb: *mut ocb_state,
8727                            ct: *const ::std::os::raw::c_uchar,
8728                            ctlen: ::std::os::raw::c_ulong,
8729                            pt: *mut ::std::os::raw::c_uchar,
8730                            tag: *const ::std::os::raw::c_uchar,
8731                            taglen: ::std::os::raw::c_ulong,
8732                            stat: *mut ::std::os::raw::c_int)
8733     -> ::std::os::raw::c_int;
8734}
8735extern "C" {
8736    pub fn ocb_encrypt_authenticate_memory(cipher: ::std::os::raw::c_int,
8737                                           key:
8738                                               *const ::std::os::raw::c_uchar,
8739                                           keylen: ::std::os::raw::c_ulong,
8740                                           nonce:
8741                                               *const ::std::os::raw::c_uchar,
8742                                           pt: *const ::std::os::raw::c_uchar,
8743                                           ptlen: ::std::os::raw::c_ulong,
8744                                           ct: *mut ::std::os::raw::c_uchar,
8745                                           tag: *mut ::std::os::raw::c_uchar,
8746                                           taglen:
8747                                               *mut ::std::os::raw::c_ulong)
8748     -> ::std::os::raw::c_int;
8749}
8750extern "C" {
8751    pub fn ocb_decrypt_verify_memory(cipher: ::std::os::raw::c_int,
8752                                     key: *const ::std::os::raw::c_uchar,
8753                                     keylen: ::std::os::raw::c_ulong,
8754                                     nonce: *const ::std::os::raw::c_uchar,
8755                                     ct: *const ::std::os::raw::c_uchar,
8756                                     ctlen: ::std::os::raw::c_ulong,
8757                                     pt: *mut ::std::os::raw::c_uchar,
8758                                     tag: *const ::std::os::raw::c_uchar,
8759                                     taglen: ::std::os::raw::c_ulong,
8760                                     stat: *mut ::std::os::raw::c_int)
8761     -> ::std::os::raw::c_int;
8762}
8763extern "C" {
8764    pub fn ocb_test() -> ::std::os::raw::c_int;
8765}
8766extern "C" {
8767    pub fn ocb_shift_xor(ocb: *mut ocb_state,
8768                         Z: *mut ::std::os::raw::c_uchar);
8769}
8770extern "C" {
8771    pub fn ocb_ntz(x: ::std::os::raw::c_ulong) -> ::std::os::raw::c_int;
8772}
8773extern "C" {
8774    pub fn s_ocb_done(ocb: *mut ocb_state, pt: *const ::std::os::raw::c_uchar,
8775                      ptlen: ::std::os::raw::c_ulong,
8776                      ct: *mut ::std::os::raw::c_uchar,
8777                      tag: *mut ::std::os::raw::c_uchar,
8778                      taglen: *mut ::std::os::raw::c_ulong,
8779                      mode: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
8780}
8781#[repr(C)]
8782#[derive(Copy)]
8783pub struct ocb3_state {
8784    pub Offset_0: [::std::os::raw::c_uchar; 128usize],
8785    pub Offset_current: [::std::os::raw::c_uchar; 128usize],
8786    pub L_dollar: [::std::os::raw::c_uchar; 128usize],
8787    pub L_star: [::std::os::raw::c_uchar; 128usize],
8788    pub L_: [[::std::os::raw::c_uchar; 128usize]; 32usize],
8789    pub tag_part: [::std::os::raw::c_uchar; 128usize],
8790    pub checksum: [::std::os::raw::c_uchar; 128usize],
8791    pub aSum_current: [::std::os::raw::c_uchar; 128usize],
8792    pub aOffset_current: [::std::os::raw::c_uchar; 128usize],
8793    pub adata_buffer: [::std::os::raw::c_uchar; 128usize],
8794    pub adata_buffer_bytes: ::std::os::raw::c_int,
8795    pub ablock_index: ::std::os::raw::c_ulong,
8796    pub key: symmetric_key,
8797    pub block_index: ::std::os::raw::c_ulong,
8798    pub cipher: ::std::os::raw::c_int,
8799    pub tag_len: ::std::os::raw::c_int,
8800    pub block_len: ::std::os::raw::c_int,
8801}
8802#[test]
8803fn bindgen_test_layout_ocb3_state() {
8804    assert_eq!(::std::mem::size_of::<ocb3_state>() , 9544usize , concat ! (
8805               "Size of: " , stringify ! ( ocb3_state ) ));
8806    assert_eq! (::std::mem::align_of::<ocb3_state>() , 8usize , concat ! (
8807                "Alignment of " , stringify ! ( ocb3_state ) ));
8808    assert_eq! (unsafe {
8809                & ( * ( 0 as * const ocb3_state ) ) . Offset_0 as * const _ as
8810                usize } , 0usize , concat ! (
8811                "Alignment of field: " , stringify ! ( ocb3_state ) , "::" ,
8812                stringify ! ( Offset_0 ) ));
8813    assert_eq! (unsafe {
8814                & ( * ( 0 as * const ocb3_state ) ) . Offset_current as *
8815                const _ as usize } , 128usize , concat ! (
8816                "Alignment of field: " , stringify ! ( ocb3_state ) , "::" ,
8817                stringify ! ( Offset_current ) ));
8818    assert_eq! (unsafe {
8819                & ( * ( 0 as * const ocb3_state ) ) . L_dollar as * const _ as
8820                usize } , 256usize , concat ! (
8821                "Alignment of field: " , stringify ! ( ocb3_state ) , "::" ,
8822                stringify ! ( L_dollar ) ));
8823    assert_eq! (unsafe {
8824                & ( * ( 0 as * const ocb3_state ) ) . L_star as * const _ as
8825                usize } , 384usize , concat ! (
8826                "Alignment of field: " , stringify ! ( ocb3_state ) , "::" ,
8827                stringify ! ( L_star ) ));
8828    assert_eq! (unsafe {
8829                & ( * ( 0 as * const ocb3_state ) ) . L_ as * const _ as usize
8830                } , 512usize , concat ! (
8831                "Alignment of field: " , stringify ! ( ocb3_state ) , "::" ,
8832                stringify ! ( L_ ) ));
8833    assert_eq! (unsafe {
8834                & ( * ( 0 as * const ocb3_state ) ) . tag_part as * const _ as
8835                usize } , 4608usize , concat ! (
8836                "Alignment of field: " , stringify ! ( ocb3_state ) , "::" ,
8837                stringify ! ( tag_part ) ));
8838    assert_eq! (unsafe {
8839                & ( * ( 0 as * const ocb3_state ) ) . checksum as * const _ as
8840                usize } , 4736usize , concat ! (
8841                "Alignment of field: " , stringify ! ( ocb3_state ) , "::" ,
8842                stringify ! ( checksum ) ));
8843    assert_eq! (unsafe {
8844                & ( * ( 0 as * const ocb3_state ) ) . aSum_current as * const
8845                _ as usize } , 4864usize , concat ! (
8846                "Alignment of field: " , stringify ! ( ocb3_state ) , "::" ,
8847                stringify ! ( aSum_current ) ));
8848    assert_eq! (unsafe {
8849                & ( * ( 0 as * const ocb3_state ) ) . aOffset_current as *
8850                const _ as usize } , 4992usize , concat ! (
8851                "Alignment of field: " , stringify ! ( ocb3_state ) , "::" ,
8852                stringify ! ( aOffset_current ) ));
8853    assert_eq! (unsafe {
8854                & ( * ( 0 as * const ocb3_state ) ) . adata_buffer as * const
8855                _ as usize } , 5120usize , concat ! (
8856                "Alignment of field: " , stringify ! ( ocb3_state ) , "::" ,
8857                stringify ! ( adata_buffer ) ));
8858    assert_eq! (unsafe {
8859                & ( * ( 0 as * const ocb3_state ) ) . adata_buffer_bytes as *
8860                const _ as usize } , 5248usize , concat ! (
8861                "Alignment of field: " , stringify ! ( ocb3_state ) , "::" ,
8862                stringify ! ( adata_buffer_bytes ) ));
8863    assert_eq! (unsafe {
8864                & ( * ( 0 as * const ocb3_state ) ) . ablock_index as * const
8865                _ as usize } , 5256usize , concat ! (
8866                "Alignment of field: " , stringify ! ( ocb3_state ) , "::" ,
8867                stringify ! ( ablock_index ) ));
8868    assert_eq! (unsafe {
8869                & ( * ( 0 as * const ocb3_state ) ) . key as * const _ as
8870                usize } , 5264usize , concat ! (
8871                "Alignment of field: " , stringify ! ( ocb3_state ) , "::" ,
8872                stringify ! ( key ) ));
8873    assert_eq! (unsafe {
8874                & ( * ( 0 as * const ocb3_state ) ) . block_index as * const _
8875                as usize } , 9520usize , concat ! (
8876                "Alignment of field: " , stringify ! ( ocb3_state ) , "::" ,
8877                stringify ! ( block_index ) ));
8878    assert_eq! (unsafe {
8879                & ( * ( 0 as * const ocb3_state ) ) . cipher as * const _ as
8880                usize } , 9528usize , concat ! (
8881                "Alignment of field: " , stringify ! ( ocb3_state ) , "::" ,
8882                stringify ! ( cipher ) ));
8883    assert_eq! (unsafe {
8884                & ( * ( 0 as * const ocb3_state ) ) . tag_len as * const _ as
8885                usize } , 9532usize , concat ! (
8886                "Alignment of field: " , stringify ! ( ocb3_state ) , "::" ,
8887                stringify ! ( tag_len ) ));
8888    assert_eq! (unsafe {
8889                & ( * ( 0 as * const ocb3_state ) ) . block_len as * const _
8890                as usize } , 9536usize , concat ! (
8891                "Alignment of field: " , stringify ! ( ocb3_state ) , "::" ,
8892                stringify ! ( block_len ) ));
8893}
8894impl Clone for ocb3_state {
8895    fn clone(&self) -> Self { *self }
8896}
8897extern "C" {
8898    pub fn ocb3_init(ocb: *mut ocb3_state, cipher: ::std::os::raw::c_int,
8899                     key: *const ::std::os::raw::c_uchar,
8900                     keylen: ::std::os::raw::c_ulong,
8901                     nonce: *const ::std::os::raw::c_uchar,
8902                     noncelen: ::std::os::raw::c_ulong,
8903                     taglen: ::std::os::raw::c_ulong)
8904     -> ::std::os::raw::c_int;
8905}
8906extern "C" {
8907    pub fn ocb3_encrypt(ocb: *mut ocb3_state,
8908                        pt: *const ::std::os::raw::c_uchar,
8909                        ptlen: ::std::os::raw::c_ulong,
8910                        ct: *mut ::std::os::raw::c_uchar)
8911     -> ::std::os::raw::c_int;
8912}
8913extern "C" {
8914    pub fn ocb3_decrypt(ocb: *mut ocb3_state,
8915                        ct: *const ::std::os::raw::c_uchar,
8916                        ctlen: ::std::os::raw::c_ulong,
8917                        pt: *mut ::std::os::raw::c_uchar)
8918     -> ::std::os::raw::c_int;
8919}
8920extern "C" {
8921    pub fn ocb3_encrypt_last(ocb: *mut ocb3_state,
8922                             pt: *const ::std::os::raw::c_uchar,
8923                             ptlen: ::std::os::raw::c_ulong,
8924                             ct: *mut ::std::os::raw::c_uchar)
8925     -> ::std::os::raw::c_int;
8926}
8927extern "C" {
8928    pub fn ocb3_decrypt_last(ocb: *mut ocb3_state,
8929                             ct: *const ::std::os::raw::c_uchar,
8930                             ctlen: ::std::os::raw::c_ulong,
8931                             pt: *mut ::std::os::raw::c_uchar)
8932     -> ::std::os::raw::c_int;
8933}
8934extern "C" {
8935    pub fn ocb3_add_aad(ocb: *mut ocb3_state,
8936                        aad: *const ::std::os::raw::c_uchar,
8937                        aadlen: ::std::os::raw::c_ulong)
8938     -> ::std::os::raw::c_int;
8939}
8940extern "C" {
8941    pub fn ocb3_done(ocb: *mut ocb3_state, tag: *mut ::std::os::raw::c_uchar,
8942                     taglen: *mut ::std::os::raw::c_ulong)
8943     -> ::std::os::raw::c_int;
8944}
8945extern "C" {
8946    pub fn ocb3_encrypt_authenticate_memory(cipher: ::std::os::raw::c_int,
8947                                            key:
8948                                                *const ::std::os::raw::c_uchar,
8949                                            keylen: ::std::os::raw::c_ulong,
8950                                            nonce:
8951                                                *const ::std::os::raw::c_uchar,
8952                                            noncelen: ::std::os::raw::c_ulong,
8953                                            adata:
8954                                                *const ::std::os::raw::c_uchar,
8955                                            adatalen: ::std::os::raw::c_ulong,
8956                                            pt:
8957                                                *const ::std::os::raw::c_uchar,
8958                                            ptlen: ::std::os::raw::c_ulong,
8959                                            ct: *mut ::std::os::raw::c_uchar,
8960                                            tag: *mut ::std::os::raw::c_uchar,
8961                                            taglen:
8962                                                *mut ::std::os::raw::c_ulong)
8963     -> ::std::os::raw::c_int;
8964}
8965extern "C" {
8966    pub fn ocb3_decrypt_verify_memory(cipher: ::std::os::raw::c_int,
8967                                      key: *const ::std::os::raw::c_uchar,
8968                                      keylen: ::std::os::raw::c_ulong,
8969                                      nonce: *const ::std::os::raw::c_uchar,
8970                                      noncelen: ::std::os::raw::c_ulong,
8971                                      adata: *const ::std::os::raw::c_uchar,
8972                                      adatalen: ::std::os::raw::c_ulong,
8973                                      ct: *const ::std::os::raw::c_uchar,
8974                                      ctlen: ::std::os::raw::c_ulong,
8975                                      pt: *mut ::std::os::raw::c_uchar,
8976                                      tag: *const ::std::os::raw::c_uchar,
8977                                      taglen: ::std::os::raw::c_ulong,
8978                                      stat: *mut ::std::os::raw::c_int)
8979     -> ::std::os::raw::c_int;
8980}
8981extern "C" {
8982    pub fn ocb3_test() -> ::std::os::raw::c_int;
8983}
8984extern "C" {
8985    pub fn ocb3_int_ntz(x: ::std::os::raw::c_ulong) -> ::std::os::raw::c_int;
8986}
8987extern "C" {
8988    pub fn ocb3_int_xor_blocks(out: *mut ::std::os::raw::c_uchar,
8989                               block_a: *const ::std::os::raw::c_uchar,
8990                               block_b: *const ::std::os::raw::c_uchar,
8991                               block_len: ::std::os::raw::c_ulong);
8992}
8993#[repr(C)]
8994#[derive(Copy)]
8995pub struct ccm_state {
8996    pub K: symmetric_key,
8997    pub cipher: ::std::os::raw::c_int,
8998    pub taglen: ::std::os::raw::c_int,
8999    pub x: ::std::os::raw::c_int,
9000    pub L: ::std::os::raw::c_ulong,
9001    pub ptlen: ::std::os::raw::c_ulong,
9002    pub current_ptlen: ::std::os::raw::c_ulong,
9003    pub aadlen: ::std::os::raw::c_ulong,
9004    pub current_aadlen: ::std::os::raw::c_ulong,
9005    pub noncelen: ::std::os::raw::c_ulong,
9006    pub PAD: [::std::os::raw::c_uchar; 16usize],
9007    pub ctr: [::std::os::raw::c_uchar; 16usize],
9008    pub CTRPAD: [::std::os::raw::c_uchar; 16usize],
9009    pub CTRlen: ::std::os::raw::c_uchar,
9010}
9011#[test]
9012fn bindgen_test_layout_ccm_state() {
9013    assert_eq!(::std::mem::size_of::<ccm_state>() , 4376usize , concat ! (
9014               "Size of: " , stringify ! ( ccm_state ) ));
9015    assert_eq! (::std::mem::align_of::<ccm_state>() , 8usize , concat ! (
9016                "Alignment of " , stringify ! ( ccm_state ) ));
9017    assert_eq! (unsafe {
9018                & ( * ( 0 as * const ccm_state ) ) . K as * const _ as usize }
9019                , 0usize , concat ! (
9020                "Alignment of field: " , stringify ! ( ccm_state ) , "::" ,
9021                stringify ! ( K ) ));
9022    assert_eq! (unsafe {
9023                & ( * ( 0 as * const ccm_state ) ) . cipher as * const _ as
9024                usize } , 4256usize , concat ! (
9025                "Alignment of field: " , stringify ! ( ccm_state ) , "::" ,
9026                stringify ! ( cipher ) ));
9027    assert_eq! (unsafe {
9028                & ( * ( 0 as * const ccm_state ) ) . taglen as * const _ as
9029                usize } , 4260usize , concat ! (
9030                "Alignment of field: " , stringify ! ( ccm_state ) , "::" ,
9031                stringify ! ( taglen ) ));
9032    assert_eq! (unsafe {
9033                & ( * ( 0 as * const ccm_state ) ) . x as * const _ as usize }
9034                , 4264usize , concat ! (
9035                "Alignment of field: " , stringify ! ( ccm_state ) , "::" ,
9036                stringify ! ( x ) ));
9037    assert_eq! (unsafe {
9038                & ( * ( 0 as * const ccm_state ) ) . L as * const _ as usize }
9039                , 4272usize , concat ! (
9040                "Alignment of field: " , stringify ! ( ccm_state ) , "::" ,
9041                stringify ! ( L ) ));
9042    assert_eq! (unsafe {
9043                & ( * ( 0 as * const ccm_state ) ) . ptlen as * const _ as
9044                usize } , 4280usize , concat ! (
9045                "Alignment of field: " , stringify ! ( ccm_state ) , "::" ,
9046                stringify ! ( ptlen ) ));
9047    assert_eq! (unsafe {
9048                & ( * ( 0 as * const ccm_state ) ) . current_ptlen as * const
9049                _ as usize } , 4288usize , concat ! (
9050                "Alignment of field: " , stringify ! ( ccm_state ) , "::" ,
9051                stringify ! ( current_ptlen ) ));
9052    assert_eq! (unsafe {
9053                & ( * ( 0 as * const ccm_state ) ) . aadlen as * const _ as
9054                usize } , 4296usize , concat ! (
9055                "Alignment of field: " , stringify ! ( ccm_state ) , "::" ,
9056                stringify ! ( aadlen ) ));
9057    assert_eq! (unsafe {
9058                & ( * ( 0 as * const ccm_state ) ) . current_aadlen as * const
9059                _ as usize } , 4304usize , concat ! (
9060                "Alignment of field: " , stringify ! ( ccm_state ) , "::" ,
9061                stringify ! ( current_aadlen ) ));
9062    assert_eq! (unsafe {
9063                & ( * ( 0 as * const ccm_state ) ) . noncelen as * const _ as
9064                usize } , 4312usize , concat ! (
9065                "Alignment of field: " , stringify ! ( ccm_state ) , "::" ,
9066                stringify ! ( noncelen ) ));
9067    assert_eq! (unsafe {
9068                & ( * ( 0 as * const ccm_state ) ) . PAD as * const _ as usize
9069                } , 4320usize , concat ! (
9070                "Alignment of field: " , stringify ! ( ccm_state ) , "::" ,
9071                stringify ! ( PAD ) ));
9072    assert_eq! (unsafe {
9073                & ( * ( 0 as * const ccm_state ) ) . ctr as * const _ as usize
9074                } , 4336usize , concat ! (
9075                "Alignment of field: " , stringify ! ( ccm_state ) , "::" ,
9076                stringify ! ( ctr ) ));
9077    assert_eq! (unsafe {
9078                & ( * ( 0 as * const ccm_state ) ) . CTRPAD as * const _ as
9079                usize } , 4352usize , concat ! (
9080                "Alignment of field: " , stringify ! ( ccm_state ) , "::" ,
9081                stringify ! ( CTRPAD ) ));
9082    assert_eq! (unsafe {
9083                & ( * ( 0 as * const ccm_state ) ) . CTRlen as * const _ as
9084                usize } , 4368usize , concat ! (
9085                "Alignment of field: " , stringify ! ( ccm_state ) , "::" ,
9086                stringify ! ( CTRlen ) ));
9087}
9088impl Clone for ccm_state {
9089    fn clone(&self) -> Self { *self }
9090}
9091extern "C" {
9092    pub fn ccm_init(ccm: *mut ccm_state, cipher: ::std::os::raw::c_int,
9093                    key: *const ::std::os::raw::c_uchar,
9094                    keylen: ::std::os::raw::c_int,
9095                    ptlen: ::std::os::raw::c_int,
9096                    taglen: ::std::os::raw::c_int,
9097                    aad_len: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
9098}
9099extern "C" {
9100    pub fn ccm_reset(ccm: *mut ccm_state) -> ::std::os::raw::c_int;
9101}
9102extern "C" {
9103    pub fn ccm_add_nonce(ccm: *mut ccm_state,
9104                         nonce: *const ::std::os::raw::c_uchar,
9105                         noncelen: ::std::os::raw::c_ulong)
9106     -> ::std::os::raw::c_int;
9107}
9108extern "C" {
9109    pub fn ccm_add_aad(ccm: *mut ccm_state,
9110                       adata: *const ::std::os::raw::c_uchar,
9111                       adatalen: ::std::os::raw::c_ulong)
9112     -> ::std::os::raw::c_int;
9113}
9114extern "C" {
9115    pub fn ccm_process(ccm: *mut ccm_state, pt: *mut ::std::os::raw::c_uchar,
9116                       ptlen: ::std::os::raw::c_ulong,
9117                       ct: *mut ::std::os::raw::c_uchar,
9118                       direction: ::std::os::raw::c_int)
9119     -> ::std::os::raw::c_int;
9120}
9121extern "C" {
9122    pub fn ccm_done(ccm: *mut ccm_state, tag: *mut ::std::os::raw::c_uchar,
9123                    taglen: *mut ::std::os::raw::c_ulong)
9124     -> ::std::os::raw::c_int;
9125}
9126extern "C" {
9127    pub fn ccm_memory(cipher: ::std::os::raw::c_int,
9128                      key: *const ::std::os::raw::c_uchar,
9129                      keylen: ::std::os::raw::c_ulong,
9130                      uskey: *mut symmetric_key,
9131                      nonce: *const ::std::os::raw::c_uchar,
9132                      noncelen: ::std::os::raw::c_ulong,
9133                      header: *const ::std::os::raw::c_uchar,
9134                      headerlen: ::std::os::raw::c_ulong,
9135                      pt: *mut ::std::os::raw::c_uchar,
9136                      ptlen: ::std::os::raw::c_ulong,
9137                      ct: *mut ::std::os::raw::c_uchar,
9138                      tag: *mut ::std::os::raw::c_uchar,
9139                      taglen: *mut ::std::os::raw::c_ulong,
9140                      direction: ::std::os::raw::c_int)
9141     -> ::std::os::raw::c_int;
9142}
9143extern "C" {
9144    pub fn ccm_test() -> ::std::os::raw::c_int;
9145}
9146extern "C" {
9147    pub fn gcm_gf_mult(a: *const ::std::os::raw::c_uchar,
9148                       b: *const ::std::os::raw::c_uchar,
9149                       c: *mut ::std::os::raw::c_uchar);
9150}
9151extern "C" {
9152    #[link_name = "gcm_shift_table"]
9153    pub static mut gcm_shift_table: [::std::os::raw::c_uchar; 0usize];
9154}
9155#[repr(C)]
9156#[derive(Copy)]
9157pub struct gcm_state {
9158    pub K: symmetric_key,
9159    pub H: [::std::os::raw::c_uchar; 16usize],
9160    pub X: [::std::os::raw::c_uchar; 16usize],
9161    pub Y: [::std::os::raw::c_uchar; 16usize],
9162    pub Y_0: [::std::os::raw::c_uchar; 16usize],
9163    pub buf: [::std::os::raw::c_uchar; 16usize],
9164    pub cipher: ::std::os::raw::c_int,
9165    pub ivmode: ::std::os::raw::c_int,
9166    pub mode: ::std::os::raw::c_int,
9167    pub buflen: ::std::os::raw::c_int,
9168    pub totlen: ulong64,
9169    pub pttotlen: ulong64,
9170    pub PC: [[[::std::os::raw::c_uchar; 16usize]; 256usize]; 16usize],
9171}
9172#[test]
9173fn bindgen_test_layout_gcm_state() {
9174    assert_eq!(::std::mem::size_of::<gcm_state>() , 69904usize , concat ! (
9175               "Size of: " , stringify ! ( gcm_state ) ));
9176    assert_eq! (::std::mem::align_of::<gcm_state>() , 8usize , concat ! (
9177                "Alignment of " , stringify ! ( gcm_state ) ));
9178    assert_eq! (unsafe {
9179                & ( * ( 0 as * const gcm_state ) ) . K as * const _ as usize }
9180                , 0usize , concat ! (
9181                "Alignment of field: " , stringify ! ( gcm_state ) , "::" ,
9182                stringify ! ( K ) ));
9183    assert_eq! (unsafe {
9184                & ( * ( 0 as * const gcm_state ) ) . H as * const _ as usize }
9185                , 4256usize , concat ! (
9186                "Alignment of field: " , stringify ! ( gcm_state ) , "::" ,
9187                stringify ! ( H ) ));
9188    assert_eq! (unsafe {
9189                & ( * ( 0 as * const gcm_state ) ) . X as * const _ as usize }
9190                , 4272usize , concat ! (
9191                "Alignment of field: " , stringify ! ( gcm_state ) , "::" ,
9192                stringify ! ( X ) ));
9193    assert_eq! (unsafe {
9194                & ( * ( 0 as * const gcm_state ) ) . Y as * const _ as usize }
9195                , 4288usize , concat ! (
9196                "Alignment of field: " , stringify ! ( gcm_state ) , "::" ,
9197                stringify ! ( Y ) ));
9198    assert_eq! (unsafe {
9199                & ( * ( 0 as * const gcm_state ) ) . Y_0 as * const _ as usize
9200                } , 4304usize , concat ! (
9201                "Alignment of field: " , stringify ! ( gcm_state ) , "::" ,
9202                stringify ! ( Y_0 ) ));
9203    assert_eq! (unsafe {
9204                & ( * ( 0 as * const gcm_state ) ) . buf as * const _ as usize
9205                } , 4320usize , concat ! (
9206                "Alignment of field: " , stringify ! ( gcm_state ) , "::" ,
9207                stringify ! ( buf ) ));
9208    assert_eq! (unsafe {
9209                & ( * ( 0 as * const gcm_state ) ) . cipher as * const _ as
9210                usize } , 4336usize , concat ! (
9211                "Alignment of field: " , stringify ! ( gcm_state ) , "::" ,
9212                stringify ! ( cipher ) ));
9213    assert_eq! (unsafe {
9214                & ( * ( 0 as * const gcm_state ) ) . ivmode as * const _ as
9215                usize } , 4340usize , concat ! (
9216                "Alignment of field: " , stringify ! ( gcm_state ) , "::" ,
9217                stringify ! ( ivmode ) ));
9218    assert_eq! (unsafe {
9219                & ( * ( 0 as * const gcm_state ) ) . mode as * const _ as
9220                usize } , 4344usize , concat ! (
9221                "Alignment of field: " , stringify ! ( gcm_state ) , "::" ,
9222                stringify ! ( mode ) ));
9223    assert_eq! (unsafe {
9224                & ( * ( 0 as * const gcm_state ) ) . buflen as * const _ as
9225                usize } , 4348usize , concat ! (
9226                "Alignment of field: " , stringify ! ( gcm_state ) , "::" ,
9227                stringify ! ( buflen ) ));
9228    assert_eq! (unsafe {
9229                & ( * ( 0 as * const gcm_state ) ) . totlen as * const _ as
9230                usize } , 4352usize , concat ! (
9231                "Alignment of field: " , stringify ! ( gcm_state ) , "::" ,
9232                stringify ! ( totlen ) ));
9233    assert_eq! (unsafe {
9234                & ( * ( 0 as * const gcm_state ) ) . pttotlen as * const _ as
9235                usize } , 4360usize , concat ! (
9236                "Alignment of field: " , stringify ! ( gcm_state ) , "::" ,
9237                stringify ! ( pttotlen ) ));
9238    assert_eq! (unsafe {
9239                & ( * ( 0 as * const gcm_state ) ) . PC as * const _ as usize
9240                } , 4368usize , concat ! (
9241                "Alignment of field: " , stringify ! ( gcm_state ) , "::" ,
9242                stringify ! ( PC ) ));
9243}
9244impl Clone for gcm_state {
9245    fn clone(&self) -> Self { *self }
9246}
9247extern "C" {
9248    pub fn gcm_mult_h(gcm: *mut gcm_state, I: *mut ::std::os::raw::c_uchar);
9249}
9250extern "C" {
9251    pub fn gcm_init(gcm: *mut gcm_state, cipher: ::std::os::raw::c_int,
9252                    key: *const ::std::os::raw::c_uchar,
9253                    keylen: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
9254}
9255extern "C" {
9256    pub fn gcm_reset(gcm: *mut gcm_state) -> ::std::os::raw::c_int;
9257}
9258extern "C" {
9259    pub fn gcm_add_iv(gcm: *mut gcm_state, IV: *const ::std::os::raw::c_uchar,
9260                      IVlen: ::std::os::raw::c_ulong)
9261     -> ::std::os::raw::c_int;
9262}
9263extern "C" {
9264    pub fn gcm_add_aad(gcm: *mut gcm_state,
9265                       adata: *const ::std::os::raw::c_uchar,
9266                       adatalen: ::std::os::raw::c_ulong)
9267     -> ::std::os::raw::c_int;
9268}
9269extern "C" {
9270    pub fn gcm_process(gcm: *mut gcm_state, pt: *mut ::std::os::raw::c_uchar,
9271                       ptlen: ::std::os::raw::c_ulong,
9272                       ct: *mut ::std::os::raw::c_uchar,
9273                       direction: ::std::os::raw::c_int)
9274     -> ::std::os::raw::c_int;
9275}
9276extern "C" {
9277    pub fn gcm_done(gcm: *mut gcm_state, tag: *mut ::std::os::raw::c_uchar,
9278                    taglen: *mut ::std::os::raw::c_ulong)
9279     -> ::std::os::raw::c_int;
9280}
9281extern "C" {
9282    pub fn gcm_memory(cipher: ::std::os::raw::c_int,
9283                      key: *const ::std::os::raw::c_uchar,
9284                      keylen: ::std::os::raw::c_ulong,
9285                      IV: *const ::std::os::raw::c_uchar,
9286                      IVlen: ::std::os::raw::c_ulong,
9287                      adata: *const ::std::os::raw::c_uchar,
9288                      adatalen: ::std::os::raw::c_ulong,
9289                      pt: *mut ::std::os::raw::c_uchar,
9290                      ptlen: ::std::os::raw::c_ulong,
9291                      ct: *mut ::std::os::raw::c_uchar,
9292                      tag: *mut ::std::os::raw::c_uchar,
9293                      taglen: *mut ::std::os::raw::c_ulong,
9294                      direction: ::std::os::raw::c_int)
9295     -> ::std::os::raw::c_int;
9296}
9297extern "C" {
9298    pub fn gcm_test() -> ::std::os::raw::c_int;
9299}
9300#[repr(C)]
9301#[derive(Copy)]
9302pub struct pelican_state {
9303    pub K: symmetric_key,
9304    pub state: [::std::os::raw::c_uchar; 16usize],
9305    pub buflen: ::std::os::raw::c_int,
9306}
9307#[test]
9308fn bindgen_test_layout_pelican_state() {
9309    assert_eq!(::std::mem::size_of::<pelican_state>() , 4280usize , concat ! (
9310               "Size of: " , stringify ! ( pelican_state ) ));
9311    assert_eq! (::std::mem::align_of::<pelican_state>() , 8usize , concat ! (
9312                "Alignment of " , stringify ! ( pelican_state ) ));
9313    assert_eq! (unsafe {
9314                & ( * ( 0 as * const pelican_state ) ) . K as * const _ as
9315                usize } , 0usize , concat ! (
9316                "Alignment of field: " , stringify ! ( pelican_state ) , "::"
9317                , stringify ! ( K ) ));
9318    assert_eq! (unsafe {
9319                & ( * ( 0 as * const pelican_state ) ) . state as * const _ as
9320                usize } , 4256usize , concat ! (
9321                "Alignment of field: " , stringify ! ( pelican_state ) , "::"
9322                , stringify ! ( state ) ));
9323    assert_eq! (unsafe {
9324                & ( * ( 0 as * const pelican_state ) ) . buflen as * const _
9325                as usize } , 4272usize , concat ! (
9326                "Alignment of field: " , stringify ! ( pelican_state ) , "::"
9327                , stringify ! ( buflen ) ));
9328}
9329impl Clone for pelican_state {
9330    fn clone(&self) -> Self { *self }
9331}
9332extern "C" {
9333    pub fn pelican_init(pelmac: *mut pelican_state,
9334                        key: *const ::std::os::raw::c_uchar,
9335                        keylen: ::std::os::raw::c_ulong)
9336     -> ::std::os::raw::c_int;
9337}
9338extern "C" {
9339    pub fn pelican_process(pelmac: *mut pelican_state,
9340                           in_: *const ::std::os::raw::c_uchar,
9341                           inlen: ::std::os::raw::c_ulong)
9342     -> ::std::os::raw::c_int;
9343}
9344extern "C" {
9345    pub fn pelican_done(pelmac: *mut pelican_state,
9346                        out: *mut ::std::os::raw::c_uchar)
9347     -> ::std::os::raw::c_int;
9348}
9349extern "C" {
9350    pub fn pelican_test() -> ::std::os::raw::c_int;
9351}
9352extern "C" {
9353    pub fn pelican_memory(key: *const ::std::os::raw::c_uchar,
9354                          keylen: ::std::os::raw::c_ulong,
9355                          in_: *const ::std::os::raw::c_uchar,
9356                          inlen: ::std::os::raw::c_ulong,
9357                          out: *mut ::std::os::raw::c_uchar)
9358     -> ::std::os::raw::c_int;
9359}
9360#[repr(C)]
9361#[derive(Copy)]
9362pub struct xcbc_state {
9363    pub K: [[::std::os::raw::c_uchar; 128usize]; 3usize],
9364    pub IV: [::std::os::raw::c_uchar; 128usize],
9365    pub key: symmetric_key,
9366    pub cipher: ::std::os::raw::c_int,
9367    pub buflen: ::std::os::raw::c_int,
9368    pub blocksize: ::std::os::raw::c_int,
9369}
9370#[test]
9371fn bindgen_test_layout_xcbc_state() {
9372    assert_eq!(::std::mem::size_of::<xcbc_state>() , 4784usize , concat ! (
9373               "Size of: " , stringify ! ( xcbc_state ) ));
9374    assert_eq! (::std::mem::align_of::<xcbc_state>() , 8usize , concat ! (
9375                "Alignment of " , stringify ! ( xcbc_state ) ));
9376    assert_eq! (unsafe {
9377                & ( * ( 0 as * const xcbc_state ) ) . K as * const _ as usize
9378                } , 0usize , concat ! (
9379                "Alignment of field: " , stringify ! ( xcbc_state ) , "::" ,
9380                stringify ! ( K ) ));
9381    assert_eq! (unsafe {
9382                & ( * ( 0 as * const xcbc_state ) ) . IV as * const _ as usize
9383                } , 384usize , concat ! (
9384                "Alignment of field: " , stringify ! ( xcbc_state ) , "::" ,
9385                stringify ! ( IV ) ));
9386    assert_eq! (unsafe {
9387                & ( * ( 0 as * const xcbc_state ) ) . key as * const _ as
9388                usize } , 512usize , concat ! (
9389                "Alignment of field: " , stringify ! ( xcbc_state ) , "::" ,
9390                stringify ! ( key ) ));
9391    assert_eq! (unsafe {
9392                & ( * ( 0 as * const xcbc_state ) ) . cipher as * const _ as
9393                usize } , 4768usize , concat ! (
9394                "Alignment of field: " , stringify ! ( xcbc_state ) , "::" ,
9395                stringify ! ( cipher ) ));
9396    assert_eq! (unsafe {
9397                & ( * ( 0 as * const xcbc_state ) ) . buflen as * const _ as
9398                usize } , 4772usize , concat ! (
9399                "Alignment of field: " , stringify ! ( xcbc_state ) , "::" ,
9400                stringify ! ( buflen ) ));
9401    assert_eq! (unsafe {
9402                & ( * ( 0 as * const xcbc_state ) ) . blocksize as * const _
9403                as usize } , 4776usize , concat ! (
9404                "Alignment of field: " , stringify ! ( xcbc_state ) , "::" ,
9405                stringify ! ( blocksize ) ));
9406}
9407impl Clone for xcbc_state {
9408    fn clone(&self) -> Self { *self }
9409}
9410extern "C" {
9411    pub fn xcbc_init(xcbc: *mut xcbc_state, cipher: ::std::os::raw::c_int,
9412                     key: *const ::std::os::raw::c_uchar,
9413                     keylen: ::std::os::raw::c_ulong)
9414     -> ::std::os::raw::c_int;
9415}
9416extern "C" {
9417    pub fn xcbc_process(xcbc: *mut xcbc_state,
9418                        in_: *const ::std::os::raw::c_uchar,
9419                        inlen: ::std::os::raw::c_ulong)
9420     -> ::std::os::raw::c_int;
9421}
9422extern "C" {
9423    pub fn xcbc_done(xcbc: *mut xcbc_state, out: *mut ::std::os::raw::c_uchar,
9424                     outlen: *mut ::std::os::raw::c_ulong)
9425     -> ::std::os::raw::c_int;
9426}
9427extern "C" {
9428    pub fn xcbc_memory(cipher: ::std::os::raw::c_int,
9429                       key: *const ::std::os::raw::c_uchar,
9430                       keylen: ::std::os::raw::c_ulong,
9431                       in_: *const ::std::os::raw::c_uchar,
9432                       inlen: ::std::os::raw::c_ulong,
9433                       out: *mut ::std::os::raw::c_uchar,
9434                       outlen: *mut ::std::os::raw::c_ulong)
9435     -> ::std::os::raw::c_int;
9436}
9437extern "C" {
9438    pub fn xcbc_memory_multi(cipher: ::std::os::raw::c_int,
9439                             key: *const ::std::os::raw::c_uchar,
9440                             keylen: ::std::os::raw::c_ulong,
9441                             out: *mut ::std::os::raw::c_uchar,
9442                             outlen: *mut ::std::os::raw::c_ulong,
9443                             in_: *const ::std::os::raw::c_uchar,
9444                             inlen: ::std::os::raw::c_ulong, ...)
9445     -> ::std::os::raw::c_int;
9446}
9447extern "C" {
9448    pub fn xcbc_file(cipher: ::std::os::raw::c_int,
9449                     key: *const ::std::os::raw::c_uchar,
9450                     keylen: ::std::os::raw::c_ulong,
9451                     filename: *const ::std::os::raw::c_char,
9452                     out: *mut ::std::os::raw::c_uchar,
9453                     outlen: *mut ::std::os::raw::c_ulong)
9454     -> ::std::os::raw::c_int;
9455}
9456extern "C" {
9457    pub fn xcbc_test() -> ::std::os::raw::c_int;
9458}
9459#[repr(C)]
9460#[derive(Copy)]
9461pub struct f9_state {
9462    pub akey: [::std::os::raw::c_uchar; 128usize],
9463    pub ACC: [::std::os::raw::c_uchar; 128usize],
9464    pub IV: [::std::os::raw::c_uchar; 128usize],
9465    pub key: symmetric_key,
9466    pub cipher: ::std::os::raw::c_int,
9467    pub buflen: ::std::os::raw::c_int,
9468    pub keylen: ::std::os::raw::c_int,
9469    pub blocksize: ::std::os::raw::c_int,
9470}
9471#[test]
9472fn bindgen_test_layout_f9_state() {
9473    assert_eq!(::std::mem::size_of::<f9_state>() , 4656usize , concat ! (
9474               "Size of: " , stringify ! ( f9_state ) ));
9475    assert_eq! (::std::mem::align_of::<f9_state>() , 8usize , concat ! (
9476                "Alignment of " , stringify ! ( f9_state ) ));
9477    assert_eq! (unsafe {
9478                & ( * ( 0 as * const f9_state ) ) . akey as * const _ as usize
9479                } , 0usize , concat ! (
9480                "Alignment of field: " , stringify ! ( f9_state ) , "::" ,
9481                stringify ! ( akey ) ));
9482    assert_eq! (unsafe {
9483                & ( * ( 0 as * const f9_state ) ) . ACC as * const _ as usize
9484                } , 128usize , concat ! (
9485                "Alignment of field: " , stringify ! ( f9_state ) , "::" ,
9486                stringify ! ( ACC ) ));
9487    assert_eq! (unsafe {
9488                & ( * ( 0 as * const f9_state ) ) . IV as * const _ as usize }
9489                , 256usize , concat ! (
9490                "Alignment of field: " , stringify ! ( f9_state ) , "::" ,
9491                stringify ! ( IV ) ));
9492    assert_eq! (unsafe {
9493                & ( * ( 0 as * const f9_state ) ) . key as * const _ as usize
9494                } , 384usize , concat ! (
9495                "Alignment of field: " , stringify ! ( f9_state ) , "::" ,
9496                stringify ! ( key ) ));
9497    assert_eq! (unsafe {
9498                & ( * ( 0 as * const f9_state ) ) . cipher as * const _ as
9499                usize } , 4640usize , concat ! (
9500                "Alignment of field: " , stringify ! ( f9_state ) , "::" ,
9501                stringify ! ( cipher ) ));
9502    assert_eq! (unsafe {
9503                & ( * ( 0 as * const f9_state ) ) . buflen as * const _ as
9504                usize } , 4644usize , concat ! (
9505                "Alignment of field: " , stringify ! ( f9_state ) , "::" ,
9506                stringify ! ( buflen ) ));
9507    assert_eq! (unsafe {
9508                & ( * ( 0 as * const f9_state ) ) . keylen as * const _ as
9509                usize } , 4648usize , concat ! (
9510                "Alignment of field: " , stringify ! ( f9_state ) , "::" ,
9511                stringify ! ( keylen ) ));
9512    assert_eq! (unsafe {
9513                & ( * ( 0 as * const f9_state ) ) . blocksize as * const _ as
9514                usize } , 4652usize , concat ! (
9515                "Alignment of field: " , stringify ! ( f9_state ) , "::" ,
9516                stringify ! ( blocksize ) ));
9517}
9518impl Clone for f9_state {
9519    fn clone(&self) -> Self { *self }
9520}
9521extern "C" {
9522    pub fn f9_init(f9: *mut f9_state, cipher: ::std::os::raw::c_int,
9523                   key: *const ::std::os::raw::c_uchar,
9524                   keylen: ::std::os::raw::c_ulong) -> ::std::os::raw::c_int;
9525}
9526extern "C" {
9527    pub fn f9_process(f9: *mut f9_state, in_: *const ::std::os::raw::c_uchar,
9528                      inlen: ::std::os::raw::c_ulong)
9529     -> ::std::os::raw::c_int;
9530}
9531extern "C" {
9532    pub fn f9_done(f9: *mut f9_state, out: *mut ::std::os::raw::c_uchar,
9533                   outlen: *mut ::std::os::raw::c_ulong)
9534     -> ::std::os::raw::c_int;
9535}
9536extern "C" {
9537    pub fn f9_memory(cipher: ::std::os::raw::c_int,
9538                     key: *const ::std::os::raw::c_uchar,
9539                     keylen: ::std::os::raw::c_ulong,
9540                     in_: *const ::std::os::raw::c_uchar,
9541                     inlen: ::std::os::raw::c_ulong,
9542                     out: *mut ::std::os::raw::c_uchar,
9543                     outlen: *mut ::std::os::raw::c_ulong)
9544     -> ::std::os::raw::c_int;
9545}
9546extern "C" {
9547    pub fn f9_memory_multi(cipher: ::std::os::raw::c_int,
9548                           key: *const ::std::os::raw::c_uchar,
9549                           keylen: ::std::os::raw::c_ulong,
9550                           out: *mut ::std::os::raw::c_uchar,
9551                           outlen: *mut ::std::os::raw::c_ulong,
9552                           in_: *const ::std::os::raw::c_uchar,
9553                           inlen: ::std::os::raw::c_ulong, ...)
9554     -> ::std::os::raw::c_int;
9555}
9556extern "C" {
9557    pub fn f9_file(cipher: ::std::os::raw::c_int,
9558                   key: *const ::std::os::raw::c_uchar,
9559                   keylen: ::std::os::raw::c_ulong,
9560                   filename: *const ::std::os::raw::c_char,
9561                   out: *mut ::std::os::raw::c_uchar,
9562                   outlen: *mut ::std::os::raw::c_ulong)
9563     -> ::std::os::raw::c_int;
9564}
9565extern "C" {
9566    pub fn f9_test() -> ::std::os::raw::c_int;
9567}
9568#[repr(C)]
9569#[derive(Copy)]
9570pub struct chacha20poly1305_state {
9571    pub poly: poly1305_state,
9572    pub chacha: chacha_state,
9573    pub aadlen: ulong64,
9574    pub ctlen: ulong64,
9575    pub aadflg: ::std::os::raw::c_int,
9576}
9577#[test]
9578fn bindgen_test_layout_chacha20poly1305_state() {
9579    assert_eq!(::std::mem::size_of::<chacha20poly1305_state>() , 264usize ,
9580               concat ! ( "Size of: " , stringify ! ( chacha20poly1305_state )
9581               ));
9582    assert_eq! (::std::mem::align_of::<chacha20poly1305_state>() , 8usize ,
9583                concat ! (
9584                "Alignment of " , stringify ! ( chacha20poly1305_state ) ));
9585    assert_eq! (unsafe {
9586                & ( * ( 0 as * const chacha20poly1305_state ) ) . poly as *
9587                const _ as usize } , 0usize , concat ! (
9588                "Alignment of field: " , stringify ! ( chacha20poly1305_state
9589                ) , "::" , stringify ! ( poly ) ));
9590    assert_eq! (unsafe {
9591                & ( * ( 0 as * const chacha20poly1305_state ) ) . chacha as *
9592                const _ as usize } , 88usize , concat ! (
9593                "Alignment of field: " , stringify ! ( chacha20poly1305_state
9594                ) , "::" , stringify ! ( chacha ) ));
9595    assert_eq! (unsafe {
9596                & ( * ( 0 as * const chacha20poly1305_state ) ) . aadlen as *
9597                const _ as usize } , 240usize , concat ! (
9598                "Alignment of field: " , stringify ! ( chacha20poly1305_state
9599                ) , "::" , stringify ! ( aadlen ) ));
9600    assert_eq! (unsafe {
9601                & ( * ( 0 as * const chacha20poly1305_state ) ) . ctlen as *
9602                const _ as usize } , 248usize , concat ! (
9603                "Alignment of field: " , stringify ! ( chacha20poly1305_state
9604                ) , "::" , stringify ! ( ctlen ) ));
9605    assert_eq! (unsafe {
9606                & ( * ( 0 as * const chacha20poly1305_state ) ) . aadflg as *
9607                const _ as usize } , 256usize , concat ! (
9608                "Alignment of field: " , stringify ! ( chacha20poly1305_state
9609                ) , "::" , stringify ! ( aadflg ) ));
9610}
9611impl Clone for chacha20poly1305_state {
9612    fn clone(&self) -> Self { *self }
9613}
9614extern "C" {
9615    pub fn chacha20poly1305_init(st: *mut chacha20poly1305_state,
9616                                 key: *const ::std::os::raw::c_uchar,
9617                                 keylen: ::std::os::raw::c_ulong)
9618     -> ::std::os::raw::c_int;
9619}
9620extern "C" {
9621    pub fn chacha20poly1305_setiv(st: *mut chacha20poly1305_state,
9622                                  iv: *const ::std::os::raw::c_uchar,
9623                                  ivlen: ::std::os::raw::c_ulong)
9624     -> ::std::os::raw::c_int;
9625}
9626extern "C" {
9627    pub fn chacha20poly1305_setiv_rfc7905(st: *mut chacha20poly1305_state,
9628                                          iv: *const ::std::os::raw::c_uchar,
9629                                          ivlen: ::std::os::raw::c_ulong,
9630                                          sequence_number: ulong64)
9631     -> ::std::os::raw::c_int;
9632}
9633extern "C" {
9634    pub fn chacha20poly1305_add_aad(st: *mut chacha20poly1305_state,
9635                                    in_: *const ::std::os::raw::c_uchar,
9636                                    inlen: ::std::os::raw::c_ulong)
9637     -> ::std::os::raw::c_int;
9638}
9639extern "C" {
9640    pub fn chacha20poly1305_encrypt(st: *mut chacha20poly1305_state,
9641                                    in_: *const ::std::os::raw::c_uchar,
9642                                    inlen: ::std::os::raw::c_ulong,
9643                                    out: *mut ::std::os::raw::c_uchar)
9644     -> ::std::os::raw::c_int;
9645}
9646extern "C" {
9647    pub fn chacha20poly1305_decrypt(st: *mut chacha20poly1305_state,
9648                                    in_: *const ::std::os::raw::c_uchar,
9649                                    inlen: ::std::os::raw::c_ulong,
9650                                    out: *mut ::std::os::raw::c_uchar)
9651     -> ::std::os::raw::c_int;
9652}
9653extern "C" {
9654    pub fn chacha20poly1305_done(st: *mut chacha20poly1305_state,
9655                                 tag: *mut ::std::os::raw::c_uchar,
9656                                 taglen: *mut ::std::os::raw::c_ulong)
9657     -> ::std::os::raw::c_int;
9658}
9659extern "C" {
9660    pub fn chacha20poly1305_memory(key: *const ::std::os::raw::c_uchar,
9661                                   keylen: ::std::os::raw::c_ulong,
9662                                   iv: *const ::std::os::raw::c_uchar,
9663                                   ivlen: ::std::os::raw::c_ulong,
9664                                   aad: *const ::std::os::raw::c_uchar,
9665                                   aadlen: ::std::os::raw::c_ulong,
9666                                   in_: *const ::std::os::raw::c_uchar,
9667                                   inlen: ::std::os::raw::c_ulong,
9668                                   out: *mut ::std::os::raw::c_uchar,
9669                                   tag: *mut ::std::os::raw::c_uchar,
9670                                   taglen: *mut ::std::os::raw::c_ulong,
9671                                   direction: ::std::os::raw::c_int)
9672     -> ::std::os::raw::c_int;
9673}
9674extern "C" {
9675    pub fn chacha20poly1305_test() -> ::std::os::raw::c_int;
9676}
9677#[repr(C)]
9678#[derive(Copy)]
9679pub struct yarrow_prng {
9680    pub cipher: ::std::os::raw::c_int,
9681    pub hash: ::std::os::raw::c_int,
9682    pub pool: [::std::os::raw::c_uchar; 128usize],
9683    pub ctr: symmetric_CTR,
9684}
9685#[test]
9686fn bindgen_test_layout_yarrow_prng() {
9687    assert_eq!(::std::mem::size_of::<yarrow_prng>() , 4672usize , concat ! (
9688               "Size of: " , stringify ! ( yarrow_prng ) ));
9689    assert_eq! (::std::mem::align_of::<yarrow_prng>() , 8usize , concat ! (
9690                "Alignment of " , stringify ! ( yarrow_prng ) ));
9691    assert_eq! (unsafe {
9692                & ( * ( 0 as * const yarrow_prng ) ) . cipher as * const _ as
9693                usize } , 0usize , concat ! (
9694                "Alignment of field: " , stringify ! ( yarrow_prng ) , "::" ,
9695                stringify ! ( cipher ) ));
9696    assert_eq! (unsafe {
9697                & ( * ( 0 as * const yarrow_prng ) ) . hash as * const _ as
9698                usize } , 4usize , concat ! (
9699                "Alignment of field: " , stringify ! ( yarrow_prng ) , "::" ,
9700                stringify ! ( hash ) ));
9701    assert_eq! (unsafe {
9702                & ( * ( 0 as * const yarrow_prng ) ) . pool as * const _ as
9703                usize } , 8usize , concat ! (
9704                "Alignment of field: " , stringify ! ( yarrow_prng ) , "::" ,
9705                stringify ! ( pool ) ));
9706    assert_eq! (unsafe {
9707                & ( * ( 0 as * const yarrow_prng ) ) . ctr as * const _ as
9708                usize } , 136usize , concat ! (
9709                "Alignment of field: " , stringify ! ( yarrow_prng ) , "::" ,
9710                stringify ! ( ctr ) ));
9711}
9712impl Clone for yarrow_prng {
9713    fn clone(&self) -> Self { *self }
9714}
9715#[repr(C)]
9716#[derive(Copy)]
9717pub struct rc4_prng {
9718    pub s: rc4_state,
9719}
9720#[test]
9721fn bindgen_test_layout_rc4_prng() {
9722    assert_eq!(::std::mem::size_of::<rc4_prng>() , 264usize , concat ! (
9723               "Size of: " , stringify ! ( rc4_prng ) ));
9724    assert_eq! (::std::mem::align_of::<rc4_prng>() , 4usize , concat ! (
9725                "Alignment of " , stringify ! ( rc4_prng ) ));
9726    assert_eq! (unsafe {
9727                & ( * ( 0 as * const rc4_prng ) ) . s as * const _ as usize }
9728                , 0usize , concat ! (
9729                "Alignment of field: " , stringify ! ( rc4_prng ) , "::" ,
9730                stringify ! ( s ) ));
9731}
9732impl Clone for rc4_prng {
9733    fn clone(&self) -> Self { *self }
9734}
9735#[repr(C)]
9736#[derive(Copy)]
9737pub struct chacha20_prng {
9738    pub s: chacha_state,
9739    pub ent: [::std::os::raw::c_uchar; 40usize],
9740    pub idx: ::std::os::raw::c_ulong,
9741}
9742#[test]
9743fn bindgen_test_layout_chacha20_prng() {
9744    assert_eq!(::std::mem::size_of::<chacha20_prng>() , 200usize , concat ! (
9745               "Size of: " , stringify ! ( chacha20_prng ) ));
9746    assert_eq! (::std::mem::align_of::<chacha20_prng>() , 8usize , concat ! (
9747                "Alignment of " , stringify ! ( chacha20_prng ) ));
9748    assert_eq! (unsafe {
9749                & ( * ( 0 as * const chacha20_prng ) ) . s as * const _ as
9750                usize } , 0usize , concat ! (
9751                "Alignment of field: " , stringify ! ( chacha20_prng ) , "::"
9752                , stringify ! ( s ) ));
9753    assert_eq! (unsafe {
9754                & ( * ( 0 as * const chacha20_prng ) ) . ent as * const _ as
9755                usize } , 152usize , concat ! (
9756                "Alignment of field: " , stringify ! ( chacha20_prng ) , "::"
9757                , stringify ! ( ent ) ));
9758    assert_eq! (unsafe {
9759                & ( * ( 0 as * const chacha20_prng ) ) . idx as * const _ as
9760                usize } , 192usize , concat ! (
9761                "Alignment of field: " , stringify ! ( chacha20_prng ) , "::"
9762                , stringify ! ( idx ) ));
9763}
9764impl Clone for chacha20_prng {
9765    fn clone(&self) -> Self { *self }
9766}
9767#[repr(C)]
9768#[derive(Copy)]
9769pub struct fortuna_prng {
9770    pub pool: [hash_state; 32usize],
9771    pub skey: symmetric_key,
9772    pub K: [::std::os::raw::c_uchar; 32usize],
9773    pub IV: [::std::os::raw::c_uchar; 16usize],
9774    pub pool_idx: ::std::os::raw::c_ulong,
9775    pub pool0_len: ::std::os::raw::c_ulong,
9776    pub wd: ::std::os::raw::c_ulong,
9777    pub reset_cnt: ulong64,
9778}
9779#[test]
9780fn bindgen_test_layout_fortuna_prng() {
9781    assert_eq!(::std::mem::size_of::<fortuna_prng>() , 17648usize , concat ! (
9782               "Size of: " , stringify ! ( fortuna_prng ) ));
9783    assert_eq! (::std::mem::align_of::<fortuna_prng>() , 8usize , concat ! (
9784                "Alignment of " , stringify ! ( fortuna_prng ) ));
9785    assert_eq! (unsafe {
9786                & ( * ( 0 as * const fortuna_prng ) ) . pool as * const _ as
9787                usize } , 0usize , concat ! (
9788                "Alignment of field: " , stringify ! ( fortuna_prng ) , "::" ,
9789                stringify ! ( pool ) ));
9790    assert_eq! (unsafe {
9791                & ( * ( 0 as * const fortuna_prng ) ) . skey as * const _ as
9792                usize } , 13312usize , concat ! (
9793                "Alignment of field: " , stringify ! ( fortuna_prng ) , "::" ,
9794                stringify ! ( skey ) ));
9795    assert_eq! (unsafe {
9796                & ( * ( 0 as * const fortuna_prng ) ) . K as * const _ as
9797                usize } , 17568usize , concat ! (
9798                "Alignment of field: " , stringify ! ( fortuna_prng ) , "::" ,
9799                stringify ! ( K ) ));
9800    assert_eq! (unsafe {
9801                & ( * ( 0 as * const fortuna_prng ) ) . IV as * const _ as
9802                usize } , 17600usize , concat ! (
9803                "Alignment of field: " , stringify ! ( fortuna_prng ) , "::" ,
9804                stringify ! ( IV ) ));
9805    assert_eq! (unsafe {
9806                & ( * ( 0 as * const fortuna_prng ) ) . pool_idx as * const _
9807                as usize } , 17616usize , concat ! (
9808                "Alignment of field: " , stringify ! ( fortuna_prng ) , "::" ,
9809                stringify ! ( pool_idx ) ));
9810    assert_eq! (unsafe {
9811                & ( * ( 0 as * const fortuna_prng ) ) . pool0_len as * const _
9812                as usize } , 17624usize , concat ! (
9813                "Alignment of field: " , stringify ! ( fortuna_prng ) , "::" ,
9814                stringify ! ( pool0_len ) ));
9815    assert_eq! (unsafe {
9816                & ( * ( 0 as * const fortuna_prng ) ) . wd as * const _ as
9817                usize } , 17632usize , concat ! (
9818                "Alignment of field: " , stringify ! ( fortuna_prng ) , "::" ,
9819                stringify ! ( wd ) ));
9820    assert_eq! (unsafe {
9821                & ( * ( 0 as * const fortuna_prng ) ) . reset_cnt as * const _
9822                as usize } , 17640usize , concat ! (
9823                "Alignment of field: " , stringify ! ( fortuna_prng ) , "::" ,
9824                stringify ! ( reset_cnt ) ));
9825}
9826impl Clone for fortuna_prng {
9827    fn clone(&self) -> Self { *self }
9828}
9829#[repr(C)]
9830#[derive(Copy)]
9831pub struct sober128_prng {
9832    pub s: sober128_state,
9833    pub ent: [::std::os::raw::c_uchar; 40usize],
9834    pub idx: ::std::os::raw::c_ulong,
9835}
9836#[test]
9837fn bindgen_test_layout_sober128_prng() {
9838    assert_eq!(::std::mem::size_of::<sober128_prng>() , 200usize , concat ! (
9839               "Size of: " , stringify ! ( sober128_prng ) ));
9840    assert_eq! (::std::mem::align_of::<sober128_prng>() , 8usize , concat ! (
9841                "Alignment of " , stringify ! ( sober128_prng ) ));
9842    assert_eq! (unsafe {
9843                & ( * ( 0 as * const sober128_prng ) ) . s as * const _ as
9844                usize } , 0usize , concat ! (
9845                "Alignment of field: " , stringify ! ( sober128_prng ) , "::"
9846                , stringify ! ( s ) ));
9847    assert_eq! (unsafe {
9848                & ( * ( 0 as * const sober128_prng ) ) . ent as * const _ as
9849                usize } , 148usize , concat ! (
9850                "Alignment of field: " , stringify ! ( sober128_prng ) , "::"
9851                , stringify ! ( ent ) ));
9852    assert_eq! (unsafe {
9853                & ( * ( 0 as * const sober128_prng ) ) . idx as * const _ as
9854                usize } , 192usize , concat ! (
9855                "Alignment of field: " , stringify ! ( sober128_prng ) , "::"
9856                , stringify ! ( idx ) ));
9857}
9858impl Clone for sober128_prng {
9859    fn clone(&self) -> Self { *self }
9860}
9861#[repr(C)]
9862#[derive(Copy)]
9863pub struct prng_state {
9864    pub __bindgen_anon_1: prng_state__bindgen_ty_1,
9865    pub ready: ::std::os::raw::c_short,
9866}
9867#[repr(C)]
9868#[derive(Copy)]
9869pub union prng_state__bindgen_ty_1 {
9870    pub dummy: [::std::os::raw::c_char; 1usize],
9871    pub yarrow: yarrow_prng,
9872    pub rc4: rc4_prng,
9873    pub chacha: chacha20_prng,
9874    pub fortuna: fortuna_prng,
9875    pub sober128: sober128_prng,
9876    _bindgen_union_align: [u64; 2206usize],
9877}
9878#[test]
9879fn bindgen_test_layout_prng_state__bindgen_ty_1() {
9880    assert_eq!(::std::mem::size_of::<prng_state__bindgen_ty_1>() , 17648usize
9881               , concat ! (
9882               "Size of: " , stringify ! ( prng_state__bindgen_ty_1 ) ));
9883    assert_eq! (::std::mem::align_of::<prng_state__bindgen_ty_1>() , 8usize ,
9884                concat ! (
9885                "Alignment of " , stringify ! ( prng_state__bindgen_ty_1 ) ));
9886    assert_eq! (unsafe {
9887                & ( * ( 0 as * const prng_state__bindgen_ty_1 ) ) . dummy as *
9888                const _ as usize } , 0usize , concat ! (
9889                "Alignment of field: " , stringify ! (
9890                prng_state__bindgen_ty_1 ) , "::" , stringify ! ( dummy ) ));
9891    assert_eq! (unsafe {
9892                & ( * ( 0 as * const prng_state__bindgen_ty_1 ) ) . yarrow as
9893                * const _ as usize } , 0usize , concat ! (
9894                "Alignment of field: " , stringify ! (
9895                prng_state__bindgen_ty_1 ) , "::" , stringify ! ( yarrow ) ));
9896    assert_eq! (unsafe {
9897                & ( * ( 0 as * const prng_state__bindgen_ty_1 ) ) . rc4 as *
9898                const _ as usize } , 0usize , concat ! (
9899                "Alignment of field: " , stringify ! (
9900                prng_state__bindgen_ty_1 ) , "::" , stringify ! ( rc4 ) ));
9901    assert_eq! (unsafe {
9902                & ( * ( 0 as * const prng_state__bindgen_ty_1 ) ) . chacha as
9903                * const _ as usize } , 0usize , concat ! (
9904                "Alignment of field: " , stringify ! (
9905                prng_state__bindgen_ty_1 ) , "::" , stringify ! ( chacha ) ));
9906    assert_eq! (unsafe {
9907                & ( * ( 0 as * const prng_state__bindgen_ty_1 ) ) . fortuna as
9908                * const _ as usize } , 0usize , concat ! (
9909                "Alignment of field: " , stringify ! (
9910                prng_state__bindgen_ty_1 ) , "::" , stringify ! ( fortuna )
9911                ));
9912    assert_eq! (unsafe {
9913                & ( * ( 0 as * const prng_state__bindgen_ty_1 ) ) . sober128
9914                as * const _ as usize } , 0usize , concat ! (
9915                "Alignment of field: " , stringify ! (
9916                prng_state__bindgen_ty_1 ) , "::" , stringify ! ( sober128 )
9917                ));
9918}
9919impl Clone for prng_state__bindgen_ty_1 {
9920    fn clone(&self) -> Self { *self }
9921}
9922#[test]
9923fn bindgen_test_layout_prng_state() {
9924    assert_eq!(::std::mem::size_of::<prng_state>() , 17656usize , concat ! (
9925               "Size of: " , stringify ! ( prng_state ) ));
9926    assert_eq! (::std::mem::align_of::<prng_state>() , 8usize , concat ! (
9927                "Alignment of " , stringify ! ( prng_state ) ));
9928    assert_eq! (unsafe {
9929                & ( * ( 0 as * const prng_state ) ) . ready as * const _ as
9930                usize } , 17648usize , concat ! (
9931                "Alignment of field: " , stringify ! ( prng_state ) , "::" ,
9932                stringify ! ( ready ) ));
9933}
9934impl Clone for prng_state {
9935    fn clone(&self) -> Self { *self }
9936}
9937/// PRNG descriptor
9938#[repr(C)]
9939#[derive(Debug, Copy)]
9940pub struct ltc_prng_descriptor {
9941    /// Name of the PRNG
9942    pub name: *const ::std::os::raw::c_char,
9943    /// size in bytes of exported state
9944    pub export_size: ::std::os::raw::c_int,
9945    /// Start a PRNG state
9946    /// @param prng   [out] The state to initialize
9947    /// @return CRYPT_OK if successful
9948    pub start: ::std::option::Option<unsafe extern "C" fn(prng:
9949                                                              *mut prng_state)
9950                                         -> ::std::os::raw::c_int>,
9951    /// Add entropy to the PRNG
9952    /// @param in         The entropy
9953    /// @param inlen      Length of the entropy (octets)\
9954    /// @param prng       The PRNG state
9955    /// @return CRYPT_OK if successful
9956    pub add_entropy: ::std::option::Option<unsafe extern "C" fn(in_:
9957                                                                    *const ::std::os::raw::c_uchar,
9958                                                                inlen:
9959                                                                    ::std::os::raw::c_ulong,
9960                                                                prng:
9961                                                                    *mut prng_state)
9962                                               -> ::std::os::raw::c_int>,
9963    /// Ready a PRNG state to read from
9964    /// @param prng       The PRNG state to ready
9965    /// @return CRYPT_OK if successful
9966    pub ready: ::std::option::Option<unsafe extern "C" fn(prng:
9967                                                              *mut prng_state)
9968                                         -> ::std::os::raw::c_int>,
9969    /// Read from the PRNG
9970    /// @param out     [out] Where to store the data
9971    /// @param outlen  Length of data desired (octets)
9972    /// @param prng    The PRNG state to read from
9973    /// @return Number of octets read
9974    pub read: ::std::option::Option<unsafe extern "C" fn(out:
9975                                                             *mut ::std::os::raw::c_uchar,
9976                                                         outlen:
9977                                                             ::std::os::raw::c_ulong,
9978                                                         prng:
9979                                                             *mut prng_state)
9980                                        -> ::std::os::raw::c_ulong>,
9981    /// Terminate a PRNG state
9982    /// @param prng   The PRNG state to terminate
9983    /// @return CRYPT_OK if successful
9984    pub done: ::std::option::Option<unsafe extern "C" fn(prng:
9985                                                             *mut prng_state)
9986                                        -> ::std::os::raw::c_int>,
9987    /// Export a PRNG state
9988    /// @param out     [out] The destination for the state
9989    /// @param outlen  [in/out] The max size and resulting size of the PRNG state
9990    /// @param prng    The PRNG to export
9991    /// @return CRYPT_OK if successful
9992    pub pexport: ::std::option::Option<unsafe extern "C" fn(out:
9993                                                                *mut ::std::os::raw::c_uchar,
9994                                                            outlen:
9995                                                                *mut ::std::os::raw::c_ulong,
9996                                                            prng:
9997                                                                *mut prng_state)
9998                                           -> ::std::os::raw::c_int>,
9999    /// Import a PRNG state
10000    /// @param in      The data to import
10001    /// @param inlen   The length of the data to import (octets)
10002    /// @param prng    The PRNG to initialize/import
10003    /// @return CRYPT_OK if successful
10004    pub pimport: ::std::option::Option<unsafe extern "C" fn(in_:
10005                                                                *const ::std::os::raw::c_uchar,
10006                                                            inlen:
10007                                                                ::std::os::raw::c_ulong,
10008                                                            prng:
10009                                                                *mut prng_state)
10010                                           -> ::std::os::raw::c_int>,
10011    /// Self-test the PRNG
10012    /// @return CRYPT_OK if successful, CRYPT_NOP if self-testing has been disabled
10013    pub test: ::std::option::Option<unsafe extern "C" fn()
10014                                        -> ::std::os::raw::c_int>,
10015}
10016#[test]
10017fn bindgen_test_layout_ltc_prng_descriptor() {
10018    assert_eq!(::std::mem::size_of::<ltc_prng_descriptor>() , 80usize , concat
10019               ! ( "Size of: " , stringify ! ( ltc_prng_descriptor ) ));
10020    assert_eq! (::std::mem::align_of::<ltc_prng_descriptor>() , 8usize ,
10021                concat ! (
10022                "Alignment of " , stringify ! ( ltc_prng_descriptor ) ));
10023    assert_eq! (unsafe {
10024                & ( * ( 0 as * const ltc_prng_descriptor ) ) . name as * const
10025                _ as usize } , 0usize , concat ! (
10026                "Alignment of field: " , stringify ! ( ltc_prng_descriptor ) ,
10027                "::" , stringify ! ( name ) ));
10028    assert_eq! (unsafe {
10029                & ( * ( 0 as * const ltc_prng_descriptor ) ) . export_size as
10030                * const _ as usize } , 8usize , concat ! (
10031                "Alignment of field: " , stringify ! ( ltc_prng_descriptor ) ,
10032                "::" , stringify ! ( export_size ) ));
10033    assert_eq! (unsafe {
10034                & ( * ( 0 as * const ltc_prng_descriptor ) ) . start as *
10035                const _ as usize } , 16usize , concat ! (
10036                "Alignment of field: " , stringify ! ( ltc_prng_descriptor ) ,
10037                "::" , stringify ! ( start ) ));
10038    assert_eq! (unsafe {
10039                & ( * ( 0 as * const ltc_prng_descriptor ) ) . add_entropy as
10040                * const _ as usize } , 24usize , concat ! (
10041                "Alignment of field: " , stringify ! ( ltc_prng_descriptor ) ,
10042                "::" , stringify ! ( add_entropy ) ));
10043    assert_eq! (unsafe {
10044                & ( * ( 0 as * const ltc_prng_descriptor ) ) . ready as *
10045                const _ as usize } , 32usize , concat ! (
10046                "Alignment of field: " , stringify ! ( ltc_prng_descriptor ) ,
10047                "::" , stringify ! ( ready ) ));
10048    assert_eq! (unsafe {
10049                & ( * ( 0 as * const ltc_prng_descriptor ) ) . read as * const
10050                _ as usize } , 40usize , concat ! (
10051                "Alignment of field: " , stringify ! ( ltc_prng_descriptor ) ,
10052                "::" , stringify ! ( read ) ));
10053    assert_eq! (unsafe {
10054                & ( * ( 0 as * const ltc_prng_descriptor ) ) . done as * const
10055                _ as usize } , 48usize , concat ! (
10056                "Alignment of field: " , stringify ! ( ltc_prng_descriptor ) ,
10057                "::" , stringify ! ( done ) ));
10058    assert_eq! (unsafe {
10059                & ( * ( 0 as * const ltc_prng_descriptor ) ) . pexport as *
10060                const _ as usize } , 56usize , concat ! (
10061                "Alignment of field: " , stringify ! ( ltc_prng_descriptor ) ,
10062                "::" , stringify ! ( pexport ) ));
10063    assert_eq! (unsafe {
10064                & ( * ( 0 as * const ltc_prng_descriptor ) ) . pimport as *
10065                const _ as usize } , 64usize , concat ! (
10066                "Alignment of field: " , stringify ! ( ltc_prng_descriptor ) ,
10067                "::" , stringify ! ( pimport ) ));
10068    assert_eq! (unsafe {
10069                & ( * ( 0 as * const ltc_prng_descriptor ) ) . test as * const
10070                _ as usize } , 72usize , concat ! (
10071                "Alignment of field: " , stringify ! ( ltc_prng_descriptor ) ,
10072                "::" , stringify ! ( test ) ));
10073}
10074impl Clone for ltc_prng_descriptor {
10075    fn clone(&self) -> Self { *self }
10076}
10077extern "C" {
10078    #[link_name = "prng_descriptor"]
10079    pub static mut prng_descriptor: [ltc_prng_descriptor; 0usize];
10080}
10081extern "C" {
10082    pub fn yarrow_start(prng: *mut prng_state) -> ::std::os::raw::c_int;
10083}
10084extern "C" {
10085    pub fn yarrow_add_entropy(in_: *const ::std::os::raw::c_uchar,
10086                              inlen: ::std::os::raw::c_ulong,
10087                              prng: *mut prng_state) -> ::std::os::raw::c_int;
10088}
10089extern "C" {
10090    pub fn yarrow_ready(prng: *mut prng_state) -> ::std::os::raw::c_int;
10091}
10092extern "C" {
10093    pub fn yarrow_read(out: *mut ::std::os::raw::c_uchar,
10094                       outlen: ::std::os::raw::c_ulong, prng: *mut prng_state)
10095     -> ::std::os::raw::c_ulong;
10096}
10097extern "C" {
10098    pub fn yarrow_done(prng: *mut prng_state) -> ::std::os::raw::c_int;
10099}
10100extern "C" {
10101    pub fn yarrow_export(out: *mut ::std::os::raw::c_uchar,
10102                         outlen: *mut ::std::os::raw::c_ulong,
10103                         prng: *mut prng_state) -> ::std::os::raw::c_int;
10104}
10105extern "C" {
10106    pub fn yarrow_import(in_: *const ::std::os::raw::c_uchar,
10107                         inlen: ::std::os::raw::c_ulong,
10108                         prng: *mut prng_state) -> ::std::os::raw::c_int;
10109}
10110extern "C" {
10111    pub fn yarrow_test() -> ::std::os::raw::c_int;
10112}
10113extern "C" {
10114    #[link_name = "yarrow_desc"]
10115    pub static yarrow_desc: ltc_prng_descriptor;
10116}
10117extern "C" {
10118    pub fn fortuna_start(prng: *mut prng_state) -> ::std::os::raw::c_int;
10119}
10120extern "C" {
10121    pub fn fortuna_add_entropy(in_: *const ::std::os::raw::c_uchar,
10122                               inlen: ::std::os::raw::c_ulong,
10123                               prng: *mut prng_state)
10124     -> ::std::os::raw::c_int;
10125}
10126extern "C" {
10127    pub fn fortuna_ready(prng: *mut prng_state) -> ::std::os::raw::c_int;
10128}
10129extern "C" {
10130    pub fn fortuna_read(out: *mut ::std::os::raw::c_uchar,
10131                        outlen: ::std::os::raw::c_ulong,
10132                        prng: *mut prng_state) -> ::std::os::raw::c_ulong;
10133}
10134extern "C" {
10135    pub fn fortuna_done(prng: *mut prng_state) -> ::std::os::raw::c_int;
10136}
10137extern "C" {
10138    pub fn fortuna_export(out: *mut ::std::os::raw::c_uchar,
10139                          outlen: *mut ::std::os::raw::c_ulong,
10140                          prng: *mut prng_state) -> ::std::os::raw::c_int;
10141}
10142extern "C" {
10143    pub fn fortuna_import(in_: *const ::std::os::raw::c_uchar,
10144                          inlen: ::std::os::raw::c_ulong,
10145                          prng: *mut prng_state) -> ::std::os::raw::c_int;
10146}
10147extern "C" {
10148    pub fn fortuna_test() -> ::std::os::raw::c_int;
10149}
10150extern "C" {
10151    #[link_name = "fortuna_desc"]
10152    pub static fortuna_desc: ltc_prng_descriptor;
10153}
10154extern "C" {
10155    pub fn rc4_start(prng: *mut prng_state) -> ::std::os::raw::c_int;
10156}
10157extern "C" {
10158    pub fn rc4_add_entropy(in_: *const ::std::os::raw::c_uchar,
10159                           inlen: ::std::os::raw::c_ulong,
10160                           prng: *mut prng_state) -> ::std::os::raw::c_int;
10161}
10162extern "C" {
10163    pub fn rc4_ready(prng: *mut prng_state) -> ::std::os::raw::c_int;
10164}
10165extern "C" {
10166    pub fn rc4_read(out: *mut ::std::os::raw::c_uchar,
10167                    outlen: ::std::os::raw::c_ulong, prng: *mut prng_state)
10168     -> ::std::os::raw::c_ulong;
10169}
10170extern "C" {
10171    pub fn rc4_done(prng: *mut prng_state) -> ::std::os::raw::c_int;
10172}
10173extern "C" {
10174    pub fn rc4_export(out: *mut ::std::os::raw::c_uchar,
10175                      outlen: *mut ::std::os::raw::c_ulong,
10176                      prng: *mut prng_state) -> ::std::os::raw::c_int;
10177}
10178extern "C" {
10179    pub fn rc4_import(in_: *const ::std::os::raw::c_uchar,
10180                      inlen: ::std::os::raw::c_ulong, prng: *mut prng_state)
10181     -> ::std::os::raw::c_int;
10182}
10183extern "C" {
10184    pub fn rc4_test() -> ::std::os::raw::c_int;
10185}
10186extern "C" {
10187    #[link_name = "rc4_desc"]
10188    pub static rc4_desc: ltc_prng_descriptor;
10189}
10190extern "C" {
10191    pub fn chacha20_prng_start(prng: *mut prng_state)
10192     -> ::std::os::raw::c_int;
10193}
10194extern "C" {
10195    pub fn chacha20_prng_add_entropy(in_: *const ::std::os::raw::c_uchar,
10196                                     inlen: ::std::os::raw::c_ulong,
10197                                     prng: *mut prng_state)
10198     -> ::std::os::raw::c_int;
10199}
10200extern "C" {
10201    pub fn chacha20_prng_ready(prng: *mut prng_state)
10202     -> ::std::os::raw::c_int;
10203}
10204extern "C" {
10205    pub fn chacha20_prng_read(out: *mut ::std::os::raw::c_uchar,
10206                              outlen: ::std::os::raw::c_ulong,
10207                              prng: *mut prng_state)
10208     -> ::std::os::raw::c_ulong;
10209}
10210extern "C" {
10211    pub fn chacha20_prng_done(prng: *mut prng_state) -> ::std::os::raw::c_int;
10212}
10213extern "C" {
10214    pub fn chacha20_prng_export(out: *mut ::std::os::raw::c_uchar,
10215                                outlen: *mut ::std::os::raw::c_ulong,
10216                                prng: *mut prng_state)
10217     -> ::std::os::raw::c_int;
10218}
10219extern "C" {
10220    pub fn chacha20_prng_import(in_: *const ::std::os::raw::c_uchar,
10221                                inlen: ::std::os::raw::c_ulong,
10222                                prng: *mut prng_state)
10223     -> ::std::os::raw::c_int;
10224}
10225extern "C" {
10226    pub fn chacha20_prng_test() -> ::std::os::raw::c_int;
10227}
10228extern "C" {
10229    #[link_name = "chacha20_prng_desc"]
10230    pub static chacha20_prng_desc: ltc_prng_descriptor;
10231}
10232extern "C" {
10233    pub fn sprng_start(prng: *mut prng_state) -> ::std::os::raw::c_int;
10234}
10235extern "C" {
10236    pub fn sprng_add_entropy(in_: *const ::std::os::raw::c_uchar,
10237                             inlen: ::std::os::raw::c_ulong,
10238                             prng: *mut prng_state) -> ::std::os::raw::c_int;
10239}
10240extern "C" {
10241    pub fn sprng_ready(prng: *mut prng_state) -> ::std::os::raw::c_int;
10242}
10243extern "C" {
10244    pub fn sprng_read(out: *mut ::std::os::raw::c_uchar,
10245                      outlen: ::std::os::raw::c_ulong, prng: *mut prng_state)
10246     -> ::std::os::raw::c_ulong;
10247}
10248extern "C" {
10249    pub fn sprng_done(prng: *mut prng_state) -> ::std::os::raw::c_int;
10250}
10251extern "C" {
10252    pub fn sprng_export(out: *mut ::std::os::raw::c_uchar,
10253                        outlen: *mut ::std::os::raw::c_ulong,
10254                        prng: *mut prng_state) -> ::std::os::raw::c_int;
10255}
10256extern "C" {
10257    pub fn sprng_import(in_: *const ::std::os::raw::c_uchar,
10258                        inlen: ::std::os::raw::c_ulong, prng: *mut prng_state)
10259     -> ::std::os::raw::c_int;
10260}
10261extern "C" {
10262    pub fn sprng_test() -> ::std::os::raw::c_int;
10263}
10264extern "C" {
10265    #[link_name = "sprng_desc"]
10266    pub static sprng_desc: ltc_prng_descriptor;
10267}
10268extern "C" {
10269    pub fn sober128_start(prng: *mut prng_state) -> ::std::os::raw::c_int;
10270}
10271extern "C" {
10272    pub fn sober128_add_entropy(in_: *const ::std::os::raw::c_uchar,
10273                                inlen: ::std::os::raw::c_ulong,
10274                                prng: *mut prng_state)
10275     -> ::std::os::raw::c_int;
10276}
10277extern "C" {
10278    pub fn sober128_ready(prng: *mut prng_state) -> ::std::os::raw::c_int;
10279}
10280extern "C" {
10281    pub fn sober128_read(out: *mut ::std::os::raw::c_uchar,
10282                         outlen: ::std::os::raw::c_ulong,
10283                         prng: *mut prng_state) -> ::std::os::raw::c_ulong;
10284}
10285extern "C" {
10286    pub fn sober128_done(prng: *mut prng_state) -> ::std::os::raw::c_int;
10287}
10288extern "C" {
10289    pub fn sober128_export(out: *mut ::std::os::raw::c_uchar,
10290                           outlen: *mut ::std::os::raw::c_ulong,
10291                           prng: *mut prng_state) -> ::std::os::raw::c_int;
10292}
10293extern "C" {
10294    pub fn sober128_import(in_: *const ::std::os::raw::c_uchar,
10295                           inlen: ::std::os::raw::c_ulong,
10296                           prng: *mut prng_state) -> ::std::os::raw::c_int;
10297}
10298extern "C" {
10299    pub fn sober128_test() -> ::std::os::raw::c_int;
10300}
10301extern "C" {
10302    #[link_name = "sober128_desc"]
10303    pub static sober128_desc: ltc_prng_descriptor;
10304}
10305extern "C" {
10306    pub fn find_prng(name: *const ::std::os::raw::c_char)
10307     -> ::std::os::raw::c_int;
10308}
10309extern "C" {
10310    pub fn register_prng(prng: *const ltc_prng_descriptor)
10311     -> ::std::os::raw::c_int;
10312}
10313extern "C" {
10314    pub fn unregister_prng(prng: *const ltc_prng_descriptor)
10315     -> ::std::os::raw::c_int;
10316}
10317extern "C" {
10318    pub fn register_all_prngs() -> ::std::os::raw::c_int;
10319}
10320extern "C" {
10321    pub fn prng_is_valid(idx: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
10322}
10323extern "C" {
10324    pub fn rng_get_bytes(out: *mut ::std::os::raw::c_uchar,
10325                         outlen: ::std::os::raw::c_ulong,
10326                         callback:
10327                             ::std::option::Option<unsafe extern "C" fn()>)
10328     -> ::std::os::raw::c_ulong;
10329}
10330extern "C" {
10331    pub fn rng_make_prng(bits: ::std::os::raw::c_int,
10332                         wprng: ::std::os::raw::c_int, prng: *mut prng_state,
10333                         callback:
10334                             ::std::option::Option<unsafe extern "C" fn()>)
10335     -> ::std::os::raw::c_int;
10336}
10337pub const PK_PUBLIC: _bindgen_ty_3 = _bindgen_ty_3::PK_PUBLIC;
10338pub const PK_PRIVATE: _bindgen_ty_3 = _bindgen_ty_3::PK_PRIVATE;
10339#[repr(u32)]
10340#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
10341pub enum _bindgen_ty_3 { PK_PUBLIC = 0, PK_PRIVATE = 1, }
10342extern "C" {
10343    pub fn rand_prime(N: *mut ::std::os::raw::c_void,
10344                      len: ::std::os::raw::c_long, prng: *mut prng_state,
10345                      wprng: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
10346}
10347extern "C" {
10348    pub fn rand_bn_bits(N: *mut ::std::os::raw::c_void,
10349                        bits: ::std::os::raw::c_int, prng: *mut prng_state,
10350                        wprng: ::std::os::raw::c_int)
10351     -> ::std::os::raw::c_int;
10352}
10353extern "C" {
10354    pub fn rand_bn_upto(N: *mut ::std::os::raw::c_void,
10355                        limit: *mut ::std::os::raw::c_void,
10356                        prng: *mut prng_state, wprng: ::std::os::raw::c_int)
10357     -> ::std::os::raw::c_int;
10358}
10359#[repr(u32)]
10360#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
10361pub enum public_key_algorithms { PKA_RSA = 0, PKA_DSA = 1, }
10362#[repr(C)]
10363#[derive(Debug, Copy)]
10364pub struct Oid {
10365    pub OID: [::std::os::raw::c_ulong; 16usize],
10366    /// Length of DER encoding
10367    pub OIDlen: ::std::os::raw::c_ulong,
10368}
10369#[test]
10370fn bindgen_test_layout_Oid() {
10371    assert_eq!(::std::mem::size_of::<Oid>() , 136usize , concat ! (
10372               "Size of: " , stringify ! ( Oid ) ));
10373    assert_eq! (::std::mem::align_of::<Oid>() , 8usize , concat ! (
10374                "Alignment of " , stringify ! ( Oid ) ));
10375    assert_eq! (unsafe {
10376                & ( * ( 0 as * const Oid ) ) . OID as * const _ as usize } ,
10377                0usize , concat ! (
10378                "Alignment of field: " , stringify ! ( Oid ) , "::" ,
10379                stringify ! ( OID ) ));
10380    assert_eq! (unsafe {
10381                & ( * ( 0 as * const Oid ) ) . OIDlen as * const _ as usize }
10382                , 128usize , concat ! (
10383                "Alignment of field: " , stringify ! ( Oid ) , "::" ,
10384                stringify ! ( OIDlen ) ));
10385}
10386impl Clone for Oid {
10387    fn clone(&self) -> Self { *self }
10388}
10389pub type oid_st = Oid;
10390extern "C" {
10391    pub fn pk_get_oid(pk: ::std::os::raw::c_int, st: *mut oid_st)
10392     -> ::std::os::raw::c_int;
10393}
10394/// RSA PKCS style key
10395#[repr(C)]
10396#[derive(Debug, Copy)]
10397pub struct Rsa_key {
10398    /// Type of key, PK_PRIVATE or PK_PUBLIC
10399    pub type_: ::std::os::raw::c_int,
10400    /// The public exponent
10401    pub e: *mut ::std::os::raw::c_void,
10402    /// The private exponent
10403    pub d: *mut ::std::os::raw::c_void,
10404    /// The modulus
10405    pub N: *mut ::std::os::raw::c_void,
10406    /// The p factor of N
10407    pub p: *mut ::std::os::raw::c_void,
10408    /// The q factor of N
10409    pub q: *mut ::std::os::raw::c_void,
10410    /// The 1/q mod p CRT param
10411    pub qP: *mut ::std::os::raw::c_void,
10412    /// The d mod (p - 1) CRT param
10413    pub dP: *mut ::std::os::raw::c_void,
10414    /// The d mod (q - 1) CRT param
10415    pub dQ: *mut ::std::os::raw::c_void,
10416}
10417#[test]
10418fn bindgen_test_layout_Rsa_key() {
10419    assert_eq!(::std::mem::size_of::<Rsa_key>() , 72usize , concat ! (
10420               "Size of: " , stringify ! ( Rsa_key ) ));
10421    assert_eq! (::std::mem::align_of::<Rsa_key>() , 8usize , concat ! (
10422                "Alignment of " , stringify ! ( Rsa_key ) ));
10423    assert_eq! (unsafe {
10424                & ( * ( 0 as * const Rsa_key ) ) . type_ as * const _ as usize
10425                } , 0usize , concat ! (
10426                "Alignment of field: " , stringify ! ( Rsa_key ) , "::" ,
10427                stringify ! ( type_ ) ));
10428    assert_eq! (unsafe {
10429                & ( * ( 0 as * const Rsa_key ) ) . e as * const _ as usize } ,
10430                8usize , concat ! (
10431                "Alignment of field: " , stringify ! ( Rsa_key ) , "::" ,
10432                stringify ! ( e ) ));
10433    assert_eq! (unsafe {
10434                & ( * ( 0 as * const Rsa_key ) ) . d as * const _ as usize } ,
10435                16usize , concat ! (
10436                "Alignment of field: " , stringify ! ( Rsa_key ) , "::" ,
10437                stringify ! ( d ) ));
10438    assert_eq! (unsafe {
10439                & ( * ( 0 as * const Rsa_key ) ) . N as * const _ as usize } ,
10440                24usize , concat ! (
10441                "Alignment of field: " , stringify ! ( Rsa_key ) , "::" ,
10442                stringify ! ( N ) ));
10443    assert_eq! (unsafe {
10444                & ( * ( 0 as * const Rsa_key ) ) . p as * const _ as usize } ,
10445                32usize , concat ! (
10446                "Alignment of field: " , stringify ! ( Rsa_key ) , "::" ,
10447                stringify ! ( p ) ));
10448    assert_eq! (unsafe {
10449                & ( * ( 0 as * const Rsa_key ) ) . q as * const _ as usize } ,
10450                40usize , concat ! (
10451                "Alignment of field: " , stringify ! ( Rsa_key ) , "::" ,
10452                stringify ! ( q ) ));
10453    assert_eq! (unsafe {
10454                & ( * ( 0 as * const Rsa_key ) ) . qP as * const _ as usize }
10455                , 48usize , concat ! (
10456                "Alignment of field: " , stringify ! ( Rsa_key ) , "::" ,
10457                stringify ! ( qP ) ));
10458    assert_eq! (unsafe {
10459                & ( * ( 0 as * const Rsa_key ) ) . dP as * const _ as usize }
10460                , 56usize , concat ! (
10461                "Alignment of field: " , stringify ! ( Rsa_key ) , "::" ,
10462                stringify ! ( dP ) ));
10463    assert_eq! (unsafe {
10464                & ( * ( 0 as * const Rsa_key ) ) . dQ as * const _ as usize }
10465                , 64usize , concat ! (
10466                "Alignment of field: " , stringify ! ( Rsa_key ) , "::" ,
10467                stringify ! ( dQ ) ));
10468}
10469impl Clone for Rsa_key {
10470    fn clone(&self) -> Self { *self }
10471}
10472pub type rsa_key = Rsa_key;
10473extern "C" {
10474    pub fn rsa_make_key(prng: *mut prng_state, wprng: ::std::os::raw::c_int,
10475                        size: ::std::os::raw::c_int,
10476                        e: ::std::os::raw::c_long, key: *mut rsa_key)
10477     -> ::std::os::raw::c_int;
10478}
10479extern "C" {
10480    pub fn rsa_get_size(key: *mut rsa_key) -> ::std::os::raw::c_int;
10481}
10482extern "C" {
10483    pub fn rsa_exptmod(in_: *const ::std::os::raw::c_uchar,
10484                       inlen: ::std::os::raw::c_ulong,
10485                       out: *mut ::std::os::raw::c_uchar,
10486                       outlen: *mut ::std::os::raw::c_ulong,
10487                       which: ::std::os::raw::c_int, key: *mut rsa_key)
10488     -> ::std::os::raw::c_int;
10489}
10490extern "C" {
10491    pub fn rsa_free(key: *mut rsa_key);
10492}
10493extern "C" {
10494    pub fn rsa_encrypt_key_ex(in_: *const ::std::os::raw::c_uchar,
10495                              inlen: ::std::os::raw::c_ulong,
10496                              out: *mut ::std::os::raw::c_uchar,
10497                              outlen: *mut ::std::os::raw::c_ulong,
10498                              lparam: *const ::std::os::raw::c_uchar,
10499                              lparamlen: ::std::os::raw::c_ulong,
10500                              prng: *mut prng_state,
10501                              prng_idx: ::std::os::raw::c_int,
10502                              hash_idx: ::std::os::raw::c_int,
10503                              padding: ::std::os::raw::c_int,
10504                              key: *mut rsa_key) -> ::std::os::raw::c_int;
10505}
10506extern "C" {
10507    pub fn rsa_decrypt_key_ex(in_: *const ::std::os::raw::c_uchar,
10508                              inlen: ::std::os::raw::c_ulong,
10509                              out: *mut ::std::os::raw::c_uchar,
10510                              outlen: *mut ::std::os::raw::c_ulong,
10511                              lparam: *const ::std::os::raw::c_uchar,
10512                              lparamlen: ::std::os::raw::c_ulong,
10513                              hash_idx: ::std::os::raw::c_int,
10514                              padding: ::std::os::raw::c_int,
10515                              stat: *mut ::std::os::raw::c_int,
10516                              key: *mut rsa_key) -> ::std::os::raw::c_int;
10517}
10518extern "C" {
10519    pub fn rsa_sign_hash_ex(in_: *const ::std::os::raw::c_uchar,
10520                            inlen: ::std::os::raw::c_ulong,
10521                            out: *mut ::std::os::raw::c_uchar,
10522                            outlen: *mut ::std::os::raw::c_ulong,
10523                            padding: ::std::os::raw::c_int,
10524                            prng: *mut prng_state,
10525                            prng_idx: ::std::os::raw::c_int,
10526                            hash_idx: ::std::os::raw::c_int,
10527                            saltlen: ::std::os::raw::c_ulong,
10528                            key: *mut rsa_key) -> ::std::os::raw::c_int;
10529}
10530extern "C" {
10531    pub fn rsa_verify_hash_ex(sig: *const ::std::os::raw::c_uchar,
10532                              siglen: ::std::os::raw::c_ulong,
10533                              hash: *const ::std::os::raw::c_uchar,
10534                              hashlen: ::std::os::raw::c_ulong,
10535                              padding: ::std::os::raw::c_int,
10536                              hash_idx: ::std::os::raw::c_int,
10537                              saltlen: ::std::os::raw::c_ulong,
10538                              stat: *mut ::std::os::raw::c_int,
10539                              key: *mut rsa_key) -> ::std::os::raw::c_int;
10540}
10541extern "C" {
10542    pub fn rsa_sign_saltlen_get_max_ex(padding: ::std::os::raw::c_int,
10543                                       hash_idx: ::std::os::raw::c_int,
10544                                       key: *mut rsa_key)
10545     -> ::std::os::raw::c_int;
10546}
10547extern "C" {
10548    pub fn rsa_export(out: *mut ::std::os::raw::c_uchar,
10549                      outlen: *mut ::std::os::raw::c_ulong,
10550                      type_: ::std::os::raw::c_int, key: *mut rsa_key)
10551     -> ::std::os::raw::c_int;
10552}
10553extern "C" {
10554    pub fn rsa_import(in_: *const ::std::os::raw::c_uchar,
10555                      inlen: ::std::os::raw::c_ulong, key: *mut rsa_key)
10556     -> ::std::os::raw::c_int;
10557}
10558extern "C" {
10559    pub fn rsa_import_x509(in_: *const ::std::os::raw::c_uchar,
10560                           inlen: ::std::os::raw::c_ulong, key: *mut rsa_key)
10561     -> ::std::os::raw::c_int;
10562}
10563extern "C" {
10564    pub fn rsa_import_pkcs8(in_: *const ::std::os::raw::c_uchar,
10565                            inlen: ::std::os::raw::c_ulong,
10566                            passwd: *const ::std::os::raw::c_void,
10567                            passwdlen: ::std::os::raw::c_ulong,
10568                            key: *mut rsa_key) -> ::std::os::raw::c_int;
10569}
10570extern "C" {
10571    pub fn rsa_set_key(N: *const ::std::os::raw::c_uchar,
10572                       Nlen: ::std::os::raw::c_ulong,
10573                       e: *const ::std::os::raw::c_uchar,
10574                       elen: ::std::os::raw::c_ulong,
10575                       d: *const ::std::os::raw::c_uchar,
10576                       dlen: ::std::os::raw::c_ulong, key: *mut rsa_key)
10577     -> ::std::os::raw::c_int;
10578}
10579extern "C" {
10580    pub fn rsa_set_factors(p: *const ::std::os::raw::c_uchar,
10581                           plen: ::std::os::raw::c_ulong,
10582                           q: *const ::std::os::raw::c_uchar,
10583                           qlen: ::std::os::raw::c_ulong, key: *mut rsa_key)
10584     -> ::std::os::raw::c_int;
10585}
10586extern "C" {
10587    pub fn rsa_set_crt_params(dP: *const ::std::os::raw::c_uchar,
10588                              dPlen: ::std::os::raw::c_ulong,
10589                              dQ: *const ::std::os::raw::c_uchar,
10590                              dQlen: ::std::os::raw::c_ulong,
10591                              qP: *const ::std::os::raw::c_uchar,
10592                              qPlen: ::std::os::raw::c_ulong,
10593                              key: *mut rsa_key) -> ::std::os::raw::c_int;
10594}
10595#[repr(C)]
10596#[derive(Debug, Copy)]
10597pub struct dh_key {
10598    pub type_: ::std::os::raw::c_int,
10599    pub x: *mut ::std::os::raw::c_void,
10600    pub y: *mut ::std::os::raw::c_void,
10601    pub base: *mut ::std::os::raw::c_void,
10602    pub prime: *mut ::std::os::raw::c_void,
10603}
10604#[test]
10605fn bindgen_test_layout_dh_key() {
10606    assert_eq!(::std::mem::size_of::<dh_key>() , 40usize , concat ! (
10607               "Size of: " , stringify ! ( dh_key ) ));
10608    assert_eq! (::std::mem::align_of::<dh_key>() , 8usize , concat ! (
10609                "Alignment of " , stringify ! ( dh_key ) ));
10610    assert_eq! (unsafe {
10611                & ( * ( 0 as * const dh_key ) ) . type_ as * const _ as usize
10612                } , 0usize , concat ! (
10613                "Alignment of field: " , stringify ! ( dh_key ) , "::" ,
10614                stringify ! ( type_ ) ));
10615    assert_eq! (unsafe {
10616                & ( * ( 0 as * const dh_key ) ) . x as * const _ as usize } ,
10617                8usize , concat ! (
10618                "Alignment of field: " , stringify ! ( dh_key ) , "::" ,
10619                stringify ! ( x ) ));
10620    assert_eq! (unsafe {
10621                & ( * ( 0 as * const dh_key ) ) . y as * const _ as usize } ,
10622                16usize , concat ! (
10623                "Alignment of field: " , stringify ! ( dh_key ) , "::" ,
10624                stringify ! ( y ) ));
10625    assert_eq! (unsafe {
10626                & ( * ( 0 as * const dh_key ) ) . base as * const _ as usize }
10627                , 24usize , concat ! (
10628                "Alignment of field: " , stringify ! ( dh_key ) , "::" ,
10629                stringify ! ( base ) ));
10630    assert_eq! (unsafe {
10631                & ( * ( 0 as * const dh_key ) ) . prime as * const _ as usize
10632                } , 32usize , concat ! (
10633                "Alignment of field: " , stringify ! ( dh_key ) , "::" ,
10634                stringify ! ( prime ) ));
10635}
10636impl Clone for dh_key {
10637    fn clone(&self) -> Self { *self }
10638}
10639extern "C" {
10640    pub fn dh_get_groupsize(key: *mut dh_key) -> ::std::os::raw::c_int;
10641}
10642extern "C" {
10643    pub fn dh_export(out: *mut ::std::os::raw::c_uchar,
10644                     outlen: *mut ::std::os::raw::c_ulong,
10645                     type_: ::std::os::raw::c_int, key: *mut dh_key)
10646     -> ::std::os::raw::c_int;
10647}
10648extern "C" {
10649    pub fn dh_import(in_: *const ::std::os::raw::c_uchar,
10650                     inlen: ::std::os::raw::c_ulong, key: *mut dh_key)
10651     -> ::std::os::raw::c_int;
10652}
10653extern "C" {
10654    pub fn dh_set_pg(p: *const ::std::os::raw::c_uchar,
10655                     plen: ::std::os::raw::c_ulong,
10656                     g: *const ::std::os::raw::c_uchar,
10657                     glen: ::std::os::raw::c_ulong, key: *mut dh_key)
10658     -> ::std::os::raw::c_int;
10659}
10660extern "C" {
10661    pub fn dh_set_pg_dhparam(dhparam: *const ::std::os::raw::c_uchar,
10662                             dhparamlen: ::std::os::raw::c_ulong,
10663                             key: *mut dh_key) -> ::std::os::raw::c_int;
10664}
10665extern "C" {
10666    pub fn dh_set_pg_groupsize(groupsize: ::std::os::raw::c_int,
10667                               key: *mut dh_key) -> ::std::os::raw::c_int;
10668}
10669extern "C" {
10670    pub fn dh_set_key(in_: *const ::std::os::raw::c_uchar,
10671                      inlen: ::std::os::raw::c_ulong,
10672                      type_: ::std::os::raw::c_int, key: *mut dh_key)
10673     -> ::std::os::raw::c_int;
10674}
10675extern "C" {
10676    pub fn dh_generate_key(prng: *mut prng_state,
10677                           wprng: ::std::os::raw::c_int, key: *mut dh_key)
10678     -> ::std::os::raw::c_int;
10679}
10680extern "C" {
10681    pub fn dh_shared_secret(private_key: *mut dh_key, public_key: *mut dh_key,
10682                            out: *mut ::std::os::raw::c_uchar,
10683                            outlen: *mut ::std::os::raw::c_ulong)
10684     -> ::std::os::raw::c_int;
10685}
10686extern "C" {
10687    pub fn dh_free(key: *mut dh_key);
10688}
10689extern "C" {
10690    pub fn dh_export_key(out: *mut ::std::os::raw::c_void,
10691                         outlen: *mut ::std::os::raw::c_ulong,
10692                         type_: ::std::os::raw::c_int, key: *mut dh_key)
10693     -> ::std::os::raw::c_int;
10694}
10695#[repr(C)]
10696#[derive(Debug, Copy)]
10697pub struct ltc_dh_set_type {
10698    pub size: ::std::os::raw::c_int,
10699    pub name: *const ::std::os::raw::c_char,
10700    pub base: *const ::std::os::raw::c_char,
10701    pub prime: *const ::std::os::raw::c_char,
10702}
10703#[test]
10704fn bindgen_test_layout_ltc_dh_set_type() {
10705    assert_eq!(::std::mem::size_of::<ltc_dh_set_type>() , 32usize , concat ! (
10706               "Size of: " , stringify ! ( ltc_dh_set_type ) ));
10707    assert_eq! (::std::mem::align_of::<ltc_dh_set_type>() , 8usize , concat !
10708                ( "Alignment of " , stringify ! ( ltc_dh_set_type ) ));
10709    assert_eq! (unsafe {
10710                & ( * ( 0 as * const ltc_dh_set_type ) ) . size as * const _
10711                as usize } , 0usize , concat ! (
10712                "Alignment of field: " , stringify ! ( ltc_dh_set_type ) ,
10713                "::" , stringify ! ( size ) ));
10714    assert_eq! (unsafe {
10715                & ( * ( 0 as * const ltc_dh_set_type ) ) . name as * const _
10716                as usize } , 8usize , concat ! (
10717                "Alignment of field: " , stringify ! ( ltc_dh_set_type ) ,
10718                "::" , stringify ! ( name ) ));
10719    assert_eq! (unsafe {
10720                & ( * ( 0 as * const ltc_dh_set_type ) ) . base as * const _
10721                as usize } , 16usize , concat ! (
10722                "Alignment of field: " , stringify ! ( ltc_dh_set_type ) ,
10723                "::" , stringify ! ( base ) ));
10724    assert_eq! (unsafe {
10725                & ( * ( 0 as * const ltc_dh_set_type ) ) . prime as * const _
10726                as usize } , 24usize , concat ! (
10727                "Alignment of field: " , stringify ! ( ltc_dh_set_type ) ,
10728                "::" , stringify ! ( prime ) ));
10729}
10730impl Clone for ltc_dh_set_type {
10731    fn clone(&self) -> Self { *self }
10732}
10733extern "C" {
10734    #[link_name = "ltc_dh_sets"]
10735    pub static mut ltc_dh_sets: [ltc_dh_set_type; 0usize];
10736}
10737extern "C" {
10738    pub fn dh_check_pubkey(key: *mut dh_key) -> ::std::os::raw::c_int;
10739}
10740/// Structure defines a NIST GF(p) curve
10741#[repr(C)]
10742#[derive(Debug, Copy)]
10743pub struct ltc_ecc_set_type {
10744    /// The size of the curve in octets
10745    pub size: ::std::os::raw::c_int,
10746    /// name of curve
10747    pub name: *const ::std::os::raw::c_char,
10748    /// The prime that defines the field the curve is in (encoded in hex)
10749    pub prime: *const ::std::os::raw::c_char,
10750    /// The fields B param (hex)
10751    pub B: *const ::std::os::raw::c_char,
10752    /// The order of the curve (hex)
10753    pub order: *const ::std::os::raw::c_char,
10754    /// The x co-ordinate of the base point on the curve (hex)
10755    pub Gx: *const ::std::os::raw::c_char,
10756    /// The y co-ordinate of the base point on the curve (hex)
10757    pub Gy: *const ::std::os::raw::c_char,
10758}
10759#[test]
10760fn bindgen_test_layout_ltc_ecc_set_type() {
10761    assert_eq!(::std::mem::size_of::<ltc_ecc_set_type>() , 56usize , concat !
10762               ( "Size of: " , stringify ! ( ltc_ecc_set_type ) ));
10763    assert_eq! (::std::mem::align_of::<ltc_ecc_set_type>() , 8usize , concat !
10764                ( "Alignment of " , stringify ! ( ltc_ecc_set_type ) ));
10765    assert_eq! (unsafe {
10766                & ( * ( 0 as * const ltc_ecc_set_type ) ) . size as * const _
10767                as usize } , 0usize , concat ! (
10768                "Alignment of field: " , stringify ! ( ltc_ecc_set_type ) ,
10769                "::" , stringify ! ( size ) ));
10770    assert_eq! (unsafe {
10771                & ( * ( 0 as * const ltc_ecc_set_type ) ) . name as * const _
10772                as usize } , 8usize , concat ! (
10773                "Alignment of field: " , stringify ! ( ltc_ecc_set_type ) ,
10774                "::" , stringify ! ( name ) ));
10775    assert_eq! (unsafe {
10776                & ( * ( 0 as * const ltc_ecc_set_type ) ) . prime as * const _
10777                as usize } , 16usize , concat ! (
10778                "Alignment of field: " , stringify ! ( ltc_ecc_set_type ) ,
10779                "::" , stringify ! ( prime ) ));
10780    assert_eq! (unsafe {
10781                & ( * ( 0 as * const ltc_ecc_set_type ) ) . B as * const _ as
10782                usize } , 24usize , concat ! (
10783                "Alignment of field: " , stringify ! ( ltc_ecc_set_type ) ,
10784                "::" , stringify ! ( B ) ));
10785    assert_eq! (unsafe {
10786                & ( * ( 0 as * const ltc_ecc_set_type ) ) . order as * const _
10787                as usize } , 32usize , concat ! (
10788                "Alignment of field: " , stringify ! ( ltc_ecc_set_type ) ,
10789                "::" , stringify ! ( order ) ));
10790    assert_eq! (unsafe {
10791                & ( * ( 0 as * const ltc_ecc_set_type ) ) . Gx as * const _ as
10792                usize } , 40usize , concat ! (
10793                "Alignment of field: " , stringify ! ( ltc_ecc_set_type ) ,
10794                "::" , stringify ! ( Gx ) ));
10795    assert_eq! (unsafe {
10796                & ( * ( 0 as * const ltc_ecc_set_type ) ) . Gy as * const _ as
10797                usize } , 48usize , concat ! (
10798                "Alignment of field: " , stringify ! ( ltc_ecc_set_type ) ,
10799                "::" , stringify ! ( Gy ) ));
10800}
10801impl Clone for ltc_ecc_set_type {
10802    fn clone(&self) -> Self { *self }
10803}
10804/// A point on a ECC curve, stored in Jacbobian format such that (x,y,z) => (x/z^2, y/z^3, 1) when interpretted as affine
10805#[repr(C)]
10806#[derive(Debug, Copy)]
10807pub struct ecc_point {
10808    /// The x co-ordinate
10809    pub x: *mut ::std::os::raw::c_void,
10810    /// The y co-ordinate
10811    pub y: *mut ::std::os::raw::c_void,
10812    /// The z co-ordinate
10813    pub z: *mut ::std::os::raw::c_void,
10814}
10815#[test]
10816fn bindgen_test_layout_ecc_point() {
10817    assert_eq!(::std::mem::size_of::<ecc_point>() , 24usize , concat ! (
10818               "Size of: " , stringify ! ( ecc_point ) ));
10819    assert_eq! (::std::mem::align_of::<ecc_point>() , 8usize , concat ! (
10820                "Alignment of " , stringify ! ( ecc_point ) ));
10821    assert_eq! (unsafe {
10822                & ( * ( 0 as * const ecc_point ) ) . x as * const _ as usize }
10823                , 0usize , concat ! (
10824                "Alignment of field: " , stringify ! ( ecc_point ) , "::" ,
10825                stringify ! ( x ) ));
10826    assert_eq! (unsafe {
10827                & ( * ( 0 as * const ecc_point ) ) . y as * const _ as usize }
10828                , 8usize , concat ! (
10829                "Alignment of field: " , stringify ! ( ecc_point ) , "::" ,
10830                stringify ! ( y ) ));
10831    assert_eq! (unsafe {
10832                & ( * ( 0 as * const ecc_point ) ) . z as * const _ as usize }
10833                , 16usize , concat ! (
10834                "Alignment of field: " , stringify ! ( ecc_point ) , "::" ,
10835                stringify ! ( z ) ));
10836}
10837impl Clone for ecc_point {
10838    fn clone(&self) -> Self { *self }
10839}
10840/// An ECC key
10841#[repr(C)]
10842#[derive(Debug, Copy)]
10843pub struct ecc_key {
10844    /// Type of key, PK_PRIVATE or PK_PUBLIC
10845    pub type_: ::std::os::raw::c_int,
10846    /// Index into the ltc_ecc_sets[] for the parameters of this curve; if -1, then this key is using user supplied curve in dp
10847    pub idx: ::std::os::raw::c_int,
10848    /// pointer to domain parameters; either points to NIST curves (identified by idx >= 0) or user supplied curve
10849    pub dp: *const ltc_ecc_set_type,
10850    /// The public key
10851    pub pubkey: ecc_point,
10852    /// The private key
10853    pub k: *mut ::std::os::raw::c_void,
10854}
10855#[test]
10856fn bindgen_test_layout_ecc_key() {
10857    assert_eq!(::std::mem::size_of::<ecc_key>() , 48usize , concat ! (
10858               "Size of: " , stringify ! ( ecc_key ) ));
10859    assert_eq! (::std::mem::align_of::<ecc_key>() , 8usize , concat ! (
10860                "Alignment of " , stringify ! ( ecc_key ) ));
10861    assert_eq! (unsafe {
10862                & ( * ( 0 as * const ecc_key ) ) . type_ as * const _ as usize
10863                } , 0usize , concat ! (
10864                "Alignment of field: " , stringify ! ( ecc_key ) , "::" ,
10865                stringify ! ( type_ ) ));
10866    assert_eq! (unsafe {
10867                & ( * ( 0 as * const ecc_key ) ) . idx as * const _ as usize }
10868                , 4usize , concat ! (
10869                "Alignment of field: " , stringify ! ( ecc_key ) , "::" ,
10870                stringify ! ( idx ) ));
10871    assert_eq! (unsafe {
10872                & ( * ( 0 as * const ecc_key ) ) . dp as * const _ as usize }
10873                , 8usize , concat ! (
10874                "Alignment of field: " , stringify ! ( ecc_key ) , "::" ,
10875                stringify ! ( dp ) ));
10876    assert_eq! (unsafe {
10877                & ( * ( 0 as * const ecc_key ) ) . pubkey as * const _ as
10878                usize } , 16usize , concat ! (
10879                "Alignment of field: " , stringify ! ( ecc_key ) , "::" ,
10880                stringify ! ( pubkey ) ));
10881    assert_eq! (unsafe {
10882                & ( * ( 0 as * const ecc_key ) ) . k as * const _ as usize } ,
10883                40usize , concat ! (
10884                "Alignment of field: " , stringify ! ( ecc_key ) , "::" ,
10885                stringify ! ( k ) ));
10886}
10887impl Clone for ecc_key {
10888    fn clone(&self) -> Self { *self }
10889}
10890extern "C" {
10891    #[link_name = "ltc_ecc_sets"]
10892    pub static mut ltc_ecc_sets: [ltc_ecc_set_type; 0usize];
10893}
10894extern "C" {
10895    pub fn ecc_test() -> ::std::os::raw::c_int;
10896}
10897extern "C" {
10898    pub fn ecc_sizes(low: *mut ::std::os::raw::c_int,
10899                     high: *mut ::std::os::raw::c_int);
10900}
10901extern "C" {
10902    pub fn ecc_get_size(key: *mut ecc_key) -> ::std::os::raw::c_int;
10903}
10904extern "C" {
10905    pub fn ecc_make_key(prng: *mut prng_state, wprng: ::std::os::raw::c_int,
10906                        keysize: ::std::os::raw::c_int, key: *mut ecc_key)
10907     -> ::std::os::raw::c_int;
10908}
10909extern "C" {
10910    pub fn ecc_make_key_ex(prng: *mut prng_state,
10911                           wprng: ::std::os::raw::c_int, key: *mut ecc_key,
10912                           dp: *const ltc_ecc_set_type)
10913     -> ::std::os::raw::c_int;
10914}
10915extern "C" {
10916    pub fn ecc_free(key: *mut ecc_key);
10917}
10918extern "C" {
10919    pub fn ecc_export(out: *mut ::std::os::raw::c_uchar,
10920                      outlen: *mut ::std::os::raw::c_ulong,
10921                      type_: ::std::os::raw::c_int, key: *mut ecc_key)
10922     -> ::std::os::raw::c_int;
10923}
10924extern "C" {
10925    pub fn ecc_import(in_: *const ::std::os::raw::c_uchar,
10926                      inlen: ::std::os::raw::c_ulong, key: *mut ecc_key)
10927     -> ::std::os::raw::c_int;
10928}
10929extern "C" {
10930    pub fn ecc_import_ex(in_: *const ::std::os::raw::c_uchar,
10931                         inlen: ::std::os::raw::c_ulong, key: *mut ecc_key,
10932                         dp: *const ltc_ecc_set_type)
10933     -> ::std::os::raw::c_int;
10934}
10935extern "C" {
10936    pub fn ecc_ansi_x963_export(key: *mut ecc_key,
10937                                out: *mut ::std::os::raw::c_uchar,
10938                                outlen: *mut ::std::os::raw::c_ulong)
10939     -> ::std::os::raw::c_int;
10940}
10941extern "C" {
10942    pub fn ecc_ansi_x963_import(in_: *const ::std::os::raw::c_uchar,
10943                                inlen: ::std::os::raw::c_ulong,
10944                                key: *mut ecc_key) -> ::std::os::raw::c_int;
10945}
10946extern "C" {
10947    pub fn ecc_ansi_x963_import_ex(in_: *const ::std::os::raw::c_uchar,
10948                                   inlen: ::std::os::raw::c_ulong,
10949                                   key: *mut ecc_key,
10950                                   dp: *mut ltc_ecc_set_type)
10951     -> ::std::os::raw::c_int;
10952}
10953extern "C" {
10954    pub fn ecc_shared_secret(private_key: *mut ecc_key,
10955                             public_key: *mut ecc_key,
10956                             out: *mut ::std::os::raw::c_uchar,
10957                             outlen: *mut ::std::os::raw::c_ulong)
10958     -> ::std::os::raw::c_int;
10959}
10960extern "C" {
10961    pub fn ecc_encrypt_key(in_: *const ::std::os::raw::c_uchar,
10962                           inlen: ::std::os::raw::c_ulong,
10963                           out: *mut ::std::os::raw::c_uchar,
10964                           outlen: *mut ::std::os::raw::c_ulong,
10965                           prng: *mut prng_state,
10966                           wprng: ::std::os::raw::c_int,
10967                           hash: ::std::os::raw::c_int, key: *mut ecc_key)
10968     -> ::std::os::raw::c_int;
10969}
10970extern "C" {
10971    pub fn ecc_decrypt_key(in_: *const ::std::os::raw::c_uchar,
10972                           inlen: ::std::os::raw::c_ulong,
10973                           out: *mut ::std::os::raw::c_uchar,
10974                           outlen: *mut ::std::os::raw::c_ulong,
10975                           key: *mut ecc_key) -> ::std::os::raw::c_int;
10976}
10977extern "C" {
10978    pub fn ecc_sign_hash_rfc7518(in_: *const ::std::os::raw::c_uchar,
10979                                 inlen: ::std::os::raw::c_ulong,
10980                                 out: *mut ::std::os::raw::c_uchar,
10981                                 outlen: *mut ::std::os::raw::c_ulong,
10982                                 prng: *mut prng_state,
10983                                 wprng: ::std::os::raw::c_int,
10984                                 key: *mut ecc_key) -> ::std::os::raw::c_int;
10985}
10986extern "C" {
10987    pub fn ecc_sign_hash(in_: *const ::std::os::raw::c_uchar,
10988                         inlen: ::std::os::raw::c_ulong,
10989                         out: *mut ::std::os::raw::c_uchar,
10990                         outlen: *mut ::std::os::raw::c_ulong,
10991                         prng: *mut prng_state, wprng: ::std::os::raw::c_int,
10992                         key: *mut ecc_key) -> ::std::os::raw::c_int;
10993}
10994extern "C" {
10995    pub fn ecc_verify_hash_rfc7518(sig: *const ::std::os::raw::c_uchar,
10996                                   siglen: ::std::os::raw::c_ulong,
10997                                   hash: *const ::std::os::raw::c_uchar,
10998                                   hashlen: ::std::os::raw::c_ulong,
10999                                   stat: *mut ::std::os::raw::c_int,
11000                                   key: *mut ecc_key)
11001     -> ::std::os::raw::c_int;
11002}
11003extern "C" {
11004    pub fn ecc_verify_hash(sig: *const ::std::os::raw::c_uchar,
11005                           siglen: ::std::os::raw::c_ulong,
11006                           hash: *const ::std::os::raw::c_uchar,
11007                           hashlen: ::std::os::raw::c_ulong,
11008                           stat: *mut ::std::os::raw::c_int,
11009                           key: *mut ecc_key) -> ::std::os::raw::c_int;
11010}
11011extern "C" {
11012    pub fn ltc_ecc_new_point() -> *mut ecc_point;
11013}
11014extern "C" {
11015    pub fn ltc_ecc_del_point(p: *mut ecc_point);
11016}
11017extern "C" {
11018    pub fn ltc_ecc_is_valid_idx(n: ::std::os::raw::c_int)
11019     -> ::std::os::raw::c_int;
11020}
11021extern "C" {
11022    pub fn ltc_ecc_mulmod(k: *mut ::std::os::raw::c_void, G: *mut ecc_point,
11023                          R: *mut ecc_point,
11024                          modulus: *mut ::std::os::raw::c_void,
11025                          map: ::std::os::raw::c_int)
11026     -> ::std::os::raw::c_int;
11027}
11028extern "C" {
11029    pub fn ltc_ecc_mul2add(A: *mut ecc_point, kA: *mut ::std::os::raw::c_void,
11030                           B: *mut ecc_point, kB: *mut ::std::os::raw::c_void,
11031                           C: *mut ecc_point,
11032                           modulus: *mut ::std::os::raw::c_void)
11033     -> ::std::os::raw::c_int;
11034}
11035extern "C" {
11036    pub fn ltc_ecc_map(P: *mut ecc_point,
11037                       modulus: *mut ::std::os::raw::c_void,
11038                       mp: *mut ::std::os::raw::c_void)
11039     -> ::std::os::raw::c_int;
11040}
11041/// DSA key structure
11042#[repr(C)]
11043#[derive(Debug, Copy)]
11044pub struct dsa_key {
11045    /// The key type, PK_PRIVATE or PK_PUBLIC
11046    pub type_: ::std::os::raw::c_int,
11047    /// The order of the sub-group used in octets
11048    pub qord: ::std::os::raw::c_int,
11049    /// The generator
11050    pub g: *mut ::std::os::raw::c_void,
11051    /// The prime used to generate the sub-group
11052    pub q: *mut ::std::os::raw::c_void,
11053    /// The large prime that generats the field the contains the sub-group
11054    pub p: *mut ::std::os::raw::c_void,
11055    /// The private key
11056    pub x: *mut ::std::os::raw::c_void,
11057    /// The public key
11058    pub y: *mut ::std::os::raw::c_void,
11059}
11060#[test]
11061fn bindgen_test_layout_dsa_key() {
11062    assert_eq!(::std::mem::size_of::<dsa_key>() , 48usize , concat ! (
11063               "Size of: " , stringify ! ( dsa_key ) ));
11064    assert_eq! (::std::mem::align_of::<dsa_key>() , 8usize , concat ! (
11065                "Alignment of " , stringify ! ( dsa_key ) ));
11066    assert_eq! (unsafe {
11067                & ( * ( 0 as * const dsa_key ) ) . type_ as * const _ as usize
11068                } , 0usize , concat ! (
11069                "Alignment of field: " , stringify ! ( dsa_key ) , "::" ,
11070                stringify ! ( type_ ) ));
11071    assert_eq! (unsafe {
11072                & ( * ( 0 as * const dsa_key ) ) . qord as * const _ as usize
11073                } , 4usize , concat ! (
11074                "Alignment of field: " , stringify ! ( dsa_key ) , "::" ,
11075                stringify ! ( qord ) ));
11076    assert_eq! (unsafe {
11077                & ( * ( 0 as * const dsa_key ) ) . g as * const _ as usize } ,
11078                8usize , concat ! (
11079                "Alignment of field: " , stringify ! ( dsa_key ) , "::" ,
11080                stringify ! ( g ) ));
11081    assert_eq! (unsafe {
11082                & ( * ( 0 as * const dsa_key ) ) . q as * const _ as usize } ,
11083                16usize , concat ! (
11084                "Alignment of field: " , stringify ! ( dsa_key ) , "::" ,
11085                stringify ! ( q ) ));
11086    assert_eq! (unsafe {
11087                & ( * ( 0 as * const dsa_key ) ) . p as * const _ as usize } ,
11088                24usize , concat ! (
11089                "Alignment of field: " , stringify ! ( dsa_key ) , "::" ,
11090                stringify ! ( p ) ));
11091    assert_eq! (unsafe {
11092                & ( * ( 0 as * const dsa_key ) ) . x as * const _ as usize } ,
11093                32usize , concat ! (
11094                "Alignment of field: " , stringify ! ( dsa_key ) , "::" ,
11095                stringify ! ( x ) ));
11096    assert_eq! (unsafe {
11097                & ( * ( 0 as * const dsa_key ) ) . y as * const _ as usize } ,
11098                40usize , concat ! (
11099                "Alignment of field: " , stringify ! ( dsa_key ) , "::" ,
11100                stringify ! ( y ) ));
11101}
11102impl Clone for dsa_key {
11103    fn clone(&self) -> Self { *self }
11104}
11105extern "C" {
11106    pub fn dsa_make_key(prng: *mut prng_state, wprng: ::std::os::raw::c_int,
11107                        group_size: ::std::os::raw::c_int,
11108                        modulus_size: ::std::os::raw::c_int,
11109                        key: *mut dsa_key) -> ::std::os::raw::c_int;
11110}
11111extern "C" {
11112    pub fn dsa_set_pqg(p: *const ::std::os::raw::c_uchar,
11113                       plen: ::std::os::raw::c_ulong,
11114                       q: *const ::std::os::raw::c_uchar,
11115                       qlen: ::std::os::raw::c_ulong,
11116                       g: *const ::std::os::raw::c_uchar,
11117                       glen: ::std::os::raw::c_ulong, key: *mut dsa_key)
11118     -> ::std::os::raw::c_int;
11119}
11120extern "C" {
11121    pub fn dsa_set_pqg_dsaparam(dsaparam: *const ::std::os::raw::c_uchar,
11122                                dsaparamlen: ::std::os::raw::c_ulong,
11123                                key: *mut dsa_key) -> ::std::os::raw::c_int;
11124}
11125extern "C" {
11126    pub fn dsa_generate_pqg(prng: *mut prng_state,
11127                            wprng: ::std::os::raw::c_int,
11128                            group_size: ::std::os::raw::c_int,
11129                            modulus_size: ::std::os::raw::c_int,
11130                            key: *mut dsa_key) -> ::std::os::raw::c_int;
11131}
11132extern "C" {
11133    pub fn dsa_set_key(in_: *const ::std::os::raw::c_uchar,
11134                       inlen: ::std::os::raw::c_ulong,
11135                       type_: ::std::os::raw::c_int, key: *mut dsa_key)
11136     -> ::std::os::raw::c_int;
11137}
11138extern "C" {
11139    pub fn dsa_generate_key(prng: *mut prng_state,
11140                            wprng: ::std::os::raw::c_int, key: *mut dsa_key)
11141     -> ::std::os::raw::c_int;
11142}
11143extern "C" {
11144    pub fn dsa_free(key: *mut dsa_key);
11145}
11146extern "C" {
11147    pub fn dsa_sign_hash_raw(in_: *const ::std::os::raw::c_uchar,
11148                             inlen: ::std::os::raw::c_ulong,
11149                             r: *mut ::std::os::raw::c_void,
11150                             s: *mut ::std::os::raw::c_void,
11151                             prng: *mut prng_state,
11152                             wprng: ::std::os::raw::c_int, key: *mut dsa_key)
11153     -> ::std::os::raw::c_int;
11154}
11155extern "C" {
11156    pub fn dsa_sign_hash(in_: *const ::std::os::raw::c_uchar,
11157                         inlen: ::std::os::raw::c_ulong,
11158                         out: *mut ::std::os::raw::c_uchar,
11159                         outlen: *mut ::std::os::raw::c_ulong,
11160                         prng: *mut prng_state, wprng: ::std::os::raw::c_int,
11161                         key: *mut dsa_key) -> ::std::os::raw::c_int;
11162}
11163extern "C" {
11164    pub fn dsa_verify_hash_raw(r: *mut ::std::os::raw::c_void,
11165                               s: *mut ::std::os::raw::c_void,
11166                               hash: *const ::std::os::raw::c_uchar,
11167                               hashlen: ::std::os::raw::c_ulong,
11168                               stat: *mut ::std::os::raw::c_int,
11169                               key: *mut dsa_key) -> ::std::os::raw::c_int;
11170}
11171extern "C" {
11172    pub fn dsa_verify_hash(sig: *const ::std::os::raw::c_uchar,
11173                           siglen: ::std::os::raw::c_ulong,
11174                           hash: *const ::std::os::raw::c_uchar,
11175                           hashlen: ::std::os::raw::c_ulong,
11176                           stat: *mut ::std::os::raw::c_int,
11177                           key: *mut dsa_key) -> ::std::os::raw::c_int;
11178}
11179extern "C" {
11180    pub fn dsa_encrypt_key(in_: *const ::std::os::raw::c_uchar,
11181                           inlen: ::std::os::raw::c_ulong,
11182                           out: *mut ::std::os::raw::c_uchar,
11183                           outlen: *mut ::std::os::raw::c_ulong,
11184                           prng: *mut prng_state,
11185                           wprng: ::std::os::raw::c_int,
11186                           hash: ::std::os::raw::c_int, key: *mut dsa_key)
11187     -> ::std::os::raw::c_int;
11188}
11189extern "C" {
11190    pub fn dsa_decrypt_key(in_: *const ::std::os::raw::c_uchar,
11191                           inlen: ::std::os::raw::c_ulong,
11192                           out: *mut ::std::os::raw::c_uchar,
11193                           outlen: *mut ::std::os::raw::c_ulong,
11194                           key: *mut dsa_key) -> ::std::os::raw::c_int;
11195}
11196extern "C" {
11197    pub fn dsa_import(in_: *const ::std::os::raw::c_uchar,
11198                      inlen: ::std::os::raw::c_ulong, key: *mut dsa_key)
11199     -> ::std::os::raw::c_int;
11200}
11201extern "C" {
11202    pub fn dsa_export(out: *mut ::std::os::raw::c_uchar,
11203                      outlen: *mut ::std::os::raw::c_ulong,
11204                      type_: ::std::os::raw::c_int, key: *mut dsa_key)
11205     -> ::std::os::raw::c_int;
11206}
11207extern "C" {
11208    pub fn dsa_verify_key(key: *mut dsa_key, stat: *mut ::std::os::raw::c_int)
11209     -> ::std::os::raw::c_int;
11210}
11211extern "C" {
11212    pub fn dsa_int_validate_xy(key: *mut dsa_key,
11213                               stat: *mut ::std::os::raw::c_int)
11214     -> ::std::os::raw::c_int;
11215}
11216extern "C" {
11217    pub fn dsa_int_validate_pqg(key: *mut dsa_key,
11218                                stat: *mut ::std::os::raw::c_int)
11219     -> ::std::os::raw::c_int;
11220}
11221extern "C" {
11222    pub fn dsa_int_validate_primes(key: *mut dsa_key,
11223                                   stat: *mut ::std::os::raw::c_int)
11224     -> ::std::os::raw::c_int;
11225}
11226extern "C" {
11227    pub fn dsa_shared_secret(private_key: *mut ::std::os::raw::c_void,
11228                             base: *mut ::std::os::raw::c_void,
11229                             public_key: *mut dsa_key,
11230                             out: *mut ::std::os::raw::c_uchar,
11231                             outlen: *mut ::std::os::raw::c_ulong)
11232     -> ::std::os::raw::c_int;
11233}
11234#[repr(u32)]
11235#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
11236pub enum ltc_asn1_type_ {
11237    LTC_ASN1_EOL = 0,
11238    LTC_ASN1_BOOLEAN = 1,
11239    LTC_ASN1_INTEGER = 2,
11240    LTC_ASN1_SHORT_INTEGER = 3,
11241    LTC_ASN1_BIT_STRING = 4,
11242    LTC_ASN1_OCTET_STRING = 5,
11243    LTC_ASN1_NULL = 6,
11244    LTC_ASN1_OBJECT_IDENTIFIER = 7,
11245    LTC_ASN1_IA5_STRING = 8,
11246    LTC_ASN1_PRINTABLE_STRING = 9,
11247    LTC_ASN1_UTF8_STRING = 10,
11248    LTC_ASN1_UTCTIME = 11,
11249    LTC_ASN1_CHOICE = 12,
11250    LTC_ASN1_SEQUENCE = 13,
11251    LTC_ASN1_SET = 14,
11252    LTC_ASN1_SETOF = 15,
11253    LTC_ASN1_RAW_BIT_STRING = 16,
11254    LTC_ASN1_TELETEX_STRING = 17,
11255    LTC_ASN1_CONSTRUCTED = 18,
11256    LTC_ASN1_CONTEXT_SPECIFIC = 19,
11257    LTC_ASN1_GENERALIZEDTIME = 20,
11258}
11259pub use self::ltc_asn1_type_ as ltc_asn1_type;
11260/// A LTC ASN.1 list type
11261#[repr(C)]
11262#[derive(Debug, Copy)]
11263pub struct ltc_asn1_list_ {
11264    /// The LTC ASN.1 enumerated type identifier
11265    pub type_: ltc_asn1_type,
11266    /// The data to encode or place for decoding
11267    pub data: *mut ::std::os::raw::c_void,
11268    /// The size of the input or resulting output
11269    pub size: ::std::os::raw::c_ulong,
11270    /// The used flag, this is used by the CHOICE ASN.1 type to indicate which choice was made
11271    pub used: ::std::os::raw::c_int,
11272    /// prev/next entry in the list
11273    pub prev: *mut ltc_asn1_list_,
11274    /// prev/next entry in the list
11275    pub next: *mut ltc_asn1_list_,
11276    /// prev/next entry in the list
11277    pub child: *mut ltc_asn1_list_,
11278    /// prev/next entry in the list
11279    pub parent: *mut ltc_asn1_list_,
11280}
11281#[test]
11282fn bindgen_test_layout_ltc_asn1_list_() {
11283    assert_eq!(::std::mem::size_of::<ltc_asn1_list_>() , 64usize , concat ! (
11284               "Size of: " , stringify ! ( ltc_asn1_list_ ) ));
11285    assert_eq! (::std::mem::align_of::<ltc_asn1_list_>() , 8usize , concat ! (
11286                "Alignment of " , stringify ! ( ltc_asn1_list_ ) ));
11287    assert_eq! (unsafe {
11288                & ( * ( 0 as * const ltc_asn1_list_ ) ) . type_ as * const _
11289                as usize } , 0usize , concat ! (
11290                "Alignment of field: " , stringify ! ( ltc_asn1_list_ ) , "::"
11291                , stringify ! ( type_ ) ));
11292    assert_eq! (unsafe {
11293                & ( * ( 0 as * const ltc_asn1_list_ ) ) . data as * const _ as
11294                usize } , 8usize , concat ! (
11295                "Alignment of field: " , stringify ! ( ltc_asn1_list_ ) , "::"
11296                , stringify ! ( data ) ));
11297    assert_eq! (unsafe {
11298                & ( * ( 0 as * const ltc_asn1_list_ ) ) . size as * const _ as
11299                usize } , 16usize , concat ! (
11300                "Alignment of field: " , stringify ! ( ltc_asn1_list_ ) , "::"
11301                , stringify ! ( size ) ));
11302    assert_eq! (unsafe {
11303                & ( * ( 0 as * const ltc_asn1_list_ ) ) . used as * const _ as
11304                usize } , 24usize , concat ! (
11305                "Alignment of field: " , stringify ! ( ltc_asn1_list_ ) , "::"
11306                , stringify ! ( used ) ));
11307    assert_eq! (unsafe {
11308                & ( * ( 0 as * const ltc_asn1_list_ ) ) . prev as * const _ as
11309                usize } , 32usize , concat ! (
11310                "Alignment of field: " , stringify ! ( ltc_asn1_list_ ) , "::"
11311                , stringify ! ( prev ) ));
11312    assert_eq! (unsafe {
11313                & ( * ( 0 as * const ltc_asn1_list_ ) ) . next as * const _ as
11314                usize } , 40usize , concat ! (
11315                "Alignment of field: " , stringify ! ( ltc_asn1_list_ ) , "::"
11316                , stringify ! ( next ) ));
11317    assert_eq! (unsafe {
11318                & ( * ( 0 as * const ltc_asn1_list_ ) ) . child as * const _
11319                as usize } , 48usize , concat ! (
11320                "Alignment of field: " , stringify ! ( ltc_asn1_list_ ) , "::"
11321                , stringify ! ( child ) ));
11322    assert_eq! (unsafe {
11323                & ( * ( 0 as * const ltc_asn1_list_ ) ) . parent as * const _
11324                as usize } , 56usize , concat ! (
11325                "Alignment of field: " , stringify ! ( ltc_asn1_list_ ) , "::"
11326                , stringify ! ( parent ) ));
11327}
11328impl Clone for ltc_asn1_list_ {
11329    fn clone(&self) -> Self { *self }
11330}
11331pub type ltc_asn1_list = ltc_asn1_list_;
11332extern "C" {
11333    pub fn der_encode_sequence_ex(list: *mut ltc_asn1_list,
11334                                  inlen: ::std::os::raw::c_ulong,
11335                                  out: *mut ::std::os::raw::c_uchar,
11336                                  outlen: *mut ::std::os::raw::c_ulong,
11337                                  type_of: ::std::os::raw::c_int)
11338     -> ::std::os::raw::c_int;
11339}
11340extern "C" {
11341    pub fn der_decode_sequence_ex(in_: *const ::std::os::raw::c_uchar,
11342                                  inlen: ::std::os::raw::c_ulong,
11343                                  list: *mut ltc_asn1_list,
11344                                  outlen: ::std::os::raw::c_ulong,
11345                                  ordered: ::std::os::raw::c_int)
11346     -> ::std::os::raw::c_int;
11347}
11348extern "C" {
11349    pub fn der_length_sequence(list: *mut ltc_asn1_list,
11350                               inlen: ::std::os::raw::c_ulong,
11351                               outlen: *mut ::std::os::raw::c_ulong)
11352     -> ::std::os::raw::c_int;
11353}
11354extern "C" {
11355    pub fn der_length_sequence_ex(list: *mut ltc_asn1_list,
11356                                  inlen: ::std::os::raw::c_ulong,
11357                                  outlen: *mut ::std::os::raw::c_ulong,
11358                                  payloadlen: *mut ::std::os::raw::c_ulong)
11359     -> ::std::os::raw::c_int;
11360}
11361extern "C" {
11362    pub fn der_encode_subject_public_key_info(out:
11363                                                  *mut ::std::os::raw::c_uchar,
11364                                              outlen:
11365                                                  *mut ::std::os::raw::c_ulong,
11366                                              algorithm:
11367                                                  ::std::os::raw::c_uint,
11368                                              public_key:
11369                                                  *mut ::std::os::raw::c_void,
11370                                              public_key_len:
11371                                                  ::std::os::raw::c_ulong,
11372                                              parameters_type:
11373                                                  ::std::os::raw::c_ulong,
11374                                              parameters:
11375                                                  *mut ::std::os::raw::c_void,
11376                                              parameters_len:
11377                                                  ::std::os::raw::c_ulong)
11378     -> ::std::os::raw::c_int;
11379}
11380extern "C" {
11381    pub fn der_decode_subject_public_key_info(in_:
11382                                                  *const ::std::os::raw::c_uchar,
11383                                              inlen: ::std::os::raw::c_ulong,
11384                                              algorithm:
11385                                                  ::std::os::raw::c_uint,
11386                                              public_key:
11387                                                  *mut ::std::os::raw::c_void,
11388                                              public_key_len:
11389                                                  *mut ::std::os::raw::c_ulong,
11390                                              parameters_type:
11391                                                  ::std::os::raw::c_ulong,
11392                                              parameters: *mut ltc_asn1_list,
11393                                              parameters_len:
11394                                                  ::std::os::raw::c_ulong)
11395     -> ::std::os::raw::c_int;
11396}
11397extern "C" {
11398    pub fn der_encode_set(list: *mut ltc_asn1_list,
11399                          inlen: ::std::os::raw::c_ulong,
11400                          out: *mut ::std::os::raw::c_uchar,
11401                          outlen: *mut ::std::os::raw::c_ulong)
11402     -> ::std::os::raw::c_int;
11403}
11404extern "C" {
11405    pub fn der_encode_setof(list: *mut ltc_asn1_list,
11406                            inlen: ::std::os::raw::c_ulong,
11407                            out: *mut ::std::os::raw::c_uchar,
11408                            outlen: *mut ::std::os::raw::c_ulong)
11409     -> ::std::os::raw::c_int;
11410}
11411extern "C" {
11412    pub fn der_encode_sequence_multi(out: *mut ::std::os::raw::c_uchar,
11413                                     outlen:
11414                                         *mut ::std::os::raw::c_ulong, ...)
11415     -> ::std::os::raw::c_int;
11416}
11417extern "C" {
11418    pub fn der_decode_sequence_multi(in_: *const ::std::os::raw::c_uchar,
11419                                     inlen: ::std::os::raw::c_ulong, ...)
11420     -> ::std::os::raw::c_int;
11421}
11422extern "C" {
11423    pub fn der_decode_sequence_flexi(in_: *const ::std::os::raw::c_uchar,
11424                                     inlen: *mut ::std::os::raw::c_ulong,
11425                                     out: *mut *mut ltc_asn1_list)
11426     -> ::std::os::raw::c_int;
11427}
11428extern "C" {
11429    pub fn der_sequence_free(in_: *mut ltc_asn1_list);
11430}
11431extern "C" {
11432    pub fn der_sequence_shrink(in_: *mut ltc_asn1_list);
11433}
11434extern "C" {
11435    pub fn der_length_boolean(outlen: *mut ::std::os::raw::c_ulong)
11436     -> ::std::os::raw::c_int;
11437}
11438extern "C" {
11439    pub fn der_encode_boolean(in_: ::std::os::raw::c_int,
11440                              out: *mut ::std::os::raw::c_uchar,
11441                              outlen: *mut ::std::os::raw::c_ulong)
11442     -> ::std::os::raw::c_int;
11443}
11444extern "C" {
11445    pub fn der_decode_boolean(in_: *const ::std::os::raw::c_uchar,
11446                              inlen: ::std::os::raw::c_ulong,
11447                              out: *mut ::std::os::raw::c_int)
11448     -> ::std::os::raw::c_int;
11449}
11450extern "C" {
11451    pub fn der_encode_integer(num: *mut ::std::os::raw::c_void,
11452                              out: *mut ::std::os::raw::c_uchar,
11453                              outlen: *mut ::std::os::raw::c_ulong)
11454     -> ::std::os::raw::c_int;
11455}
11456extern "C" {
11457    pub fn der_decode_integer(in_: *const ::std::os::raw::c_uchar,
11458                              inlen: ::std::os::raw::c_ulong,
11459                              num: *mut ::std::os::raw::c_void)
11460     -> ::std::os::raw::c_int;
11461}
11462extern "C" {
11463    pub fn der_length_integer(num: *mut ::std::os::raw::c_void,
11464                              len: *mut ::std::os::raw::c_ulong)
11465     -> ::std::os::raw::c_int;
11466}
11467extern "C" {
11468    pub fn der_decode_short_integer(in_: *const ::std::os::raw::c_uchar,
11469                                    inlen: ::std::os::raw::c_ulong,
11470                                    num: *mut ::std::os::raw::c_ulong)
11471     -> ::std::os::raw::c_int;
11472}
11473extern "C" {
11474    pub fn der_encode_short_integer(num: ::std::os::raw::c_ulong,
11475                                    out: *mut ::std::os::raw::c_uchar,
11476                                    outlen: *mut ::std::os::raw::c_ulong)
11477     -> ::std::os::raw::c_int;
11478}
11479extern "C" {
11480    pub fn der_length_short_integer(num: ::std::os::raw::c_ulong,
11481                                    outlen: *mut ::std::os::raw::c_ulong)
11482     -> ::std::os::raw::c_int;
11483}
11484extern "C" {
11485    pub fn der_encode_bit_string(in_: *const ::std::os::raw::c_uchar,
11486                                 inlen: ::std::os::raw::c_ulong,
11487                                 out: *mut ::std::os::raw::c_uchar,
11488                                 outlen: *mut ::std::os::raw::c_ulong)
11489     -> ::std::os::raw::c_int;
11490}
11491extern "C" {
11492    pub fn der_decode_bit_string(in_: *const ::std::os::raw::c_uchar,
11493                                 inlen: ::std::os::raw::c_ulong,
11494                                 out: *mut ::std::os::raw::c_uchar,
11495                                 outlen: *mut ::std::os::raw::c_ulong)
11496     -> ::std::os::raw::c_int;
11497}
11498extern "C" {
11499    pub fn der_encode_raw_bit_string(in_: *const ::std::os::raw::c_uchar,
11500                                     inlen: ::std::os::raw::c_ulong,
11501                                     out: *mut ::std::os::raw::c_uchar,
11502                                     outlen: *mut ::std::os::raw::c_ulong)
11503     -> ::std::os::raw::c_int;
11504}
11505extern "C" {
11506    pub fn der_decode_raw_bit_string(in_: *const ::std::os::raw::c_uchar,
11507                                     inlen: ::std::os::raw::c_ulong,
11508                                     out: *mut ::std::os::raw::c_uchar,
11509                                     outlen: *mut ::std::os::raw::c_ulong)
11510     -> ::std::os::raw::c_int;
11511}
11512extern "C" {
11513    pub fn der_length_bit_string(nbits: ::std::os::raw::c_ulong,
11514                                 outlen: *mut ::std::os::raw::c_ulong)
11515     -> ::std::os::raw::c_int;
11516}
11517extern "C" {
11518    pub fn der_encode_octet_string(in_: *const ::std::os::raw::c_uchar,
11519                                   inlen: ::std::os::raw::c_ulong,
11520                                   out: *mut ::std::os::raw::c_uchar,
11521                                   outlen: *mut ::std::os::raw::c_ulong)
11522     -> ::std::os::raw::c_int;
11523}
11524extern "C" {
11525    pub fn der_decode_octet_string(in_: *const ::std::os::raw::c_uchar,
11526                                   inlen: ::std::os::raw::c_ulong,
11527                                   out: *mut ::std::os::raw::c_uchar,
11528                                   outlen: *mut ::std::os::raw::c_ulong)
11529     -> ::std::os::raw::c_int;
11530}
11531extern "C" {
11532    pub fn der_length_octet_string(noctets: ::std::os::raw::c_ulong,
11533                                   outlen: *mut ::std::os::raw::c_ulong)
11534     -> ::std::os::raw::c_int;
11535}
11536extern "C" {
11537    pub fn der_encode_object_identifier(words: *mut ::std::os::raw::c_ulong,
11538                                        nwords: ::std::os::raw::c_ulong,
11539                                        out: *mut ::std::os::raw::c_uchar,
11540                                        outlen: *mut ::std::os::raw::c_ulong)
11541     -> ::std::os::raw::c_int;
11542}
11543extern "C" {
11544    pub fn der_decode_object_identifier(in_: *const ::std::os::raw::c_uchar,
11545                                        inlen: ::std::os::raw::c_ulong,
11546                                        words: *mut ::std::os::raw::c_ulong,
11547                                        outlen: *mut ::std::os::raw::c_ulong)
11548     -> ::std::os::raw::c_int;
11549}
11550extern "C" {
11551    pub fn der_length_object_identifier(words: *mut ::std::os::raw::c_ulong,
11552                                        nwords: ::std::os::raw::c_ulong,
11553                                        outlen: *mut ::std::os::raw::c_ulong)
11554     -> ::std::os::raw::c_int;
11555}
11556extern "C" {
11557    pub fn der_object_identifier_bits(x: ::std::os::raw::c_ulong)
11558     -> ::std::os::raw::c_ulong;
11559}
11560extern "C" {
11561    pub fn der_encode_ia5_string(in_: *const ::std::os::raw::c_uchar,
11562                                 inlen: ::std::os::raw::c_ulong,
11563                                 out: *mut ::std::os::raw::c_uchar,
11564                                 outlen: *mut ::std::os::raw::c_ulong)
11565     -> ::std::os::raw::c_int;
11566}
11567extern "C" {
11568    pub fn der_decode_ia5_string(in_: *const ::std::os::raw::c_uchar,
11569                                 inlen: ::std::os::raw::c_ulong,
11570                                 out: *mut ::std::os::raw::c_uchar,
11571                                 outlen: *mut ::std::os::raw::c_ulong)
11572     -> ::std::os::raw::c_int;
11573}
11574extern "C" {
11575    pub fn der_length_ia5_string(octets: *const ::std::os::raw::c_uchar,
11576                                 noctets: ::std::os::raw::c_ulong,
11577                                 outlen: *mut ::std::os::raw::c_ulong)
11578     -> ::std::os::raw::c_int;
11579}
11580extern "C" {
11581    pub fn der_ia5_char_encode(c: ::std::os::raw::c_int)
11582     -> ::std::os::raw::c_int;
11583}
11584extern "C" {
11585    pub fn der_ia5_value_decode(v: ::std::os::raw::c_int)
11586     -> ::std::os::raw::c_int;
11587}
11588extern "C" {
11589    pub fn der_decode_teletex_string(in_: *const ::std::os::raw::c_uchar,
11590                                     inlen: ::std::os::raw::c_ulong,
11591                                     out: *mut ::std::os::raw::c_uchar,
11592                                     outlen: *mut ::std::os::raw::c_ulong)
11593     -> ::std::os::raw::c_int;
11594}
11595extern "C" {
11596    pub fn der_length_teletex_string(octets: *const ::std::os::raw::c_uchar,
11597                                     noctets: ::std::os::raw::c_ulong,
11598                                     outlen: *mut ::std::os::raw::c_ulong)
11599     -> ::std::os::raw::c_int;
11600}
11601extern "C" {
11602    pub fn der_teletex_char_encode(c: ::std::os::raw::c_int)
11603     -> ::std::os::raw::c_int;
11604}
11605extern "C" {
11606    pub fn der_teletex_value_decode(v: ::std::os::raw::c_int)
11607     -> ::std::os::raw::c_int;
11608}
11609extern "C" {
11610    pub fn der_encode_printable_string(in_: *const ::std::os::raw::c_uchar,
11611                                       inlen: ::std::os::raw::c_ulong,
11612                                       out: *mut ::std::os::raw::c_uchar,
11613                                       outlen: *mut ::std::os::raw::c_ulong)
11614     -> ::std::os::raw::c_int;
11615}
11616extern "C" {
11617    pub fn der_decode_printable_string(in_: *const ::std::os::raw::c_uchar,
11618                                       inlen: ::std::os::raw::c_ulong,
11619                                       out: *mut ::std::os::raw::c_uchar,
11620                                       outlen: *mut ::std::os::raw::c_ulong)
11621     -> ::std::os::raw::c_int;
11622}
11623extern "C" {
11624    pub fn der_length_printable_string(octets: *const ::std::os::raw::c_uchar,
11625                                       noctets: ::std::os::raw::c_ulong,
11626                                       outlen: *mut ::std::os::raw::c_ulong)
11627     -> ::std::os::raw::c_int;
11628}
11629extern "C" {
11630    pub fn der_printable_char_encode(c: ::std::os::raw::c_int)
11631     -> ::std::os::raw::c_int;
11632}
11633extern "C" {
11634    pub fn der_printable_value_decode(v: ::std::os::raw::c_int)
11635     -> ::std::os::raw::c_int;
11636}
11637pub type wint_t = ::std::os::raw::c_uint;
11638pub type mbstate_t = __mbstate_t;
11639extern "C" {
11640    pub fn wcscpy(__dest: *mut wchar_t, __src: *const wchar_t)
11641     -> *mut wchar_t;
11642}
11643extern "C" {
11644    pub fn wcsncpy(__dest: *mut wchar_t, __src: *const wchar_t, __n: usize)
11645     -> *mut wchar_t;
11646}
11647extern "C" {
11648    pub fn wcscat(__dest: *mut wchar_t, __src: *const wchar_t)
11649     -> *mut wchar_t;
11650}
11651extern "C" {
11652    pub fn wcsncat(__dest: *mut wchar_t, __src: *const wchar_t, __n: usize)
11653     -> *mut wchar_t;
11654}
11655extern "C" {
11656    pub fn wcscmp(__s1: *const wchar_t, __s2: *const wchar_t)
11657     -> ::std::os::raw::c_int;
11658}
11659extern "C" {
11660    pub fn wcsncmp(__s1: *const wchar_t, __s2: *const wchar_t, __n: usize)
11661     -> ::std::os::raw::c_int;
11662}
11663extern "C" {
11664    pub fn wcscasecmp(__s1: *const wchar_t, __s2: *const wchar_t)
11665     -> ::std::os::raw::c_int;
11666}
11667extern "C" {
11668    pub fn wcsncasecmp(__s1: *const wchar_t, __s2: *const wchar_t, __n: usize)
11669     -> ::std::os::raw::c_int;
11670}
11671extern "C" {
11672    pub fn wcscasecmp_l(__s1: *const wchar_t, __s2: *const wchar_t,
11673                        __loc: locale_t) -> ::std::os::raw::c_int;
11674}
11675extern "C" {
11676    pub fn wcsncasecmp_l(__s1: *const wchar_t, __s2: *const wchar_t,
11677                         __n: usize, __loc: locale_t)
11678     -> ::std::os::raw::c_int;
11679}
11680extern "C" {
11681    pub fn wcscoll(__s1: *const wchar_t, __s2: *const wchar_t)
11682     -> ::std::os::raw::c_int;
11683}
11684extern "C" {
11685    pub fn wcsxfrm(__s1: *mut wchar_t, __s2: *const wchar_t, __n: usize)
11686     -> usize;
11687}
11688extern "C" {
11689    pub fn wcscoll_l(__s1: *const wchar_t, __s2: *const wchar_t,
11690                     __loc: locale_t) -> ::std::os::raw::c_int;
11691}
11692extern "C" {
11693    pub fn wcsxfrm_l(__s1: *mut wchar_t, __s2: *const wchar_t, __n: usize,
11694                     __loc: locale_t) -> usize;
11695}
11696extern "C" {
11697    pub fn wcsdup(__s: *const wchar_t) -> *mut wchar_t;
11698}
11699extern "C" {
11700    pub fn wcschr(__wcs: *const wchar_t, __wc: wchar_t)
11701     -> *mut ::std::os::raw::c_int;
11702}
11703extern "C" {
11704    pub fn wcsrchr(__wcs: *const wchar_t, __wc: wchar_t) -> *mut wchar_t;
11705}
11706extern "C" {
11707    pub fn wcscspn(__wcs: *const wchar_t, __reject: *const wchar_t) -> usize;
11708}
11709extern "C" {
11710    pub fn wcsspn(__wcs: *const wchar_t, __accept: *const wchar_t) -> usize;
11711}
11712extern "C" {
11713    pub fn wcspbrk(__wcs: *const wchar_t, __accept: *const wchar_t)
11714     -> *mut wchar_t;
11715}
11716extern "C" {
11717    pub fn wcsstr(__haystack: *const wchar_t, __needle: *const wchar_t)
11718     -> *mut wchar_t;
11719}
11720extern "C" {
11721    pub fn wcstok(__s: *mut wchar_t, __delim: *const wchar_t,
11722                  __ptr: *mut *mut wchar_t) -> *mut wchar_t;
11723}
11724extern "C" {
11725    pub fn wcslen(__s: *const wchar_t) -> ::std::os::raw::c_ulong;
11726}
11727extern "C" {
11728    pub fn wcsnlen(__s: *const wchar_t, __maxlen: usize) -> usize;
11729}
11730extern "C" {
11731    pub fn wmemchr(__s: *const wchar_t, __c: wchar_t, __n: usize)
11732     -> *mut ::std::os::raw::c_int;
11733}
11734extern "C" {
11735    pub fn wmemcmp(__s1: *const wchar_t, __s2: *const wchar_t, __n: usize)
11736     -> ::std::os::raw::c_int;
11737}
11738extern "C" {
11739    pub fn wmemcpy(__s1: *mut wchar_t, __s2: *const wchar_t, __n: usize)
11740     -> *mut wchar_t;
11741}
11742extern "C" {
11743    pub fn wmemmove(__s1: *mut wchar_t, __s2: *const wchar_t, __n: usize)
11744     -> *mut wchar_t;
11745}
11746extern "C" {
11747    pub fn wmemset(__s: *mut wchar_t, __c: wchar_t, __n: usize)
11748     -> *mut wchar_t;
11749}
11750extern "C" {
11751    pub fn btowc(__c: ::std::os::raw::c_int) -> wint_t;
11752}
11753extern "C" {
11754    pub fn wctob(__c: wint_t) -> ::std::os::raw::c_int;
11755}
11756extern "C" {
11757    pub fn mbsinit(__ps: *const mbstate_t) -> ::std::os::raw::c_int;
11758}
11759extern "C" {
11760    pub fn mbrtowc(__pwc: *mut wchar_t, __s: *const ::std::os::raw::c_char,
11761                   __n: usize, __p: *mut mbstate_t) -> usize;
11762}
11763extern "C" {
11764    pub fn wcrtomb(__s: *mut ::std::os::raw::c_char, __wc: wchar_t,
11765                   __ps: *mut mbstate_t) -> usize;
11766}
11767extern "C" {
11768    pub fn __mbrlen(__s: *const ::std::os::raw::c_char, __n: usize,
11769                    __ps: *mut mbstate_t) -> usize;
11770}
11771extern "C" {
11772    pub fn mbrlen(__s: *const ::std::os::raw::c_char, __n: usize,
11773                  __ps: *mut mbstate_t) -> usize;
11774}
11775extern "C" {
11776    pub fn mbsrtowcs(__dst: *mut wchar_t,
11777                     __src: *mut *const ::std::os::raw::c_char, __len: usize,
11778                     __ps: *mut mbstate_t) -> usize;
11779}
11780extern "C" {
11781    pub fn wcsrtombs(__dst: *mut ::std::os::raw::c_char,
11782                     __src: *mut *const wchar_t, __len: usize,
11783                     __ps: *mut mbstate_t) -> usize;
11784}
11785extern "C" {
11786    pub fn mbsnrtowcs(__dst: *mut wchar_t,
11787                      __src: *mut *const ::std::os::raw::c_char, __nmc: usize,
11788                      __len: usize, __ps: *mut mbstate_t) -> usize;
11789}
11790extern "C" {
11791    pub fn wcsnrtombs(__dst: *mut ::std::os::raw::c_char,
11792                      __src: *mut *const wchar_t, __nwc: usize, __len: usize,
11793                      __ps: *mut mbstate_t) -> usize;
11794}
11795extern "C" {
11796    pub fn wcstod(__nptr: *const wchar_t, __endptr: *mut *mut wchar_t) -> f64;
11797}
11798extern "C" {
11799    pub fn wcstof(__nptr: *const wchar_t, __endptr: *mut *mut wchar_t) -> f32;
11800}
11801extern "C" {
11802    pub fn wcstold(__nptr: *const wchar_t, __endptr: *mut *mut wchar_t)
11803     -> f64;
11804}
11805extern "C" {
11806    pub fn wcstol(__nptr: *const wchar_t, __endptr: *mut *mut wchar_t,
11807                  __base: ::std::os::raw::c_int) -> ::std::os::raw::c_long;
11808}
11809extern "C" {
11810    pub fn wcstoul(__nptr: *const wchar_t, __endptr: *mut *mut wchar_t,
11811                   __base: ::std::os::raw::c_int) -> ::std::os::raw::c_ulong;
11812}
11813extern "C" {
11814    pub fn wcstoll(__nptr: *const wchar_t, __endptr: *mut *mut wchar_t,
11815                   __base: ::std::os::raw::c_int)
11816     -> ::std::os::raw::c_longlong;
11817}
11818extern "C" {
11819    pub fn wcstoull(__nptr: *const wchar_t, __endptr: *mut *mut wchar_t,
11820                    __base: ::std::os::raw::c_int)
11821     -> ::std::os::raw::c_ulonglong;
11822}
11823extern "C" {
11824    pub fn wcpcpy(__dest: *mut wchar_t, __src: *const wchar_t)
11825     -> *mut wchar_t;
11826}
11827extern "C" {
11828    pub fn wcpncpy(__dest: *mut wchar_t, __src: *const wchar_t, __n: usize)
11829     -> *mut wchar_t;
11830}
11831extern "C" {
11832    pub fn open_wmemstream(__bufloc: *mut *mut wchar_t, __sizeloc: *mut usize)
11833     -> *mut __FILE;
11834}
11835extern "C" {
11836    pub fn fwide(__fp: *mut __FILE, __mode: ::std::os::raw::c_int)
11837     -> ::std::os::raw::c_int;
11838}
11839extern "C" {
11840    pub fn fwprintf(__stream: *mut __FILE, __format: *const wchar_t, ...)
11841     -> ::std::os::raw::c_int;
11842}
11843extern "C" {
11844    pub fn wprintf(__format: *const wchar_t, ...) -> ::std::os::raw::c_int;
11845}
11846extern "C" {
11847    pub fn swprintf(__s: *mut wchar_t, __n: usize,
11848                    __format: *const wchar_t, ...) -> ::std::os::raw::c_int;
11849}
11850extern "C" {
11851    pub fn vfwprintf(__s: *mut __FILE, __format: *const wchar_t,
11852                     __arg: *mut __va_list_tag) -> ::std::os::raw::c_int;
11853}
11854extern "C" {
11855    pub fn vwprintf(__format: *const wchar_t, __arg: *mut __va_list_tag)
11856     -> ::std::os::raw::c_int;
11857}
11858extern "C" {
11859    pub fn vswprintf(__s: *mut wchar_t, __n: usize, __format: *const wchar_t,
11860                     __arg: *mut __va_list_tag) -> ::std::os::raw::c_int;
11861}
11862extern "C" {
11863    pub fn fwscanf(__stream: *mut __FILE, __format: *const wchar_t, ...)
11864     -> ::std::os::raw::c_int;
11865}
11866extern "C" {
11867    pub fn wscanf(__format: *const wchar_t, ...) -> ::std::os::raw::c_int;
11868}
11869extern "C" {
11870    pub fn swscanf(__s: *const wchar_t, __format: *const wchar_t, ...)
11871     -> ::std::os::raw::c_int;
11872}
11873extern "C" {
11874    #[link_name = "__isoc99_fwscanf"]
11875    pub fn fwscanf1(__stream: *mut __FILE, __format: *const wchar_t, ...)
11876     -> ::std::os::raw::c_int;
11877}
11878extern "C" {
11879    #[link_name = "__isoc99_wscanf"]
11880    pub fn wscanf1(__format: *const wchar_t, ...) -> ::std::os::raw::c_int;
11881}
11882extern "C" {
11883    #[link_name = "__isoc99_swscanf"]
11884    pub fn swscanf1(__s: *const wchar_t, __format: *const wchar_t, ...)
11885     -> ::std::os::raw::c_int;
11886}
11887extern "C" {
11888    pub fn vfwscanf(__s: *mut __FILE, __format: *const wchar_t,
11889                    __arg: *mut __va_list_tag) -> ::std::os::raw::c_int;
11890}
11891extern "C" {
11892    pub fn vwscanf(__format: *const wchar_t, __arg: *mut __va_list_tag)
11893     -> ::std::os::raw::c_int;
11894}
11895extern "C" {
11896    pub fn vswscanf(__s: *const wchar_t, __format: *const wchar_t,
11897                    __arg: *mut __va_list_tag) -> ::std::os::raw::c_int;
11898}
11899extern "C" {
11900    #[link_name = "__isoc99_vfwscanf"]
11901    pub fn vfwscanf1(__s: *mut __FILE, __format: *const wchar_t,
11902                     __arg: *mut __va_list_tag) -> ::std::os::raw::c_int;
11903}
11904extern "C" {
11905    #[link_name = "__isoc99_vwscanf"]
11906    pub fn vwscanf1(__format: *const wchar_t, __arg: *mut __va_list_tag)
11907     -> ::std::os::raw::c_int;
11908}
11909extern "C" {
11910    #[link_name = "__isoc99_vswscanf"]
11911    pub fn vswscanf1(__s: *const wchar_t, __format: *const wchar_t,
11912                     __arg: *mut __va_list_tag) -> ::std::os::raw::c_int;
11913}
11914extern "C" {
11915    pub fn fgetwc(__stream: *mut __FILE) -> wint_t;
11916}
11917extern "C" {
11918    pub fn getwc(__stream: *mut __FILE) -> wint_t;
11919}
11920extern "C" {
11921    pub fn getwchar() -> wint_t;
11922}
11923extern "C" {
11924    pub fn fputwc(__wc: wchar_t, __stream: *mut __FILE) -> wint_t;
11925}
11926extern "C" {
11927    pub fn putwc(__wc: wchar_t, __stream: *mut __FILE) -> wint_t;
11928}
11929extern "C" {
11930    pub fn putwchar(__wc: wchar_t) -> wint_t;
11931}
11932extern "C" {
11933    pub fn fgetws(__ws: *mut wchar_t, __n: ::std::os::raw::c_int,
11934                  __stream: *mut __FILE) -> *mut wchar_t;
11935}
11936extern "C" {
11937    pub fn fputws(__ws: *const wchar_t, __stream: *mut __FILE)
11938     -> ::std::os::raw::c_int;
11939}
11940extern "C" {
11941    pub fn ungetwc(__wc: wint_t, __stream: *mut __FILE) -> wint_t;
11942}
11943extern "C" {
11944    pub fn wcsftime(__s: *mut wchar_t, __maxsize: usize,
11945                    __format: *const wchar_t, __tp: *const tm) -> usize;
11946}
11947extern "C" {
11948    pub fn der_encode_utf8_string(in_: *const wchar_t,
11949                                  inlen: ::std::os::raw::c_ulong,
11950                                  out: *mut ::std::os::raw::c_uchar,
11951                                  outlen: *mut ::std::os::raw::c_ulong)
11952     -> ::std::os::raw::c_int;
11953}
11954extern "C" {
11955    pub fn der_decode_utf8_string(in_: *const ::std::os::raw::c_uchar,
11956                                  inlen: ::std::os::raw::c_ulong,
11957                                  out: *mut wchar_t,
11958                                  outlen: *mut ::std::os::raw::c_ulong)
11959     -> ::std::os::raw::c_int;
11960}
11961extern "C" {
11962    pub fn der_utf8_charsize(c: wchar_t) -> ::std::os::raw::c_ulong;
11963}
11964extern "C" {
11965    pub fn der_utf8_valid_char(c: wchar_t) -> ::std::os::raw::c_int;
11966}
11967extern "C" {
11968    pub fn der_length_utf8_string(in_: *const wchar_t,
11969                                  noctets: ::std::os::raw::c_ulong,
11970                                  outlen: *mut ::std::os::raw::c_ulong)
11971     -> ::std::os::raw::c_int;
11972}
11973extern "C" {
11974    pub fn der_decode_choice(in_: *const ::std::os::raw::c_uchar,
11975                             inlen: *mut ::std::os::raw::c_ulong,
11976                             list: *mut ltc_asn1_list,
11977                             outlen: ::std::os::raw::c_ulong)
11978     -> ::std::os::raw::c_int;
11979}
11980#[repr(C)]
11981#[derive(Debug, Copy)]
11982pub struct ltc_utctime {
11983    pub YY: ::std::os::raw::c_uint,
11984    pub MM: ::std::os::raw::c_uint,
11985    pub DD: ::std::os::raw::c_uint,
11986    pub hh: ::std::os::raw::c_uint,
11987    pub mm: ::std::os::raw::c_uint,
11988    pub ss: ::std::os::raw::c_uint,
11989    pub off_dir: ::std::os::raw::c_uint,
11990    pub off_hh: ::std::os::raw::c_uint,
11991    pub off_mm: ::std::os::raw::c_uint,
11992}
11993#[test]
11994fn bindgen_test_layout_ltc_utctime() {
11995    assert_eq!(::std::mem::size_of::<ltc_utctime>() , 36usize , concat ! (
11996               "Size of: " , stringify ! ( ltc_utctime ) ));
11997    assert_eq! (::std::mem::align_of::<ltc_utctime>() , 4usize , concat ! (
11998                "Alignment of " , stringify ! ( ltc_utctime ) ));
11999    assert_eq! (unsafe {
12000                & ( * ( 0 as * const ltc_utctime ) ) . YY as * const _ as
12001                usize } , 0usize , concat ! (
12002                "Alignment of field: " , stringify ! ( ltc_utctime ) , "::" ,
12003                stringify ! ( YY ) ));
12004    assert_eq! (unsafe {
12005                & ( * ( 0 as * const ltc_utctime ) ) . MM as * const _ as
12006                usize } , 4usize , concat ! (
12007                "Alignment of field: " , stringify ! ( ltc_utctime ) , "::" ,
12008                stringify ! ( MM ) ));
12009    assert_eq! (unsafe {
12010                & ( * ( 0 as * const ltc_utctime ) ) . DD as * const _ as
12011                usize } , 8usize , concat ! (
12012                "Alignment of field: " , stringify ! ( ltc_utctime ) , "::" ,
12013                stringify ! ( DD ) ));
12014    assert_eq! (unsafe {
12015                & ( * ( 0 as * const ltc_utctime ) ) . hh as * const _ as
12016                usize } , 12usize , concat ! (
12017                "Alignment of field: " , stringify ! ( ltc_utctime ) , "::" ,
12018                stringify ! ( hh ) ));
12019    assert_eq! (unsafe {
12020                & ( * ( 0 as * const ltc_utctime ) ) . mm as * const _ as
12021                usize } , 16usize , concat ! (
12022                "Alignment of field: " , stringify ! ( ltc_utctime ) , "::" ,
12023                stringify ! ( mm ) ));
12024    assert_eq! (unsafe {
12025                & ( * ( 0 as * const ltc_utctime ) ) . ss as * const _ as
12026                usize } , 20usize , concat ! (
12027                "Alignment of field: " , stringify ! ( ltc_utctime ) , "::" ,
12028                stringify ! ( ss ) ));
12029    assert_eq! (unsafe {
12030                & ( * ( 0 as * const ltc_utctime ) ) . off_dir as * const _ as
12031                usize } , 24usize , concat ! (
12032                "Alignment of field: " , stringify ! ( ltc_utctime ) , "::" ,
12033                stringify ! ( off_dir ) ));
12034    assert_eq! (unsafe {
12035                & ( * ( 0 as * const ltc_utctime ) ) . off_hh as * const _ as
12036                usize } , 28usize , concat ! (
12037                "Alignment of field: " , stringify ! ( ltc_utctime ) , "::" ,
12038                stringify ! ( off_hh ) ));
12039    assert_eq! (unsafe {
12040                & ( * ( 0 as * const ltc_utctime ) ) . off_mm as * const _ as
12041                usize } , 32usize , concat ! (
12042                "Alignment of field: " , stringify ! ( ltc_utctime ) , "::" ,
12043                stringify ! ( off_mm ) ));
12044}
12045impl Clone for ltc_utctime {
12046    fn clone(&self) -> Self { *self }
12047}
12048extern "C" {
12049    pub fn der_encode_utctime(utctime: *mut ltc_utctime,
12050                              out: *mut ::std::os::raw::c_uchar,
12051                              outlen: *mut ::std::os::raw::c_ulong)
12052     -> ::std::os::raw::c_int;
12053}
12054extern "C" {
12055    pub fn der_decode_utctime(in_: *const ::std::os::raw::c_uchar,
12056                              inlen: *mut ::std::os::raw::c_ulong,
12057                              out: *mut ltc_utctime) -> ::std::os::raw::c_int;
12058}
12059extern "C" {
12060    pub fn der_length_utctime(utctime: *mut ltc_utctime,
12061                              outlen: *mut ::std::os::raw::c_ulong)
12062     -> ::std::os::raw::c_int;
12063}
12064#[repr(C)]
12065#[derive(Debug, Copy)]
12066pub struct ltc_generalizedtime {
12067    pub YYYY: ::std::os::raw::c_uint,
12068    pub MM: ::std::os::raw::c_uint,
12069    pub DD: ::std::os::raw::c_uint,
12070    pub hh: ::std::os::raw::c_uint,
12071    pub mm: ::std::os::raw::c_uint,
12072    pub ss: ::std::os::raw::c_uint,
12073    pub fs: ::std::os::raw::c_uint,
12074    pub off_dir: ::std::os::raw::c_uint,
12075    pub off_hh: ::std::os::raw::c_uint,
12076    pub off_mm: ::std::os::raw::c_uint,
12077}
12078#[test]
12079fn bindgen_test_layout_ltc_generalizedtime() {
12080    assert_eq!(::std::mem::size_of::<ltc_generalizedtime>() , 40usize , concat
12081               ! ( "Size of: " , stringify ! ( ltc_generalizedtime ) ));
12082    assert_eq! (::std::mem::align_of::<ltc_generalizedtime>() , 4usize ,
12083                concat ! (
12084                "Alignment of " , stringify ! ( ltc_generalizedtime ) ));
12085    assert_eq! (unsafe {
12086                & ( * ( 0 as * const ltc_generalizedtime ) ) . YYYY as * const
12087                _ as usize } , 0usize , concat ! (
12088                "Alignment of field: " , stringify ! ( ltc_generalizedtime ) ,
12089                "::" , stringify ! ( YYYY ) ));
12090    assert_eq! (unsafe {
12091                & ( * ( 0 as * const ltc_generalizedtime ) ) . MM as * const _
12092                as usize } , 4usize , concat ! (
12093                "Alignment of field: " , stringify ! ( ltc_generalizedtime ) ,
12094                "::" , stringify ! ( MM ) ));
12095    assert_eq! (unsafe {
12096                & ( * ( 0 as * const ltc_generalizedtime ) ) . DD as * const _
12097                as usize } , 8usize , concat ! (
12098                "Alignment of field: " , stringify ! ( ltc_generalizedtime ) ,
12099                "::" , stringify ! ( DD ) ));
12100    assert_eq! (unsafe {
12101                & ( * ( 0 as * const ltc_generalizedtime ) ) . hh as * const _
12102                as usize } , 12usize , concat ! (
12103                "Alignment of field: " , stringify ! ( ltc_generalizedtime ) ,
12104                "::" , stringify ! ( hh ) ));
12105    assert_eq! (unsafe {
12106                & ( * ( 0 as * const ltc_generalizedtime ) ) . mm as * const _
12107                as usize } , 16usize , concat ! (
12108                "Alignment of field: " , stringify ! ( ltc_generalizedtime ) ,
12109                "::" , stringify ! ( mm ) ));
12110    assert_eq! (unsafe {
12111                & ( * ( 0 as * const ltc_generalizedtime ) ) . ss as * const _
12112                as usize } , 20usize , concat ! (
12113                "Alignment of field: " , stringify ! ( ltc_generalizedtime ) ,
12114                "::" , stringify ! ( ss ) ));
12115    assert_eq! (unsafe {
12116                & ( * ( 0 as * const ltc_generalizedtime ) ) . fs as * const _
12117                as usize } , 24usize , concat ! (
12118                "Alignment of field: " , stringify ! ( ltc_generalizedtime ) ,
12119                "::" , stringify ! ( fs ) ));
12120    assert_eq! (unsafe {
12121                & ( * ( 0 as * const ltc_generalizedtime ) ) . off_dir as *
12122                const _ as usize } , 28usize , concat ! (
12123                "Alignment of field: " , stringify ! ( ltc_generalizedtime ) ,
12124                "::" , stringify ! ( off_dir ) ));
12125    assert_eq! (unsafe {
12126                & ( * ( 0 as * const ltc_generalizedtime ) ) . off_hh as *
12127                const _ as usize } , 32usize , concat ! (
12128                "Alignment of field: " , stringify ! ( ltc_generalizedtime ) ,
12129                "::" , stringify ! ( off_hh ) ));
12130    assert_eq! (unsafe {
12131                & ( * ( 0 as * const ltc_generalizedtime ) ) . off_mm as *
12132                const _ as usize } , 36usize , concat ! (
12133                "Alignment of field: " , stringify ! ( ltc_generalizedtime ) ,
12134                "::" , stringify ! ( off_mm ) ));
12135}
12136impl Clone for ltc_generalizedtime {
12137    fn clone(&self) -> Self { *self }
12138}
12139extern "C" {
12140    pub fn der_encode_generalizedtime(gtime: *mut ltc_generalizedtime,
12141                                      out: *mut ::std::os::raw::c_uchar,
12142                                      outlen: *mut ::std::os::raw::c_ulong)
12143     -> ::std::os::raw::c_int;
12144}
12145extern "C" {
12146    pub fn der_decode_generalizedtime(in_: *const ::std::os::raw::c_uchar,
12147                                      inlen: *mut ::std::os::raw::c_ulong,
12148                                      out: *mut ltc_generalizedtime)
12149     -> ::std::os::raw::c_int;
12150}
12151extern "C" {
12152    pub fn der_length_generalizedtime(gtime: *mut ltc_generalizedtime,
12153                                      outlen: *mut ::std::os::raw::c_ulong)
12154     -> ::std::os::raw::c_int;
12155}
12156extern "C" {
12157    pub fn radix_to_bin(in_: *const ::std::os::raw::c_void,
12158                        radix: ::std::os::raw::c_int,
12159                        out: *mut ::std::os::raw::c_void,
12160                        len: *mut ::std::os::raw::c_ulong)
12161     -> ::std::os::raw::c_int;
12162}
12163/// math descriptor
12164#[repr(C)]
12165#[derive(Debug, Copy)]
12166pub struct ltc_math_descriptor {
12167    /// Name of the math provider
12168    pub name: *const ::std::os::raw::c_char,
12169    /// Bits per digit, amount of bits must fit in an unsigned long
12170    pub bits_per_digit: ::std::os::raw::c_int,
12171    /// initialize a bignum
12172    /// @param   a     The number to initialize
12173    /// @return  CRYPT_OK on success
12174    pub init: ::std::option::Option<unsafe extern "C" fn(a:
12175                                                             *mut *mut ::std::os::raw::c_void)
12176                                        -> ::std::os::raw::c_int>,
12177    /// init copy
12178    /// @param  dst    The number to initialize and write to
12179    /// @param  src    The number to copy from
12180    /// @return CRYPT_OK on success
12181    pub init_copy: ::std::option::Option<unsafe extern "C" fn(dst:
12182                                                                  *mut *mut ::std::os::raw::c_void,
12183                                                              src:
12184                                                                  *mut ::std::os::raw::c_void)
12185                                             -> ::std::os::raw::c_int>,
12186    /// deinit
12187    /// @param   a    The number to free
12188    /// @return CRYPT_OK on success
12189    pub deinit: ::std::option::Option<unsafe extern "C" fn(a:
12190                                                               *mut ::std::os::raw::c_void)>,
12191    /// negate
12192    /// @param   src   The number to negate
12193    /// @param   dst   The destination
12194    /// @return CRYPT_OK on success
12195    pub neg: ::std::option::Option<unsafe extern "C" fn(src:
12196                                                            *mut ::std::os::raw::c_void,
12197                                                        dst:
12198                                                            *mut ::std::os::raw::c_void)
12199                                       -> ::std::os::raw::c_int>,
12200    /// copy
12201    /// @param   src   The number to copy from
12202    /// @param   dst   The number to write to
12203    /// @return CRYPT_OK on success
12204    pub copy: ::std::option::Option<unsafe extern "C" fn(src:
12205                                                             *mut ::std::os::raw::c_void,
12206                                                         dst:
12207                                                             *mut ::std::os::raw::c_void)
12208                                        -> ::std::os::raw::c_int>,
12209    /// set small constant
12210    /// @param a    Number to write to
12211    /// @param n    Source upto bits_per_digit (actually meant for very small constants)
12212    /// @return CRYPT_OK on success
12213    pub set_int: ::std::option::Option<unsafe extern "C" fn(a:
12214                                                                *mut ::std::os::raw::c_void,
12215                                                            n: ltc_mp_digit)
12216                                           -> ::std::os::raw::c_int>,
12217    /// get small constant
12218    /// @param a  Small number to read,
12219    /// only fetches up to bits_per_digit from the number
12220    /// @return   The lower bits_per_digit of the integer (unsigned)
12221    pub get_int: ::std::option::Option<unsafe extern "C" fn(a:
12222                                                                *mut ::std::os::raw::c_void)
12223                                           -> ::std::os::raw::c_ulong>,
12224    /// get digit n
12225    /// @param a  The number to read from
12226    /// @param n  The number of the digit to fetch
12227    /// @return  The bits_per_digit  sized n'th digit of a
12228    pub get_digit: ::std::option::Option<unsafe extern "C" fn(a:
12229                                                                  *mut ::std::os::raw::c_void,
12230                                                              n:
12231                                                                  ::std::os::raw::c_int)
12232                                             -> ltc_mp_digit>,
12233    /// Get the number of digits that represent the number
12234    /// @param a   The number to count
12235    /// @return The number of digits used to represent the number
12236    pub get_digit_count: ::std::option::Option<unsafe extern "C" fn(a:
12237                                                                        *mut ::std::os::raw::c_void)
12238                                                   -> ::std::os::raw::c_int>,
12239    /// compare two integers
12240    /// @param a   The left side integer
12241    /// @param b   The right side integer
12242    /// @return LTC_MP_LT if a < b,
12243    /// LTC_MP_GT if a > b and
12244    /// LTC_MP_EQ otherwise.  (signed comparison)
12245    pub compare: ::std::option::Option<unsafe extern "C" fn(a:
12246                                                                *mut ::std::os::raw::c_void,
12247                                                            b:
12248                                                                *mut ::std::os::raw::c_void)
12249                                           -> ::std::os::raw::c_int>,
12250    /// compare against int
12251    /// @param a   The left side integer
12252    /// @param b   The right side integer (upto bits_per_digit)
12253    /// @return LTC_MP_LT if a < b,
12254    /// LTC_MP_GT if a > b and
12255    /// LTC_MP_EQ otherwise.  (signed comparison)
12256    pub compare_d: ::std::option::Option<unsafe extern "C" fn(a:
12257                                                                  *mut ::std::os::raw::c_void,
12258                                                              n: ltc_mp_digit)
12259                                             -> ::std::os::raw::c_int>,
12260    /// Count the number of bits used to represent the integer
12261    /// @param a   The integer to count
12262    /// @return The number of bits required to represent the integer
12263    pub count_bits: ::std::option::Option<unsafe extern "C" fn(a:
12264                                                                   *mut ::std::os::raw::c_void)
12265                                              -> ::std::os::raw::c_int>,
12266    /// Count the number of LSB bits which are zero
12267    /// @param a   The integer to count
12268    /// @return The number of contiguous zero LSB bits
12269    pub count_lsb_bits: ::std::option::Option<unsafe extern "C" fn(a:
12270                                                                       *mut ::std::os::raw::c_void)
12271                                                  -> ::std::os::raw::c_int>,
12272    /// Compute a power of two
12273    /// @param a  The integer to store the power in
12274    /// @param n  The power of two you want to store (a = 2^n)
12275    /// @return CRYPT_OK on success
12276    pub twoexpt: ::std::option::Option<unsafe extern "C" fn(a:
12277                                                                *mut ::std::os::raw::c_void,
12278                                                            n:
12279                                                                ::std::os::raw::c_int)
12280                                           -> ::std::os::raw::c_int>,
12281    /// read ascii string
12282    /// @param a     The integer to store into
12283    /// @param str   The string to read
12284    /// @param radix The radix the integer has been represented in (2-64)
12285    /// @return CRYPT_OK on success
12286    pub read_radix: ::std::option::Option<unsafe extern "C" fn(a:
12287                                                                   *mut ::std::os::raw::c_void,
12288                                                               str:
12289                                                                   *const ::std::os::raw::c_char,
12290                                                               radix:
12291                                                                   ::std::os::raw::c_int)
12292                                              -> ::std::os::raw::c_int>,
12293    /// write number to string
12294    /// @param a     The integer to store
12295    /// @param str   The destination for the string
12296    /// @param radix The radix the integer is to be represented in (2-64)
12297    /// @return CRYPT_OK on success
12298    pub write_radix: ::std::option::Option<unsafe extern "C" fn(a:
12299                                                                    *mut ::std::os::raw::c_void,
12300                                                                str:
12301                                                                    *mut ::std::os::raw::c_char,
12302                                                                radix:
12303                                                                    ::std::os::raw::c_int)
12304                                               -> ::std::os::raw::c_int>,
12305    /// get size as unsigned char string
12306    /// @param a  The integer to get the size (when stored in array of octets)
12307    /// @return   The length of the integer in octets
12308    pub unsigned_size: ::std::option::Option<unsafe extern "C" fn(a:
12309                                                                      *mut ::std::os::raw::c_void)
12310                                                 -> ::std::os::raw::c_ulong>,
12311    /// store an integer as an array of octets
12312    /// @param src   The integer to store
12313    /// @param dst   The buffer to store the integer in
12314    /// @return CRYPT_OK on success
12315    pub unsigned_write: ::std::option::Option<unsafe extern "C" fn(src:
12316                                                                       *mut ::std::os::raw::c_void,
12317                                                                   dst:
12318                                                                       *mut ::std::os::raw::c_uchar)
12319                                                  -> ::std::os::raw::c_int>,
12320    /// read an array of octets and store as integer
12321    /// @param dst   The integer to load
12322    /// @param src   The array of octets
12323    /// @param len   The number of octets
12324    /// @return CRYPT_OK on success
12325    pub unsigned_read: ::std::option::Option<unsafe extern "C" fn(dst:
12326                                                                      *mut ::std::os::raw::c_void,
12327                                                                  src:
12328                                                                      *mut ::std::os::raw::c_uchar,
12329                                                                  len:
12330                                                                      ::std::os::raw::c_ulong)
12331                                                 -> ::std::os::raw::c_int>,
12332    /// add two integers
12333    /// @param a   The first source integer
12334    /// @param b   The second source integer
12335    /// @param c   The destination of "a + b"
12336    /// @return CRYPT_OK on success
12337    pub add: ::std::option::Option<unsafe extern "C" fn(a:
12338                                                            *mut ::std::os::raw::c_void,
12339                                                        b:
12340                                                            *mut ::std::os::raw::c_void,
12341                                                        c:
12342                                                            *mut ::std::os::raw::c_void)
12343                                       -> ::std::os::raw::c_int>,
12344    /// add two integers
12345    /// @param a   The first source integer
12346    /// @param b   The second source integer
12347    /// (single digit of upto bits_per_digit in length)
12348    /// @param c   The destination of "a + b"
12349    /// @return CRYPT_OK on success
12350    pub addi: ::std::option::Option<unsafe extern "C" fn(a:
12351                                                             *mut ::std::os::raw::c_void,
12352                                                         b: ltc_mp_digit,
12353                                                         c:
12354                                                             *mut ::std::os::raw::c_void)
12355                                        -> ::std::os::raw::c_int>,
12356    /// subtract two integers
12357    /// @param a   The first source integer
12358    /// @param b   The second source integer
12359    /// @param c   The destination of "a - b"
12360    /// @return CRYPT_OK on success
12361    pub sub: ::std::option::Option<unsafe extern "C" fn(a:
12362                                                            *mut ::std::os::raw::c_void,
12363                                                        b:
12364                                                            *mut ::std::os::raw::c_void,
12365                                                        c:
12366                                                            *mut ::std::os::raw::c_void)
12367                                       -> ::std::os::raw::c_int>,
12368    /// subtract two integers
12369    /// @param a   The first source integer
12370    /// @param b   The second source integer
12371    /// (single digit of upto bits_per_digit in length)
12372    /// @param c   The destination of "a - b"
12373    /// @return CRYPT_OK on success
12374    pub subi: ::std::option::Option<unsafe extern "C" fn(a:
12375                                                             *mut ::std::os::raw::c_void,
12376                                                         b: ltc_mp_digit,
12377                                                         c:
12378                                                             *mut ::std::os::raw::c_void)
12379                                        -> ::std::os::raw::c_int>,
12380    /// multiply two integers
12381    /// @param a   The first source integer
12382    /// @param b   The second source integer
12383    /// (single digit of upto bits_per_digit in length)
12384    /// @param c   The destination of "a * b"
12385    /// @return CRYPT_OK on success
12386    pub mul: ::std::option::Option<unsafe extern "C" fn(a:
12387                                                            *mut ::std::os::raw::c_void,
12388                                                        b:
12389                                                            *mut ::std::os::raw::c_void,
12390                                                        c:
12391                                                            *mut ::std::os::raw::c_void)
12392                                       -> ::std::os::raw::c_int>,
12393    /// multiply two integers
12394    /// @param a   The first source integer
12395    /// @param b   The second source integer
12396    /// (single digit of upto bits_per_digit in length)
12397    /// @param c   The destination of "a * b"
12398    /// @return CRYPT_OK on success
12399    pub muli: ::std::option::Option<unsafe extern "C" fn(a:
12400                                                             *mut ::std::os::raw::c_void,
12401                                                         b: ltc_mp_digit,
12402                                                         c:
12403                                                             *mut ::std::os::raw::c_void)
12404                                        -> ::std::os::raw::c_int>,
12405    /// Square an integer
12406    /// @param a    The integer to square
12407    /// @param b    The destination
12408    /// @return CRYPT_OK on success
12409    pub sqr: ::std::option::Option<unsafe extern "C" fn(a:
12410                                                            *mut ::std::os::raw::c_void,
12411                                                        b:
12412                                                            *mut ::std::os::raw::c_void)
12413                                       -> ::std::os::raw::c_int>,
12414    /// Divide an integer
12415    /// @param a    The dividend
12416    /// @param b    The divisor
12417    /// @param c    The quotient (can be NULL to signify don't care)
12418    /// @param d    The remainder (can be NULL to signify don't care)
12419    /// @return CRYPT_OK on success
12420    pub mpdiv: ::std::option::Option<unsafe extern "C" fn(a:
12421                                                              *mut ::std::os::raw::c_void,
12422                                                          b:
12423                                                              *mut ::std::os::raw::c_void,
12424                                                          c:
12425                                                              *mut ::std::os::raw::c_void,
12426                                                          d:
12427                                                              *mut ::std::os::raw::c_void)
12428                                         -> ::std::os::raw::c_int>,
12429    /// divide by two
12430    /// @param  a   The integer to divide (shift right)
12431    /// @param  b   The destination
12432    /// @return CRYPT_OK on success
12433    pub div_2: ::std::option::Option<unsafe extern "C" fn(a:
12434                                                              *mut ::std::os::raw::c_void,
12435                                                          b:
12436                                                              *mut ::std::os::raw::c_void)
12437                                         -> ::std::os::raw::c_int>,
12438    /// Get remainder (small value)
12439    /// @param  a    The integer to reduce
12440    /// @param  b    The modulus (upto bits_per_digit in length)
12441    /// @param  c    The destination for the residue
12442    /// @return CRYPT_OK on success
12443    pub modi: ::std::option::Option<unsafe extern "C" fn(a:
12444                                                             *mut ::std::os::raw::c_void,
12445                                                         b: ltc_mp_digit,
12446                                                         c: *mut ltc_mp_digit)
12447                                        -> ::std::os::raw::c_int>,
12448    /// gcd
12449    /// @param  a     The first integer
12450    /// @param  b     The second integer
12451    /// @param  c     The destination for (a, b)
12452    /// @return CRYPT_OK on success
12453    pub gcd: ::std::option::Option<unsafe extern "C" fn(a:
12454                                                            *mut ::std::os::raw::c_void,
12455                                                        b:
12456                                                            *mut ::std::os::raw::c_void,
12457                                                        c:
12458                                                            *mut ::std::os::raw::c_void)
12459                                       -> ::std::os::raw::c_int>,
12460    /// lcm
12461    /// @param  a     The first integer
12462    /// @param  b     The second integer
12463    /// @param  c     The destination for [a, b]
12464    /// @return CRYPT_OK on success
12465    pub lcm: ::std::option::Option<unsafe extern "C" fn(a:
12466                                                            *mut ::std::os::raw::c_void,
12467                                                        b:
12468                                                            *mut ::std::os::raw::c_void,
12469                                                        c:
12470                                                            *mut ::std::os::raw::c_void)
12471                                       -> ::std::os::raw::c_int>,
12472    /// Modular multiplication
12473    /// @param  a     The first source
12474    /// @param  b     The second source
12475    /// @param  c     The modulus
12476    /// @param  d     The destination (a*b mod c)
12477    /// @return CRYPT_OK on success
12478    pub mulmod: ::std::option::Option<unsafe extern "C" fn(a:
12479                                                               *mut ::std::os::raw::c_void,
12480                                                           b:
12481                                                               *mut ::std::os::raw::c_void,
12482                                                           c:
12483                                                               *mut ::std::os::raw::c_void,
12484                                                           d:
12485                                                               *mut ::std::os::raw::c_void)
12486                                          -> ::std::os::raw::c_int>,
12487    /// Modular squaring
12488    /// @param  a     The first source
12489    /// @param  b     The modulus
12490    /// @param  c     The destination (a*a mod b)
12491    /// @return CRYPT_OK on success
12492    pub sqrmod: ::std::option::Option<unsafe extern "C" fn(a:
12493                                                               *mut ::std::os::raw::c_void,
12494                                                           b:
12495                                                               *mut ::std::os::raw::c_void,
12496                                                           c:
12497                                                               *mut ::std::os::raw::c_void)
12498                                          -> ::std::os::raw::c_int>,
12499    /// Modular inversion
12500    /// @param  a     The value to invert
12501    /// @param  b     The modulus
12502    /// @param  c     The destination (1/a mod b)
12503    /// @return CRYPT_OK on success
12504    pub invmod: ::std::option::Option<unsafe extern "C" fn(arg1:
12505                                                               *mut ::std::os::raw::c_void,
12506                                                           arg2:
12507                                                               *mut ::std::os::raw::c_void,
12508                                                           arg3:
12509                                                               *mut ::std::os::raw::c_void)
12510                                          -> ::std::os::raw::c_int>,
12511    /// setup Montgomery
12512    /// @param a  The modulus
12513    /// @param b  The destination for the reduction digit
12514    /// @return CRYPT_OK on success
12515    pub montgomery_setup: ::std::option::Option<unsafe extern "C" fn(a:
12516                                                                         *mut ::std::os::raw::c_void,
12517                                                                     b:
12518                                                                         *mut *mut ::std::os::raw::c_void)
12519                                                    -> ::std::os::raw::c_int>,
12520    /// get normalization value
12521    /// @param a   The destination for the normalization value
12522    /// @param b   The modulus
12523    /// @return  CRYPT_OK on success
12524    pub montgomery_normalization: ::std::option::Option<unsafe extern "C" fn(a:
12525                                                                                 *mut ::std::os::raw::c_void,
12526                                                                             b:
12527                                                                                 *mut ::std::os::raw::c_void)
12528                                                            ->
12529                                                                ::std::os::raw::c_int>,
12530    /// reduce a number
12531    /// @param a   The number [and dest] to reduce
12532    /// @param b   The modulus
12533    /// @param c   The value "b" from montgomery_setup()
12534    /// @return CRYPT_OK on success
12535    pub montgomery_reduce: ::std::option::Option<unsafe extern "C" fn(a:
12536                                                                          *mut ::std::os::raw::c_void,
12537                                                                      b:
12538                                                                          *mut ::std::os::raw::c_void,
12539                                                                      c:
12540                                                                          *mut ::std::os::raw::c_void)
12541                                                     ->
12542                                                         ::std::os::raw::c_int>,
12543    /// clean up  (frees memory)
12544    /// @param a   The value "b" from montgomery_setup()
12545    /// @return CRYPT_OK on success
12546    pub montgomery_deinit: ::std::option::Option<unsafe extern "C" fn(a:
12547                                                                          *mut ::std::os::raw::c_void)>,
12548    /// Modular exponentiation
12549    /// @param a    The base integer
12550    /// @param b    The power (can be negative) integer
12551    /// @param c    The modulus integer
12552    /// @param d    The destination
12553    /// @return CRYPT_OK on success
12554    pub exptmod: ::std::option::Option<unsafe extern "C" fn(a:
12555                                                                *mut ::std::os::raw::c_void,
12556                                                            b:
12557                                                                *mut ::std::os::raw::c_void,
12558                                                            c:
12559                                                                *mut ::std::os::raw::c_void,
12560                                                            d:
12561                                                                *mut ::std::os::raw::c_void)
12562                                           -> ::std::os::raw::c_int>,
12563    /// Primality testing
12564    /// @param a     The integer to test
12565    /// @param b     The number of Miller-Rabin tests that shall be executed
12566    /// @param c     The destination of the result (FP_YES if prime)
12567    /// @return CRYPT_OK on success
12568    pub isprime: ::std::option::Option<unsafe extern "C" fn(a:
12569                                                                *mut ::std::os::raw::c_void,
12570                                                            b:
12571                                                                ::std::os::raw::c_int,
12572                                                            c:
12573                                                                *mut ::std::os::raw::c_int)
12574                                           -> ::std::os::raw::c_int>,
12575    /// ECC GF(p) point multiplication (from the NIST curves)
12576    /// @param k   The integer to multiply the point by
12577    /// @param G   The point to multiply
12578    /// @param R   The destination for kG
12579    /// @param modulus  The modulus for the field
12580    /// @param map Boolean indicated whether to map back to affine or not
12581    /// (can be ignored if you work in affine only)
12582    /// @return CRYPT_OK on success
12583    pub ecc_ptmul: ::std::option::Option<unsafe extern "C" fn(k:
12584                                                                  *mut ::std::os::raw::c_void,
12585                                                              G:
12586                                                                  *mut ecc_point,
12587                                                              R:
12588                                                                  *mut ecc_point,
12589                                                              modulus:
12590                                                                  *mut ::std::os::raw::c_void,
12591                                                              map:
12592                                                                  ::std::os::raw::c_int)
12593                                             -> ::std::os::raw::c_int>,
12594    /// ECC GF(p) point addition
12595    /// @param P    The first point
12596    /// @param Q    The second point
12597    /// @param R    The destination of P + Q
12598    /// @param modulus  The modulus
12599    /// @param mp   The "b" value from montgomery_setup()
12600    /// @return CRYPT_OK on success
12601    pub ecc_ptadd: ::std::option::Option<unsafe extern "C" fn(P:
12602                                                                  *mut ecc_point,
12603                                                              Q:
12604                                                                  *mut ecc_point,
12605                                                              R:
12606                                                                  *mut ecc_point,
12607                                                              modulus:
12608                                                                  *mut ::std::os::raw::c_void,
12609                                                              mp:
12610                                                                  *mut ::std::os::raw::c_void)
12611                                             -> ::std::os::raw::c_int>,
12612    /// ECC GF(p) point double
12613    /// @param P    The first point
12614    /// @param R    The destination of 2P
12615    /// @param modulus  The modulus
12616    /// @param mp   The "b" value from montgomery_setup()
12617    /// @return CRYPT_OK on success
12618    pub ecc_ptdbl: ::std::option::Option<unsafe extern "C" fn(P:
12619                                                                  *mut ecc_point,
12620                                                              R:
12621                                                                  *mut ecc_point,
12622                                                              modulus:
12623                                                                  *mut ::std::os::raw::c_void,
12624                                                              mp:
12625                                                                  *mut ::std::os::raw::c_void)
12626                                             -> ::std::os::raw::c_int>,
12627    /// ECC mapping from projective to affine,
12628    /// currently uses (x,y,z) => (x/z^2, y/z^3, 1)
12629    /// @param P     The point to map
12630    /// @param modulus The modulus
12631    /// @param mp    The "b" value from montgomery_setup()
12632    /// @return CRYPT_OK on success
12633    /// @remark The mapping can be different but keep in mind a
12634    /// ecc_point only has three integers (x,y,z) so if
12635    /// you use a different mapping you have to make it fit.
12636    pub ecc_map: ::std::option::Option<unsafe extern "C" fn(P: *mut ecc_point,
12637                                                            modulus:
12638                                                                *mut ::std::os::raw::c_void,
12639                                                            mp:
12640                                                                *mut ::std::os::raw::c_void)
12641                                           -> ::std::os::raw::c_int>,
12642    /// Computes kA*A + kB*B = C using Shamir's Trick
12643    /// @param A        First point to multiply
12644    /// @param kA       What to multiple A by
12645    /// @param B        Second point to multiply
12646    /// @param kB       What to multiple B by
12647    /// @param C        [out] Destination point (can overlap with A or B)
12648    /// @param modulus  Modulus for curve
12649    /// @return CRYPT_OK on success
12650    pub ecc_mul2add: ::std::option::Option<unsafe extern "C" fn(A:
12651                                                                    *mut ecc_point,
12652                                                                kA:
12653                                                                    *mut ::std::os::raw::c_void,
12654                                                                B:
12655                                                                    *mut ecc_point,
12656                                                                kB:
12657                                                                    *mut ::std::os::raw::c_void,
12658                                                                C:
12659                                                                    *mut ecc_point,
12660                                                                modulus:
12661                                                                    *mut ::std::os::raw::c_void)
12662                                               -> ::std::os::raw::c_int>,
12663    /// RSA Key Generation
12664    /// @param prng     An active PRNG state
12665    /// @param wprng    The index of the PRNG desired
12666    /// @param size     The size of the key in octets
12667    /// @param e        The "e" value (public key).
12668    /// e==65537 is a good choice
12669    /// @param key      [out] Destination of a newly created private key pair
12670    /// @return CRYPT_OK if successful, upon error all allocated ram is freed
12671    pub rsa_keygen: ::std::option::Option<unsafe extern "C" fn(prng:
12672                                                                   *mut prng_state,
12673                                                               wprng:
12674                                                                   ::std::os::raw::c_int,
12675                                                               size:
12676                                                                   ::std::os::raw::c_int,
12677                                                               e:
12678                                                                   ::std::os::raw::c_long,
12679                                                               key:
12680                                                                   *mut rsa_key)
12681                                              -> ::std::os::raw::c_int>,
12682    /// RSA exponentiation
12683    /// @param in       The octet array representing the base
12684    /// @param inlen    The length of the input
12685    /// @param out      The destination (to be stored in an octet array format)
12686    /// @param outlen   The length of the output buffer and the resulting size
12687    /// (zero padded to the size of the modulus)
12688    /// @param which    PK_PUBLIC for public RSA and PK_PRIVATE for private RSA
12689    /// @param key      The RSA key to use
12690    /// @return CRYPT_OK on success
12691    pub rsa_me: ::std::option::Option<unsafe extern "C" fn(in_:
12692                                                               *const ::std::os::raw::c_uchar,
12693                                                           inlen:
12694                                                               ::std::os::raw::c_ulong,
12695                                                           out:
12696                                                               *mut ::std::os::raw::c_uchar,
12697                                                           outlen:
12698                                                               *mut ::std::os::raw::c_ulong,
12699                                                           which:
12700                                                               ::std::os::raw::c_int,
12701                                                           key: *mut rsa_key)
12702                                          -> ::std::os::raw::c_int>,
12703    /// Modular addition
12704    /// @param  a     The first source
12705    /// @param  b     The second source
12706    /// @param  c     The modulus
12707    /// @param  d     The destination (a + b mod c)
12708    /// @return CRYPT_OK on success
12709    pub addmod: ::std::option::Option<unsafe extern "C" fn(a:
12710                                                               *mut ::std::os::raw::c_void,
12711                                                           b:
12712                                                               *mut ::std::os::raw::c_void,
12713                                                           c:
12714                                                               *mut ::std::os::raw::c_void,
12715                                                           d:
12716                                                               *mut ::std::os::raw::c_void)
12717                                          -> ::std::os::raw::c_int>,
12718    /// Modular substraction
12719    /// @param  a     The first source
12720    /// @param  b     The second source
12721    /// @param  c     The modulus
12722    /// @param  d     The destination (a - b mod c)
12723    /// @return CRYPT_OK on success
12724    pub submod: ::std::option::Option<unsafe extern "C" fn(a:
12725                                                               *mut ::std::os::raw::c_void,
12726                                                           b:
12727                                                               *mut ::std::os::raw::c_void,
12728                                                           c:
12729                                                               *mut ::std::os::raw::c_void,
12730                                                           d:
12731                                                               *mut ::std::os::raw::c_void)
12732                                          -> ::std::os::raw::c_int>,
12733    /// Make a pseudo-random mpi
12734    /// @param  a     The mpi to make random
12735    /// @param  size  The desired length
12736    /// @return CRYPT_OK on success
12737    pub rand: ::std::option::Option<unsafe extern "C" fn(a:
12738                                                             *mut ::std::os::raw::c_void,
12739                                                         size:
12740                                                             ::std::os::raw::c_int)
12741                                        -> ::std::os::raw::c_int>,
12742}
12743#[test]
12744fn bindgen_test_layout_ltc_math_descriptor() {
12745    assert_eq!(::std::mem::size_of::<ltc_math_descriptor>() , 416usize ,
12746               concat ! ( "Size of: " , stringify ! ( ltc_math_descriptor )
12747               ));
12748    assert_eq! (::std::mem::align_of::<ltc_math_descriptor>() , 8usize ,
12749                concat ! (
12750                "Alignment of " , stringify ! ( ltc_math_descriptor ) ));
12751    assert_eq! (unsafe {
12752                & ( * ( 0 as * const ltc_math_descriptor ) ) . name as * const
12753                _ as usize } , 0usize , concat ! (
12754                "Alignment of field: " , stringify ! ( ltc_math_descriptor ) ,
12755                "::" , stringify ! ( name ) ));
12756    assert_eq! (unsafe {
12757                & ( * ( 0 as * const ltc_math_descriptor ) ) . bits_per_digit
12758                as * const _ as usize } , 8usize , concat ! (
12759                "Alignment of field: " , stringify ! ( ltc_math_descriptor ) ,
12760                "::" , stringify ! ( bits_per_digit ) ));
12761    assert_eq! (unsafe {
12762                & ( * ( 0 as * const ltc_math_descriptor ) ) . init as * const
12763                _ as usize } , 16usize , concat ! (
12764                "Alignment of field: " , stringify ! ( ltc_math_descriptor ) ,
12765                "::" , stringify ! ( init ) ));
12766    assert_eq! (unsafe {
12767                & ( * ( 0 as * const ltc_math_descriptor ) ) . init_copy as *
12768                const _ as usize } , 24usize , concat ! (
12769                "Alignment of field: " , stringify ! ( ltc_math_descriptor ) ,
12770                "::" , stringify ! ( init_copy ) ));
12771    assert_eq! (unsafe {
12772                & ( * ( 0 as * const ltc_math_descriptor ) ) . deinit as *
12773                const _ as usize } , 32usize , concat ! (
12774                "Alignment of field: " , stringify ! ( ltc_math_descriptor ) ,
12775                "::" , stringify ! ( deinit ) ));
12776    assert_eq! (unsafe {
12777                & ( * ( 0 as * const ltc_math_descriptor ) ) . neg as * const
12778                _ as usize } , 40usize , concat ! (
12779                "Alignment of field: " , stringify ! ( ltc_math_descriptor ) ,
12780                "::" , stringify ! ( neg ) ));
12781    assert_eq! (unsafe {
12782                & ( * ( 0 as * const ltc_math_descriptor ) ) . copy as * const
12783                _ as usize } , 48usize , concat ! (
12784                "Alignment of field: " , stringify ! ( ltc_math_descriptor ) ,
12785                "::" , stringify ! ( copy ) ));
12786    assert_eq! (unsafe {
12787                & ( * ( 0 as * const ltc_math_descriptor ) ) . set_int as *
12788                const _ as usize } , 56usize , concat ! (
12789                "Alignment of field: " , stringify ! ( ltc_math_descriptor ) ,
12790                "::" , stringify ! ( set_int ) ));
12791    assert_eq! (unsafe {
12792                & ( * ( 0 as * const ltc_math_descriptor ) ) . get_int as *
12793                const _ as usize } , 64usize , concat ! (
12794                "Alignment of field: " , stringify ! ( ltc_math_descriptor ) ,
12795                "::" , stringify ! ( get_int ) ));
12796    assert_eq! (unsafe {
12797                & ( * ( 0 as * const ltc_math_descriptor ) ) . get_digit as *
12798                const _ as usize } , 72usize , concat ! (
12799                "Alignment of field: " , stringify ! ( ltc_math_descriptor ) ,
12800                "::" , stringify ! ( get_digit ) ));
12801    assert_eq! (unsafe {
12802                & ( * ( 0 as * const ltc_math_descriptor ) ) . get_digit_count
12803                as * const _ as usize } , 80usize , concat ! (
12804                "Alignment of field: " , stringify ! ( ltc_math_descriptor ) ,
12805                "::" , stringify ! ( get_digit_count ) ));
12806    assert_eq! (unsafe {
12807                & ( * ( 0 as * const ltc_math_descriptor ) ) . compare as *
12808                const _ as usize } , 88usize , concat ! (
12809                "Alignment of field: " , stringify ! ( ltc_math_descriptor ) ,
12810                "::" , stringify ! ( compare ) ));
12811    assert_eq! (unsafe {
12812                & ( * ( 0 as * const ltc_math_descriptor ) ) . compare_d as *
12813                const _ as usize } , 96usize , concat ! (
12814                "Alignment of field: " , stringify ! ( ltc_math_descriptor ) ,
12815                "::" , stringify ! ( compare_d ) ));
12816    assert_eq! (unsafe {
12817                & ( * ( 0 as * const ltc_math_descriptor ) ) . count_bits as *
12818                const _ as usize } , 104usize , concat ! (
12819                "Alignment of field: " , stringify ! ( ltc_math_descriptor ) ,
12820                "::" , stringify ! ( count_bits ) ));
12821    assert_eq! (unsafe {
12822                & ( * ( 0 as * const ltc_math_descriptor ) ) . count_lsb_bits
12823                as * const _ as usize } , 112usize , concat ! (
12824                "Alignment of field: " , stringify ! ( ltc_math_descriptor ) ,
12825                "::" , stringify ! ( count_lsb_bits ) ));
12826    assert_eq! (unsafe {
12827                & ( * ( 0 as * const ltc_math_descriptor ) ) . twoexpt as *
12828                const _ as usize } , 120usize , concat ! (
12829                "Alignment of field: " , stringify ! ( ltc_math_descriptor ) ,
12830                "::" , stringify ! ( twoexpt ) ));
12831    assert_eq! (unsafe {
12832                & ( * ( 0 as * const ltc_math_descriptor ) ) . read_radix as *
12833                const _ as usize } , 128usize , concat ! (
12834                "Alignment of field: " , stringify ! ( ltc_math_descriptor ) ,
12835                "::" , stringify ! ( read_radix ) ));
12836    assert_eq! (unsafe {
12837                & ( * ( 0 as * const ltc_math_descriptor ) ) . write_radix as
12838                * const _ as usize } , 136usize , concat ! (
12839                "Alignment of field: " , stringify ! ( ltc_math_descriptor ) ,
12840                "::" , stringify ! ( write_radix ) ));
12841    assert_eq! (unsafe {
12842                & ( * ( 0 as * const ltc_math_descriptor ) ) . unsigned_size
12843                as * const _ as usize } , 144usize , concat ! (
12844                "Alignment of field: " , stringify ! ( ltc_math_descriptor ) ,
12845                "::" , stringify ! ( unsigned_size ) ));
12846    assert_eq! (unsafe {
12847                & ( * ( 0 as * const ltc_math_descriptor ) ) . unsigned_write
12848                as * const _ as usize } , 152usize , concat ! (
12849                "Alignment of field: " , stringify ! ( ltc_math_descriptor ) ,
12850                "::" , stringify ! ( unsigned_write ) ));
12851    assert_eq! (unsafe {
12852                & ( * ( 0 as * const ltc_math_descriptor ) ) . unsigned_read
12853                as * const _ as usize } , 160usize , concat ! (
12854                "Alignment of field: " , stringify ! ( ltc_math_descriptor ) ,
12855                "::" , stringify ! ( unsigned_read ) ));
12856    assert_eq! (unsafe {
12857                & ( * ( 0 as * const ltc_math_descriptor ) ) . add as * const
12858                _ as usize } , 168usize , concat ! (
12859                "Alignment of field: " , stringify ! ( ltc_math_descriptor ) ,
12860                "::" , stringify ! ( add ) ));
12861    assert_eq! (unsafe {
12862                & ( * ( 0 as * const ltc_math_descriptor ) ) . addi as * const
12863                _ as usize } , 176usize , concat ! (
12864                "Alignment of field: " , stringify ! ( ltc_math_descriptor ) ,
12865                "::" , stringify ! ( addi ) ));
12866    assert_eq! (unsafe {
12867                & ( * ( 0 as * const ltc_math_descriptor ) ) . sub as * const
12868                _ as usize } , 184usize , concat ! (
12869                "Alignment of field: " , stringify ! ( ltc_math_descriptor ) ,
12870                "::" , stringify ! ( sub ) ));
12871    assert_eq! (unsafe {
12872                & ( * ( 0 as * const ltc_math_descriptor ) ) . subi as * const
12873                _ as usize } , 192usize , concat ! (
12874                "Alignment of field: " , stringify ! ( ltc_math_descriptor ) ,
12875                "::" , stringify ! ( subi ) ));
12876    assert_eq! (unsafe {
12877                & ( * ( 0 as * const ltc_math_descriptor ) ) . mul as * const
12878                _ as usize } , 200usize , concat ! (
12879                "Alignment of field: " , stringify ! ( ltc_math_descriptor ) ,
12880                "::" , stringify ! ( mul ) ));
12881    assert_eq! (unsafe {
12882                & ( * ( 0 as * const ltc_math_descriptor ) ) . muli as * const
12883                _ as usize } , 208usize , concat ! (
12884                "Alignment of field: " , stringify ! ( ltc_math_descriptor ) ,
12885                "::" , stringify ! ( muli ) ));
12886    assert_eq! (unsafe {
12887                & ( * ( 0 as * const ltc_math_descriptor ) ) . sqr as * const
12888                _ as usize } , 216usize , concat ! (
12889                "Alignment of field: " , stringify ! ( ltc_math_descriptor ) ,
12890                "::" , stringify ! ( sqr ) ));
12891    assert_eq! (unsafe {
12892                & ( * ( 0 as * const ltc_math_descriptor ) ) . mpdiv as *
12893                const _ as usize } , 224usize , concat ! (
12894                "Alignment of field: " , stringify ! ( ltc_math_descriptor ) ,
12895                "::" , stringify ! ( mpdiv ) ));
12896    assert_eq! (unsafe {
12897                & ( * ( 0 as * const ltc_math_descriptor ) ) . div_2 as *
12898                const _ as usize } , 232usize , concat ! (
12899                "Alignment of field: " , stringify ! ( ltc_math_descriptor ) ,
12900                "::" , stringify ! ( div_2 ) ));
12901    assert_eq! (unsafe {
12902                & ( * ( 0 as * const ltc_math_descriptor ) ) . modi as * const
12903                _ as usize } , 240usize , concat ! (
12904                "Alignment of field: " , stringify ! ( ltc_math_descriptor ) ,
12905                "::" , stringify ! ( modi ) ));
12906    assert_eq! (unsafe {
12907                & ( * ( 0 as * const ltc_math_descriptor ) ) . gcd as * const
12908                _ as usize } , 248usize , concat ! (
12909                "Alignment of field: " , stringify ! ( ltc_math_descriptor ) ,
12910                "::" , stringify ! ( gcd ) ));
12911    assert_eq! (unsafe {
12912                & ( * ( 0 as * const ltc_math_descriptor ) ) . lcm as * const
12913                _ as usize } , 256usize , concat ! (
12914                "Alignment of field: " , stringify ! ( ltc_math_descriptor ) ,
12915                "::" , stringify ! ( lcm ) ));
12916    assert_eq! (unsafe {
12917                & ( * ( 0 as * const ltc_math_descriptor ) ) . mulmod as *
12918                const _ as usize } , 264usize , concat ! (
12919                "Alignment of field: " , stringify ! ( ltc_math_descriptor ) ,
12920                "::" , stringify ! ( mulmod ) ));
12921    assert_eq! (unsafe {
12922                & ( * ( 0 as * const ltc_math_descriptor ) ) . sqrmod as *
12923                const _ as usize } , 272usize , concat ! (
12924                "Alignment of field: " , stringify ! ( ltc_math_descriptor ) ,
12925                "::" , stringify ! ( sqrmod ) ));
12926    assert_eq! (unsafe {
12927                & ( * ( 0 as * const ltc_math_descriptor ) ) . invmod as *
12928                const _ as usize } , 280usize , concat ! (
12929                "Alignment of field: " , stringify ! ( ltc_math_descriptor ) ,
12930                "::" , stringify ! ( invmod ) ));
12931    assert_eq! (unsafe {
12932                & ( * ( 0 as * const ltc_math_descriptor ) ) .
12933                montgomery_setup as * const _ as usize } , 288usize , concat !
12934                (
12935                "Alignment of field: " , stringify ! ( ltc_math_descriptor ) ,
12936                "::" , stringify ! ( montgomery_setup ) ));
12937    assert_eq! (unsafe {
12938                & ( * ( 0 as * const ltc_math_descriptor ) ) .
12939                montgomery_normalization as * const _ as usize } , 296usize ,
12940                concat ! (
12941                "Alignment of field: " , stringify ! ( ltc_math_descriptor ) ,
12942                "::" , stringify ! ( montgomery_normalization ) ));
12943    assert_eq! (unsafe {
12944                & ( * ( 0 as * const ltc_math_descriptor ) ) .
12945                montgomery_reduce as * const _ as usize } , 304usize , concat
12946                ! (
12947                "Alignment of field: " , stringify ! ( ltc_math_descriptor ) ,
12948                "::" , stringify ! ( montgomery_reduce ) ));
12949    assert_eq! (unsafe {
12950                & ( * ( 0 as * const ltc_math_descriptor ) ) .
12951                montgomery_deinit as * const _ as usize } , 312usize , concat
12952                ! (
12953                "Alignment of field: " , stringify ! ( ltc_math_descriptor ) ,
12954                "::" , stringify ! ( montgomery_deinit ) ));
12955    assert_eq! (unsafe {
12956                & ( * ( 0 as * const ltc_math_descriptor ) ) . exptmod as *
12957                const _ as usize } , 320usize , concat ! (
12958                "Alignment of field: " , stringify ! ( ltc_math_descriptor ) ,
12959                "::" , stringify ! ( exptmod ) ));
12960    assert_eq! (unsafe {
12961                & ( * ( 0 as * const ltc_math_descriptor ) ) . isprime as *
12962                const _ as usize } , 328usize , concat ! (
12963                "Alignment of field: " , stringify ! ( ltc_math_descriptor ) ,
12964                "::" , stringify ! ( isprime ) ));
12965    assert_eq! (unsafe {
12966                & ( * ( 0 as * const ltc_math_descriptor ) ) . ecc_ptmul as *
12967                const _ as usize } , 336usize , concat ! (
12968                "Alignment of field: " , stringify ! ( ltc_math_descriptor ) ,
12969                "::" , stringify ! ( ecc_ptmul ) ));
12970    assert_eq! (unsafe {
12971                & ( * ( 0 as * const ltc_math_descriptor ) ) . ecc_ptadd as *
12972                const _ as usize } , 344usize , concat ! (
12973                "Alignment of field: " , stringify ! ( ltc_math_descriptor ) ,
12974                "::" , stringify ! ( ecc_ptadd ) ));
12975    assert_eq! (unsafe {
12976                & ( * ( 0 as * const ltc_math_descriptor ) ) . ecc_ptdbl as *
12977                const _ as usize } , 352usize , concat ! (
12978                "Alignment of field: " , stringify ! ( ltc_math_descriptor ) ,
12979                "::" , stringify ! ( ecc_ptdbl ) ));
12980    assert_eq! (unsafe {
12981                & ( * ( 0 as * const ltc_math_descriptor ) ) . ecc_map as *
12982                const _ as usize } , 360usize , concat ! (
12983                "Alignment of field: " , stringify ! ( ltc_math_descriptor ) ,
12984                "::" , stringify ! ( ecc_map ) ));
12985    assert_eq! (unsafe {
12986                & ( * ( 0 as * const ltc_math_descriptor ) ) . ecc_mul2add as
12987                * const _ as usize } , 368usize , concat ! (
12988                "Alignment of field: " , stringify ! ( ltc_math_descriptor ) ,
12989                "::" , stringify ! ( ecc_mul2add ) ));
12990    assert_eq! (unsafe {
12991                & ( * ( 0 as * const ltc_math_descriptor ) ) . rsa_keygen as *
12992                const _ as usize } , 376usize , concat ! (
12993                "Alignment of field: " , stringify ! ( ltc_math_descriptor ) ,
12994                "::" , stringify ! ( rsa_keygen ) ));
12995    assert_eq! (unsafe {
12996                & ( * ( 0 as * const ltc_math_descriptor ) ) . rsa_me as *
12997                const _ as usize } , 384usize , concat ! (
12998                "Alignment of field: " , stringify ! ( ltc_math_descriptor ) ,
12999                "::" , stringify ! ( rsa_me ) ));
13000    assert_eq! (unsafe {
13001                & ( * ( 0 as * const ltc_math_descriptor ) ) . addmod as *
13002                const _ as usize } , 392usize , concat ! (
13003                "Alignment of field: " , stringify ! ( ltc_math_descriptor ) ,
13004                "::" , stringify ! ( addmod ) ));
13005    assert_eq! (unsafe {
13006                & ( * ( 0 as * const ltc_math_descriptor ) ) . submod as *
13007                const _ as usize } , 400usize , concat ! (
13008                "Alignment of field: " , stringify ! ( ltc_math_descriptor ) ,
13009                "::" , stringify ! ( submod ) ));
13010    assert_eq! (unsafe {
13011                & ( * ( 0 as * const ltc_math_descriptor ) ) . rand as * const
13012                _ as usize } , 408usize , concat ! (
13013                "Alignment of field: " , stringify ! ( ltc_math_descriptor ) ,
13014                "::" , stringify ! ( rand ) ));
13015}
13016impl Clone for ltc_math_descriptor {
13017    fn clone(&self) -> Self { *self }
13018}
13019extern "C" {
13020    #[link_name = "ltc_mp"]
13021    pub static mut ltc_mp: ltc_math_descriptor;
13022}
13023extern "C" {
13024    pub fn ltc_init_multi(a: *mut *mut ::std::os::raw::c_void, ...)
13025     -> ::std::os::raw::c_int;
13026}
13027extern "C" {
13028    pub fn ltc_deinit_multi(a: *mut ::std::os::raw::c_void, ...);
13029}
13030extern "C" {
13031    pub fn ltc_cleanup_multi(a: *mut *mut ::std::os::raw::c_void, ...);
13032}
13033extern "C" {
13034    #[link_name = "tfm_desc"]
13035    pub static tfm_desc: ltc_math_descriptor;
13036}
13037extern "C" {
13038    pub fn base64_encode(in_: *const ::std::os::raw::c_uchar,
13039                         len: ::std::os::raw::c_ulong,
13040                         out: *mut ::std::os::raw::c_uchar,
13041                         outlen: *mut ::std::os::raw::c_ulong)
13042     -> ::std::os::raw::c_int;
13043}
13044extern "C" {
13045    pub fn base64_decode(in_: *const ::std::os::raw::c_uchar,
13046                         len: ::std::os::raw::c_ulong,
13047                         out: *mut ::std::os::raw::c_uchar,
13048                         outlen: *mut ::std::os::raw::c_ulong)
13049     -> ::std::os::raw::c_int;
13050}
13051extern "C" {
13052    pub fn base64_strict_decode(in_: *const ::std::os::raw::c_uchar,
13053                                len: ::std::os::raw::c_ulong,
13054                                out: *mut ::std::os::raw::c_uchar,
13055                                outlen: *mut ::std::os::raw::c_ulong)
13056     -> ::std::os::raw::c_int;
13057}
13058extern "C" {
13059    pub fn base64url_encode(in_: *const ::std::os::raw::c_uchar,
13060                            len: ::std::os::raw::c_ulong,
13061                            out: *mut ::std::os::raw::c_uchar,
13062                            outlen: *mut ::std::os::raw::c_ulong)
13063     -> ::std::os::raw::c_int;
13064}
13065extern "C" {
13066    pub fn base64url_strict_encode(in_: *const ::std::os::raw::c_uchar,
13067                                   inlen: ::std::os::raw::c_ulong,
13068                                   out: *mut ::std::os::raw::c_uchar,
13069                                   outlen: *mut ::std::os::raw::c_ulong)
13070     -> ::std::os::raw::c_int;
13071}
13072extern "C" {
13073    pub fn base64url_decode(in_: *const ::std::os::raw::c_uchar,
13074                            len: ::std::os::raw::c_ulong,
13075                            out: *mut ::std::os::raw::c_uchar,
13076                            outlen: *mut ::std::os::raw::c_ulong)
13077     -> ::std::os::raw::c_int;
13078}
13079extern "C" {
13080    pub fn base64url_strict_decode(in_: *const ::std::os::raw::c_uchar,
13081                                   len: ::std::os::raw::c_ulong,
13082                                   out: *mut ::std::os::raw::c_uchar,
13083                                   outlen: *mut ::std::os::raw::c_ulong)
13084     -> ::std::os::raw::c_int;
13085}
13086extern "C" {
13087    pub fn hkdf_test() -> ::std::os::raw::c_int;
13088}
13089extern "C" {
13090    pub fn hkdf_extract(hash_idx: ::std::os::raw::c_int,
13091                        salt: *const ::std::os::raw::c_uchar,
13092                        saltlen: ::std::os::raw::c_ulong,
13093                        in_: *const ::std::os::raw::c_uchar,
13094                        inlen: ::std::os::raw::c_ulong,
13095                        out: *mut ::std::os::raw::c_uchar,
13096                        outlen: *mut ::std::os::raw::c_ulong)
13097     -> ::std::os::raw::c_int;
13098}
13099extern "C" {
13100    pub fn hkdf_expand(hash_idx: ::std::os::raw::c_int,
13101                       info: *const ::std::os::raw::c_uchar,
13102                       infolen: ::std::os::raw::c_ulong,
13103                       in_: *const ::std::os::raw::c_uchar,
13104                       inlen: ::std::os::raw::c_ulong,
13105                       out: *mut ::std::os::raw::c_uchar,
13106                       outlen: ::std::os::raw::c_ulong)
13107     -> ::std::os::raw::c_int;
13108}
13109extern "C" {
13110    pub fn hkdf(hash_idx: ::std::os::raw::c_int,
13111                salt: *const ::std::os::raw::c_uchar,
13112                saltlen: ::std::os::raw::c_ulong,
13113                info: *const ::std::os::raw::c_uchar,
13114                infolen: ::std::os::raw::c_ulong,
13115                in_: *const ::std::os::raw::c_uchar,
13116                inlen: ::std::os::raw::c_ulong,
13117                out: *mut ::std::os::raw::c_uchar,
13118                outlen: ::std::os::raw::c_ulong) -> ::std::os::raw::c_int;
13119}
13120extern "C" {
13121    pub fn mem_neq(a: *const ::std::os::raw::c_void,
13122                   b: *const ::std::os::raw::c_void, len: usize)
13123     -> ::std::os::raw::c_int;
13124}
13125extern "C" {
13126    pub fn zeromem(dst: *mut ::std::os::raw::c_void, len: usize);
13127}
13128extern "C" {
13129    pub fn burn_stack(len: ::std::os::raw::c_ulong);
13130}
13131extern "C" {
13132    pub fn error_to_string(err: ::std::os::raw::c_int)
13133     -> *const ::std::os::raw::c_char;
13134}
13135extern "C" {
13136    #[link_name = "crypt_build_settings"]
13137    pub static mut crypt_build_settings: *const ::std::os::raw::c_char;
13138}
13139extern "C" {
13140    pub fn crypt_fsa(mp: *mut ::std::os::raw::c_void, ...)
13141     -> ::std::os::raw::c_int;
13142}
13143extern "C" {
13144    pub fn crypt_get_constant(namein: *const ::std::os::raw::c_char,
13145                              valueout: *mut ::std::os::raw::c_int)
13146     -> ::std::os::raw::c_int;
13147}
13148extern "C" {
13149    pub fn crypt_list_all_constants(names_list: *mut ::std::os::raw::c_char,
13150                                    names_list_size:
13151                                        *mut ::std::os::raw::c_uint)
13152     -> ::std::os::raw::c_int;
13153}
13154extern "C" {
13155    pub fn crypt_get_size(namein: *const ::std::os::raw::c_char,
13156                          sizeout: *mut ::std::os::raw::c_uint)
13157     -> ::std::os::raw::c_int;
13158}
13159extern "C" {
13160    pub fn crypt_list_all_sizes(names_list: *mut ::std::os::raw::c_char,
13161                                names_list_size: *mut ::std::os::raw::c_uint)
13162     -> ::std::os::raw::c_int;
13163}
13164extern "C" {
13165    pub fn init_TFM();
13166}
13167#[repr(C)]
13168#[derive(Debug, Copy)]
13169pub struct adler32_state_s {
13170    pub s: [::std::os::raw::c_ushort; 2usize],
13171}
13172#[test]
13173fn bindgen_test_layout_adler32_state_s() {
13174    assert_eq!(::std::mem::size_of::<adler32_state_s>() , 4usize , concat ! (
13175               "Size of: " , stringify ! ( adler32_state_s ) ));
13176    assert_eq! (::std::mem::align_of::<adler32_state_s>() , 2usize , concat !
13177                ( "Alignment of " , stringify ! ( adler32_state_s ) ));
13178    assert_eq! (unsafe {
13179                & ( * ( 0 as * const adler32_state_s ) ) . s as * const _ as
13180                usize } , 0usize , concat ! (
13181                "Alignment of field: " , stringify ! ( adler32_state_s ) ,
13182                "::" , stringify ! ( s ) ));
13183}
13184impl Clone for adler32_state_s {
13185    fn clone(&self) -> Self { *self }
13186}
13187pub type adler32_state = adler32_state_s;
13188extern "C" {
13189    pub fn adler32_init(ctx: *mut adler32_state);
13190}
13191extern "C" {
13192    pub fn adler32_update(ctx: *mut adler32_state,
13193                          input: *const ::std::os::raw::c_uchar,
13194                          length: ::std::os::raw::c_ulong);
13195}
13196extern "C" {
13197    pub fn adler32_finish(ctx: *mut adler32_state,
13198                          hash: *mut ::std::os::raw::c_void,
13199                          size: ::std::os::raw::c_ulong);
13200}
13201extern "C" {
13202    pub fn adler32_test() -> ::std::os::raw::c_int;
13203}
13204#[repr(C)]
13205#[derive(Debug, Copy)]
13206pub struct crc32_state_s {
13207    pub crc: ulong32,
13208}
13209#[test]
13210fn bindgen_test_layout_crc32_state_s() {
13211    assert_eq!(::std::mem::size_of::<crc32_state_s>() , 4usize , concat ! (
13212               "Size of: " , stringify ! ( crc32_state_s ) ));
13213    assert_eq! (::std::mem::align_of::<crc32_state_s>() , 4usize , concat ! (
13214                "Alignment of " , stringify ! ( crc32_state_s ) ));
13215    assert_eq! (unsafe {
13216                & ( * ( 0 as * const crc32_state_s ) ) . crc as * const _ as
13217                usize } , 0usize , concat ! (
13218                "Alignment of field: " , stringify ! ( crc32_state_s ) , "::"
13219                , stringify ! ( crc ) ));
13220}
13221impl Clone for crc32_state_s {
13222    fn clone(&self) -> Self { *self }
13223}
13224pub type crc32_state = crc32_state_s;
13225extern "C" {
13226    pub fn crc32_init(ctx: *mut crc32_state);
13227}
13228extern "C" {
13229    pub fn crc32_update(ctx: *mut crc32_state,
13230                        input: *const ::std::os::raw::c_uchar,
13231                        length: ::std::os::raw::c_ulong);
13232}
13233extern "C" {
13234    pub fn crc32_finish(ctx: *mut crc32_state,
13235                        hash: *mut ::std::os::raw::c_void,
13236                        size: ::std::os::raw::c_ulong);
13237}
13238extern "C" {
13239    pub fn crc32_test() -> ::std::os::raw::c_int;
13240}
13241extern "C" {
13242    pub fn compare_testvector(is: *const ::std::os::raw::c_void,
13243                              is_len: ::std::os::raw::c_ulong,
13244                              should: *const ::std::os::raw::c_void,
13245                              should_len: ::std::os::raw::c_ulong,
13246                              what: *const ::std::os::raw::c_char,
13247                              which: ::std::os::raw::c_int)
13248     -> ::std::os::raw::c_int;
13249}
13250pub type sig_atomic_t = __sig_atomic_t;
13251#[repr(C)]
13252#[derive(Copy)]
13253pub union sigval {
13254    pub sival_int: ::std::os::raw::c_int,
13255    pub sival_ptr: *mut ::std::os::raw::c_void,
13256    _bindgen_union_align: u64,
13257}
13258#[test]
13259fn bindgen_test_layout_sigval() {
13260    assert_eq!(::std::mem::size_of::<sigval>() , 8usize , concat ! (
13261               "Size of: " , stringify ! ( sigval ) ));
13262    assert_eq! (::std::mem::align_of::<sigval>() , 8usize , concat ! (
13263                "Alignment of " , stringify ! ( sigval ) ));
13264    assert_eq! (unsafe {
13265                & ( * ( 0 as * const sigval ) ) . sival_int as * const _ as
13266                usize } , 0usize , concat ! (
13267                "Alignment of field: " , stringify ! ( sigval ) , "::" ,
13268                stringify ! ( sival_int ) ));
13269    assert_eq! (unsafe {
13270                & ( * ( 0 as * const sigval ) ) . sival_ptr as * const _ as
13271                usize } , 0usize , concat ! (
13272                "Alignment of field: " , stringify ! ( sigval ) , "::" ,
13273                stringify ! ( sival_ptr ) ));
13274}
13275impl Clone for sigval {
13276    fn clone(&self) -> Self { *self }
13277}
13278pub type sigval_t = sigval;
13279#[repr(C)]
13280#[derive(Copy)]
13281pub struct siginfo_t {
13282    pub si_signo: ::std::os::raw::c_int,
13283    pub si_errno: ::std::os::raw::c_int,
13284    pub si_code: ::std::os::raw::c_int,
13285    pub __pad0: ::std::os::raw::c_int,
13286    pub _sifields: siginfo_t__bindgen_ty_1,
13287}
13288#[repr(C)]
13289#[derive(Copy)]
13290pub union siginfo_t__bindgen_ty_1 {
13291    pub _pad: [::std::os::raw::c_int; 28usize],
13292    pub _kill: siginfo_t__bindgen_ty_1__bindgen_ty_1,
13293    pub _timer: siginfo_t__bindgen_ty_1__bindgen_ty_2,
13294    pub _rt: siginfo_t__bindgen_ty_1__bindgen_ty_3,
13295    pub _sigchld: siginfo_t__bindgen_ty_1__bindgen_ty_4,
13296    pub _sigfault: siginfo_t__bindgen_ty_1__bindgen_ty_5,
13297    pub _sigpoll: siginfo_t__bindgen_ty_1__bindgen_ty_6,
13298    pub _sigsys: siginfo_t__bindgen_ty_1__bindgen_ty_7,
13299    _bindgen_union_align: [u64; 14usize],
13300}
13301#[repr(C)]
13302#[derive(Debug, Copy)]
13303pub struct siginfo_t__bindgen_ty_1__bindgen_ty_1 {
13304    pub si_pid: __pid_t,
13305    pub si_uid: __uid_t,
13306}
13307#[test]
13308fn bindgen_test_layout_siginfo_t__bindgen_ty_1__bindgen_ty_1() {
13309    assert_eq!(::std::mem::size_of::<siginfo_t__bindgen_ty_1__bindgen_ty_1>()
13310               , 8usize , concat ! (
13311               "Size of: " , stringify ! (
13312               siginfo_t__bindgen_ty_1__bindgen_ty_1 ) ));
13313    assert_eq! (::std::mem::align_of::<siginfo_t__bindgen_ty_1__bindgen_ty_1>()
13314                , 4usize , concat ! (
13315                "Alignment of " , stringify ! (
13316                siginfo_t__bindgen_ty_1__bindgen_ty_1 ) ));
13317    assert_eq! (unsafe {
13318                & ( * ( 0 as * const siginfo_t__bindgen_ty_1__bindgen_ty_1 ) )
13319                . si_pid as * const _ as usize } , 0usize , concat ! (
13320                "Alignment of field: " , stringify ! (
13321                siginfo_t__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! (
13322                si_pid ) ));
13323    assert_eq! (unsafe {
13324                & ( * ( 0 as * const siginfo_t__bindgen_ty_1__bindgen_ty_1 ) )
13325                . si_uid as * const _ as usize } , 4usize , concat ! (
13326                "Alignment of field: " , stringify ! (
13327                siginfo_t__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! (
13328                si_uid ) ));
13329}
13330impl Clone for siginfo_t__bindgen_ty_1__bindgen_ty_1 {
13331    fn clone(&self) -> Self { *self }
13332}
13333#[repr(C)]
13334#[derive(Copy)]
13335pub struct siginfo_t__bindgen_ty_1__bindgen_ty_2 {
13336    pub si_tid: ::std::os::raw::c_int,
13337    pub si_overrun: ::std::os::raw::c_int,
13338    pub si_sigval: sigval_t,
13339}
13340#[test]
13341fn bindgen_test_layout_siginfo_t__bindgen_ty_1__bindgen_ty_2() {
13342    assert_eq!(::std::mem::size_of::<siginfo_t__bindgen_ty_1__bindgen_ty_2>()
13343               , 16usize , concat ! (
13344               "Size of: " , stringify ! (
13345               siginfo_t__bindgen_ty_1__bindgen_ty_2 ) ));
13346    assert_eq! (::std::mem::align_of::<siginfo_t__bindgen_ty_1__bindgen_ty_2>()
13347                , 8usize , concat ! (
13348                "Alignment of " , stringify ! (
13349                siginfo_t__bindgen_ty_1__bindgen_ty_2 ) ));
13350    assert_eq! (unsafe {
13351                & ( * ( 0 as * const siginfo_t__bindgen_ty_1__bindgen_ty_2 ) )
13352                . si_tid as * const _ as usize } , 0usize , concat ! (
13353                "Alignment of field: " , stringify ! (
13354                siginfo_t__bindgen_ty_1__bindgen_ty_2 ) , "::" , stringify ! (
13355                si_tid ) ));
13356    assert_eq! (unsafe {
13357                & ( * ( 0 as * const siginfo_t__bindgen_ty_1__bindgen_ty_2 ) )
13358                . si_overrun as * const _ as usize } , 4usize , concat ! (
13359                "Alignment of field: " , stringify ! (
13360                siginfo_t__bindgen_ty_1__bindgen_ty_2 ) , "::" , stringify ! (
13361                si_overrun ) ));
13362    assert_eq! (unsafe {
13363                & ( * ( 0 as * const siginfo_t__bindgen_ty_1__bindgen_ty_2 ) )
13364                . si_sigval as * const _ as usize } , 8usize , concat ! (
13365                "Alignment of field: " , stringify ! (
13366                siginfo_t__bindgen_ty_1__bindgen_ty_2 ) , "::" , stringify ! (
13367                si_sigval ) ));
13368}
13369impl Clone for siginfo_t__bindgen_ty_1__bindgen_ty_2 {
13370    fn clone(&self) -> Self { *self }
13371}
13372#[repr(C)]
13373#[derive(Copy)]
13374pub struct siginfo_t__bindgen_ty_1__bindgen_ty_3 {
13375    pub si_pid: __pid_t,
13376    pub si_uid: __uid_t,
13377    pub si_sigval: sigval_t,
13378}
13379#[test]
13380fn bindgen_test_layout_siginfo_t__bindgen_ty_1__bindgen_ty_3() {
13381    assert_eq!(::std::mem::size_of::<siginfo_t__bindgen_ty_1__bindgen_ty_3>()
13382               , 16usize , concat ! (
13383               "Size of: " , stringify ! (
13384               siginfo_t__bindgen_ty_1__bindgen_ty_3 ) ));
13385    assert_eq! (::std::mem::align_of::<siginfo_t__bindgen_ty_1__bindgen_ty_3>()
13386                , 8usize , concat ! (
13387                "Alignment of " , stringify ! (
13388                siginfo_t__bindgen_ty_1__bindgen_ty_3 ) ));
13389    assert_eq! (unsafe {
13390                & ( * ( 0 as * const siginfo_t__bindgen_ty_1__bindgen_ty_3 ) )
13391                . si_pid as * const _ as usize } , 0usize , concat ! (
13392                "Alignment of field: " , stringify ! (
13393                siginfo_t__bindgen_ty_1__bindgen_ty_3 ) , "::" , stringify ! (
13394                si_pid ) ));
13395    assert_eq! (unsafe {
13396                & ( * ( 0 as * const siginfo_t__bindgen_ty_1__bindgen_ty_3 ) )
13397                . si_uid as * const _ as usize } , 4usize , concat ! (
13398                "Alignment of field: " , stringify ! (
13399                siginfo_t__bindgen_ty_1__bindgen_ty_3 ) , "::" , stringify ! (
13400                si_uid ) ));
13401    assert_eq! (unsafe {
13402                & ( * ( 0 as * const siginfo_t__bindgen_ty_1__bindgen_ty_3 ) )
13403                . si_sigval as * const _ as usize } , 8usize , concat ! (
13404                "Alignment of field: " , stringify ! (
13405                siginfo_t__bindgen_ty_1__bindgen_ty_3 ) , "::" , stringify ! (
13406                si_sigval ) ));
13407}
13408impl Clone for siginfo_t__bindgen_ty_1__bindgen_ty_3 {
13409    fn clone(&self) -> Self { *self }
13410}
13411#[repr(C)]
13412#[derive(Debug, Copy)]
13413pub struct siginfo_t__bindgen_ty_1__bindgen_ty_4 {
13414    pub si_pid: __pid_t,
13415    pub si_uid: __uid_t,
13416    pub si_status: ::std::os::raw::c_int,
13417    pub si_utime: __clock_t,
13418    pub si_stime: __clock_t,
13419}
13420#[test]
13421fn bindgen_test_layout_siginfo_t__bindgen_ty_1__bindgen_ty_4() {
13422    assert_eq!(::std::mem::size_of::<siginfo_t__bindgen_ty_1__bindgen_ty_4>()
13423               , 32usize , concat ! (
13424               "Size of: " , stringify ! (
13425               siginfo_t__bindgen_ty_1__bindgen_ty_4 ) ));
13426    assert_eq! (::std::mem::align_of::<siginfo_t__bindgen_ty_1__bindgen_ty_4>()
13427                , 8usize , concat ! (
13428                "Alignment of " , stringify ! (
13429                siginfo_t__bindgen_ty_1__bindgen_ty_4 ) ));
13430    assert_eq! (unsafe {
13431                & ( * ( 0 as * const siginfo_t__bindgen_ty_1__bindgen_ty_4 ) )
13432                . si_pid as * const _ as usize } , 0usize , concat ! (
13433                "Alignment of field: " , stringify ! (
13434                siginfo_t__bindgen_ty_1__bindgen_ty_4 ) , "::" , stringify ! (
13435                si_pid ) ));
13436    assert_eq! (unsafe {
13437                & ( * ( 0 as * const siginfo_t__bindgen_ty_1__bindgen_ty_4 ) )
13438                . si_uid as * const _ as usize } , 4usize , concat ! (
13439                "Alignment of field: " , stringify ! (
13440                siginfo_t__bindgen_ty_1__bindgen_ty_4 ) , "::" , stringify ! (
13441                si_uid ) ));
13442    assert_eq! (unsafe {
13443                & ( * ( 0 as * const siginfo_t__bindgen_ty_1__bindgen_ty_4 ) )
13444                . si_status as * const _ as usize } , 8usize , concat ! (
13445                "Alignment of field: " , stringify ! (
13446                siginfo_t__bindgen_ty_1__bindgen_ty_4 ) , "::" , stringify ! (
13447                si_status ) ));
13448    assert_eq! (unsafe {
13449                & ( * ( 0 as * const siginfo_t__bindgen_ty_1__bindgen_ty_4 ) )
13450                . si_utime as * const _ as usize } , 16usize , concat ! (
13451                "Alignment of field: " , stringify ! (
13452                siginfo_t__bindgen_ty_1__bindgen_ty_4 ) , "::" , stringify ! (
13453                si_utime ) ));
13454    assert_eq! (unsafe {
13455                & ( * ( 0 as * const siginfo_t__bindgen_ty_1__bindgen_ty_4 ) )
13456                . si_stime as * const _ as usize } , 24usize , concat ! (
13457                "Alignment of field: " , stringify ! (
13458                siginfo_t__bindgen_ty_1__bindgen_ty_4 ) , "::" , stringify ! (
13459                si_stime ) ));
13460}
13461impl Clone for siginfo_t__bindgen_ty_1__bindgen_ty_4 {
13462    fn clone(&self) -> Self { *self }
13463}
13464#[repr(C)]
13465#[derive(Copy)]
13466pub struct siginfo_t__bindgen_ty_1__bindgen_ty_5 {
13467    pub si_addr: *mut ::std::os::raw::c_void,
13468    pub si_addr_lsb: ::std::os::raw::c_short,
13469    pub _bounds: siginfo_t__bindgen_ty_1__bindgen_ty_5__bindgen_ty_1,
13470}
13471#[repr(C)]
13472#[derive(Copy)]
13473pub union siginfo_t__bindgen_ty_1__bindgen_ty_5__bindgen_ty_1 {
13474    pub _addr_bnd: siginfo_t__bindgen_ty_1__bindgen_ty_5__bindgen_ty_1__bindgen_ty_1,
13475    pub _pkey: __uint32_t,
13476    _bindgen_union_align: [u64; 2usize],
13477}
13478#[repr(C)]
13479#[derive(Debug, Copy)]
13480pub struct siginfo_t__bindgen_ty_1__bindgen_ty_5__bindgen_ty_1__bindgen_ty_1 {
13481    pub _lower: *mut ::std::os::raw::c_void,
13482    pub _upper: *mut ::std::os::raw::c_void,
13483}
13484#[test]
13485fn bindgen_test_layout_siginfo_t__bindgen_ty_1__bindgen_ty_5__bindgen_ty_1__bindgen_ty_1() {
13486    assert_eq!(::std::mem::size_of::<siginfo_t__bindgen_ty_1__bindgen_ty_5__bindgen_ty_1__bindgen_ty_1>()
13487               , 16usize , concat ! (
13488               "Size of: " , stringify ! (
13489               siginfo_t__bindgen_ty_1__bindgen_ty_5__bindgen_ty_1__bindgen_ty_1
13490               ) ));
13491    assert_eq! (::std::mem::align_of::<siginfo_t__bindgen_ty_1__bindgen_ty_5__bindgen_ty_1__bindgen_ty_1>()
13492                , 8usize , concat ! (
13493                "Alignment of " , stringify ! (
13494                siginfo_t__bindgen_ty_1__bindgen_ty_5__bindgen_ty_1__bindgen_ty_1
13495                ) ));
13496    assert_eq! (unsafe {
13497                & (
13498                * (
13499                0 as * const
13500                siginfo_t__bindgen_ty_1__bindgen_ty_5__bindgen_ty_1__bindgen_ty_1
13501                ) ) . _lower as * const _ as usize } , 0usize , concat ! (
13502                "Alignment of field: " , stringify ! (
13503                siginfo_t__bindgen_ty_1__bindgen_ty_5__bindgen_ty_1__bindgen_ty_1
13504                ) , "::" , stringify ! ( _lower ) ));
13505    assert_eq! (unsafe {
13506                & (
13507                * (
13508                0 as * const
13509                siginfo_t__bindgen_ty_1__bindgen_ty_5__bindgen_ty_1__bindgen_ty_1
13510                ) ) . _upper as * const _ as usize } , 8usize , concat ! (
13511                "Alignment of field: " , stringify ! (
13512                siginfo_t__bindgen_ty_1__bindgen_ty_5__bindgen_ty_1__bindgen_ty_1
13513                ) , "::" , stringify ! ( _upper ) ));
13514}
13515impl Clone for
13516 siginfo_t__bindgen_ty_1__bindgen_ty_5__bindgen_ty_1__bindgen_ty_1 {
13517    fn clone(&self) -> Self { *self }
13518}
13519#[test]
13520fn bindgen_test_layout_siginfo_t__bindgen_ty_1__bindgen_ty_5__bindgen_ty_1() {
13521    assert_eq!(::std::mem::size_of::<siginfo_t__bindgen_ty_1__bindgen_ty_5__bindgen_ty_1>()
13522               , 16usize , concat ! (
13523               "Size of: " , stringify ! (
13524               siginfo_t__bindgen_ty_1__bindgen_ty_5__bindgen_ty_1 ) ));
13525    assert_eq! (::std::mem::align_of::<siginfo_t__bindgen_ty_1__bindgen_ty_5__bindgen_ty_1>()
13526                , 8usize , concat ! (
13527                "Alignment of " , stringify ! (
13528                siginfo_t__bindgen_ty_1__bindgen_ty_5__bindgen_ty_1 ) ));
13529    assert_eq! (unsafe {
13530                & (
13531                * (
13532                0 as * const
13533                siginfo_t__bindgen_ty_1__bindgen_ty_5__bindgen_ty_1 ) ) .
13534                _addr_bnd as * const _ as usize } , 0usize , concat ! (
13535                "Alignment of field: " , stringify ! (
13536                siginfo_t__bindgen_ty_1__bindgen_ty_5__bindgen_ty_1 ) , "::" ,
13537                stringify ! ( _addr_bnd ) ));
13538    assert_eq! (unsafe {
13539                & (
13540                * (
13541                0 as * const
13542                siginfo_t__bindgen_ty_1__bindgen_ty_5__bindgen_ty_1 ) ) .
13543                _pkey as * const _ as usize } , 0usize , concat ! (
13544                "Alignment of field: " , stringify ! (
13545                siginfo_t__bindgen_ty_1__bindgen_ty_5__bindgen_ty_1 ) , "::" ,
13546                stringify ! ( _pkey ) ));
13547}
13548impl Clone for siginfo_t__bindgen_ty_1__bindgen_ty_5__bindgen_ty_1 {
13549    fn clone(&self) -> Self { *self }
13550}
13551#[test]
13552fn bindgen_test_layout_siginfo_t__bindgen_ty_1__bindgen_ty_5() {
13553    assert_eq!(::std::mem::size_of::<siginfo_t__bindgen_ty_1__bindgen_ty_5>()
13554               , 32usize , concat ! (
13555               "Size of: " , stringify ! (
13556               siginfo_t__bindgen_ty_1__bindgen_ty_5 ) ));
13557    assert_eq! (::std::mem::align_of::<siginfo_t__bindgen_ty_1__bindgen_ty_5>()
13558                , 8usize , concat ! (
13559                "Alignment of " , stringify ! (
13560                siginfo_t__bindgen_ty_1__bindgen_ty_5 ) ));
13561    assert_eq! (unsafe {
13562                & ( * ( 0 as * const siginfo_t__bindgen_ty_1__bindgen_ty_5 ) )
13563                . si_addr as * const _ as usize } , 0usize , concat ! (
13564                "Alignment of field: " , stringify ! (
13565                siginfo_t__bindgen_ty_1__bindgen_ty_5 ) , "::" , stringify ! (
13566                si_addr ) ));
13567    assert_eq! (unsafe {
13568                & ( * ( 0 as * const siginfo_t__bindgen_ty_1__bindgen_ty_5 ) )
13569                . si_addr_lsb as * const _ as usize } , 8usize , concat ! (
13570                "Alignment of field: " , stringify ! (
13571                siginfo_t__bindgen_ty_1__bindgen_ty_5 ) , "::" , stringify ! (
13572                si_addr_lsb ) ));
13573    assert_eq! (unsafe {
13574                & ( * ( 0 as * const siginfo_t__bindgen_ty_1__bindgen_ty_5 ) )
13575                . _bounds as * const _ as usize } , 16usize , concat ! (
13576                "Alignment of field: " , stringify ! (
13577                siginfo_t__bindgen_ty_1__bindgen_ty_5 ) , "::" , stringify ! (
13578                _bounds ) ));
13579}
13580impl Clone for siginfo_t__bindgen_ty_1__bindgen_ty_5 {
13581    fn clone(&self) -> Self { *self }
13582}
13583#[repr(C)]
13584#[derive(Debug, Copy)]
13585pub struct siginfo_t__bindgen_ty_1__bindgen_ty_6 {
13586    pub si_band: ::std::os::raw::c_long,
13587    pub si_fd: ::std::os::raw::c_int,
13588}
13589#[test]
13590fn bindgen_test_layout_siginfo_t__bindgen_ty_1__bindgen_ty_6() {
13591    assert_eq!(::std::mem::size_of::<siginfo_t__bindgen_ty_1__bindgen_ty_6>()
13592               , 16usize , concat ! (
13593               "Size of: " , stringify ! (
13594               siginfo_t__bindgen_ty_1__bindgen_ty_6 ) ));
13595    assert_eq! (::std::mem::align_of::<siginfo_t__bindgen_ty_1__bindgen_ty_6>()
13596                , 8usize , concat ! (
13597                "Alignment of " , stringify ! (
13598                siginfo_t__bindgen_ty_1__bindgen_ty_6 ) ));
13599    assert_eq! (unsafe {
13600                & ( * ( 0 as * const siginfo_t__bindgen_ty_1__bindgen_ty_6 ) )
13601                . si_band as * const _ as usize } , 0usize , concat ! (
13602                "Alignment of field: " , stringify ! (
13603                siginfo_t__bindgen_ty_1__bindgen_ty_6 ) , "::" , stringify ! (
13604                si_band ) ));
13605    assert_eq! (unsafe {
13606                & ( * ( 0 as * const siginfo_t__bindgen_ty_1__bindgen_ty_6 ) )
13607                . si_fd as * const _ as usize } , 8usize , concat ! (
13608                "Alignment of field: " , stringify ! (
13609                siginfo_t__bindgen_ty_1__bindgen_ty_6 ) , "::" , stringify ! (
13610                si_fd ) ));
13611}
13612impl Clone for siginfo_t__bindgen_ty_1__bindgen_ty_6 {
13613    fn clone(&self) -> Self { *self }
13614}
13615#[repr(C)]
13616#[derive(Debug, Copy)]
13617pub struct siginfo_t__bindgen_ty_1__bindgen_ty_7 {
13618    pub _call_addr: *mut ::std::os::raw::c_void,
13619    pub _syscall: ::std::os::raw::c_int,
13620    pub _arch: ::std::os::raw::c_uint,
13621}
13622#[test]
13623fn bindgen_test_layout_siginfo_t__bindgen_ty_1__bindgen_ty_7() {
13624    assert_eq!(::std::mem::size_of::<siginfo_t__bindgen_ty_1__bindgen_ty_7>()
13625               , 16usize , concat ! (
13626               "Size of: " , stringify ! (
13627               siginfo_t__bindgen_ty_1__bindgen_ty_7 ) ));
13628    assert_eq! (::std::mem::align_of::<siginfo_t__bindgen_ty_1__bindgen_ty_7>()
13629                , 8usize , concat ! (
13630                "Alignment of " , stringify ! (
13631                siginfo_t__bindgen_ty_1__bindgen_ty_7 ) ));
13632    assert_eq! (unsafe {
13633                & ( * ( 0 as * const siginfo_t__bindgen_ty_1__bindgen_ty_7 ) )
13634                . _call_addr as * const _ as usize } , 0usize , concat ! (
13635                "Alignment of field: " , stringify ! (
13636                siginfo_t__bindgen_ty_1__bindgen_ty_7 ) , "::" , stringify ! (
13637                _call_addr ) ));
13638    assert_eq! (unsafe {
13639                & ( * ( 0 as * const siginfo_t__bindgen_ty_1__bindgen_ty_7 ) )
13640                . _syscall as * const _ as usize } , 8usize , concat ! (
13641                "Alignment of field: " , stringify ! (
13642                siginfo_t__bindgen_ty_1__bindgen_ty_7 ) , "::" , stringify ! (
13643                _syscall ) ));
13644    assert_eq! (unsafe {
13645                & ( * ( 0 as * const siginfo_t__bindgen_ty_1__bindgen_ty_7 ) )
13646                . _arch as * const _ as usize } , 12usize , concat ! (
13647                "Alignment of field: " , stringify ! (
13648                siginfo_t__bindgen_ty_1__bindgen_ty_7 ) , "::" , stringify ! (
13649                _arch ) ));
13650}
13651impl Clone for siginfo_t__bindgen_ty_1__bindgen_ty_7 {
13652    fn clone(&self) -> Self { *self }
13653}
13654#[test]
13655fn bindgen_test_layout_siginfo_t__bindgen_ty_1() {
13656    assert_eq!(::std::mem::size_of::<siginfo_t__bindgen_ty_1>() , 112usize ,
13657               concat ! (
13658               "Size of: " , stringify ! ( siginfo_t__bindgen_ty_1 ) ));
13659    assert_eq! (::std::mem::align_of::<siginfo_t__bindgen_ty_1>() , 8usize ,
13660                concat ! (
13661                "Alignment of " , stringify ! ( siginfo_t__bindgen_ty_1 ) ));
13662    assert_eq! (unsafe {
13663                & ( * ( 0 as * const siginfo_t__bindgen_ty_1 ) ) . _pad as *
13664                const _ as usize } , 0usize , concat ! (
13665                "Alignment of field: " , stringify ! ( siginfo_t__bindgen_ty_1
13666                ) , "::" , stringify ! ( _pad ) ));
13667    assert_eq! (unsafe {
13668                & ( * ( 0 as * const siginfo_t__bindgen_ty_1 ) ) . _kill as *
13669                const _ as usize } , 0usize , concat ! (
13670                "Alignment of field: " , stringify ! ( siginfo_t__bindgen_ty_1
13671                ) , "::" , stringify ! ( _kill ) ));
13672    assert_eq! (unsafe {
13673                & ( * ( 0 as * const siginfo_t__bindgen_ty_1 ) ) . _timer as *
13674                const _ as usize } , 0usize , concat ! (
13675                "Alignment of field: " , stringify ! ( siginfo_t__bindgen_ty_1
13676                ) , "::" , stringify ! ( _timer ) ));
13677    assert_eq! (unsafe {
13678                & ( * ( 0 as * const siginfo_t__bindgen_ty_1 ) ) . _rt as *
13679                const _ as usize } , 0usize , concat ! (
13680                "Alignment of field: " , stringify ! ( siginfo_t__bindgen_ty_1
13681                ) , "::" , stringify ! ( _rt ) ));
13682    assert_eq! (unsafe {
13683                & ( * ( 0 as * const siginfo_t__bindgen_ty_1 ) ) . _sigchld as
13684                * const _ as usize } , 0usize , concat ! (
13685                "Alignment of field: " , stringify ! ( siginfo_t__bindgen_ty_1
13686                ) , "::" , stringify ! ( _sigchld ) ));
13687    assert_eq! (unsafe {
13688                & ( * ( 0 as * const siginfo_t__bindgen_ty_1 ) ) . _sigfault
13689                as * const _ as usize } , 0usize , concat ! (
13690                "Alignment of field: " , stringify ! ( siginfo_t__bindgen_ty_1
13691                ) , "::" , stringify ! ( _sigfault ) ));
13692    assert_eq! (unsafe {
13693                & ( * ( 0 as * const siginfo_t__bindgen_ty_1 ) ) . _sigpoll as
13694                * const _ as usize } , 0usize , concat ! (
13695                "Alignment of field: " , stringify ! ( siginfo_t__bindgen_ty_1
13696                ) , "::" , stringify ! ( _sigpoll ) ));
13697    assert_eq! (unsafe {
13698                & ( * ( 0 as * const siginfo_t__bindgen_ty_1 ) ) . _sigsys as
13699                * const _ as usize } , 0usize , concat ! (
13700                "Alignment of field: " , stringify ! ( siginfo_t__bindgen_ty_1
13701                ) , "::" , stringify ! ( _sigsys ) ));
13702}
13703impl Clone for siginfo_t__bindgen_ty_1 {
13704    fn clone(&self) -> Self { *self }
13705}
13706#[test]
13707fn bindgen_test_layout_siginfo_t() {
13708    assert_eq!(::std::mem::size_of::<siginfo_t>() , 128usize , concat ! (
13709               "Size of: " , stringify ! ( siginfo_t ) ));
13710    assert_eq! (::std::mem::align_of::<siginfo_t>() , 8usize , concat ! (
13711                "Alignment of " , stringify ! ( siginfo_t ) ));
13712    assert_eq! (unsafe {
13713                & ( * ( 0 as * const siginfo_t ) ) . si_signo as * const _ as
13714                usize } , 0usize , concat ! (
13715                "Alignment of field: " , stringify ! ( siginfo_t ) , "::" ,
13716                stringify ! ( si_signo ) ));
13717    assert_eq! (unsafe {
13718                & ( * ( 0 as * const siginfo_t ) ) . si_errno as * const _ as
13719                usize } , 4usize , concat ! (
13720                "Alignment of field: " , stringify ! ( siginfo_t ) , "::" ,
13721                stringify ! ( si_errno ) ));
13722    assert_eq! (unsafe {
13723                & ( * ( 0 as * const siginfo_t ) ) . si_code as * const _ as
13724                usize } , 8usize , concat ! (
13725                "Alignment of field: " , stringify ! ( siginfo_t ) , "::" ,
13726                stringify ! ( si_code ) ));
13727    assert_eq! (unsafe {
13728                & ( * ( 0 as * const siginfo_t ) ) . __pad0 as * const _ as
13729                usize } , 12usize , concat ! (
13730                "Alignment of field: " , stringify ! ( siginfo_t ) , "::" ,
13731                stringify ! ( __pad0 ) ));
13732    assert_eq! (unsafe {
13733                & ( * ( 0 as * const siginfo_t ) ) . _sifields as * const _ as
13734                usize } , 16usize , concat ! (
13735                "Alignment of field: " , stringify ! ( siginfo_t ) , "::" ,
13736                stringify ! ( _sifields ) ));
13737}
13738impl Clone for siginfo_t {
13739    fn clone(&self) -> Self { *self }
13740}
13741pub const SI_ASYNCNL: _bindgen_ty_4 = _bindgen_ty_4::SI_ASYNCNL;
13742pub const SI_TKILL: _bindgen_ty_4 = _bindgen_ty_4::SI_TKILL;
13743pub const SI_SIGIO: _bindgen_ty_4 = _bindgen_ty_4::SI_SIGIO;
13744pub const SI_ASYNCIO: _bindgen_ty_4 = _bindgen_ty_4::SI_ASYNCIO;
13745pub const SI_MESGQ: _bindgen_ty_4 = _bindgen_ty_4::SI_MESGQ;
13746pub const SI_TIMER: _bindgen_ty_4 = _bindgen_ty_4::SI_TIMER;
13747pub const SI_QUEUE: _bindgen_ty_4 = _bindgen_ty_4::SI_QUEUE;
13748pub const SI_USER: _bindgen_ty_4 = _bindgen_ty_4::SI_USER;
13749pub const SI_KERNEL: _bindgen_ty_4 = _bindgen_ty_4::SI_KERNEL;
13750#[repr(i32)]
13751#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
13752pub enum _bindgen_ty_4 {
13753    SI_ASYNCNL = -60,
13754    SI_TKILL = -6,
13755    SI_SIGIO = -5,
13756    SI_ASYNCIO = -4,
13757    SI_MESGQ = -3,
13758    SI_TIMER = -2,
13759    SI_QUEUE = -1,
13760    SI_USER = 0,
13761    SI_KERNEL = 128,
13762}
13763pub const ILL_ILLOPC: _bindgen_ty_5 = _bindgen_ty_5::ILL_ILLOPC;
13764pub const ILL_ILLOPN: _bindgen_ty_5 = _bindgen_ty_5::ILL_ILLOPN;
13765pub const ILL_ILLADR: _bindgen_ty_5 = _bindgen_ty_5::ILL_ILLADR;
13766pub const ILL_ILLTRP: _bindgen_ty_5 = _bindgen_ty_5::ILL_ILLTRP;
13767pub const ILL_PRVOPC: _bindgen_ty_5 = _bindgen_ty_5::ILL_PRVOPC;
13768pub const ILL_PRVREG: _bindgen_ty_5 = _bindgen_ty_5::ILL_PRVREG;
13769pub const ILL_COPROC: _bindgen_ty_5 = _bindgen_ty_5::ILL_COPROC;
13770pub const ILL_BADSTK: _bindgen_ty_5 = _bindgen_ty_5::ILL_BADSTK;
13771#[repr(u32)]
13772#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
13773pub enum _bindgen_ty_5 {
13774    ILL_ILLOPC = 1,
13775    ILL_ILLOPN = 2,
13776    ILL_ILLADR = 3,
13777    ILL_ILLTRP = 4,
13778    ILL_PRVOPC = 5,
13779    ILL_PRVREG = 6,
13780    ILL_COPROC = 7,
13781    ILL_BADSTK = 8,
13782}
13783pub const FPE_INTDIV: _bindgen_ty_6 = _bindgen_ty_6::FPE_INTDIV;
13784pub const FPE_INTOVF: _bindgen_ty_6 = _bindgen_ty_6::FPE_INTOVF;
13785pub const FPE_FLTDIV: _bindgen_ty_6 = _bindgen_ty_6::FPE_FLTDIV;
13786pub const FPE_FLTOVF: _bindgen_ty_6 = _bindgen_ty_6::FPE_FLTOVF;
13787pub const FPE_FLTUND: _bindgen_ty_6 = _bindgen_ty_6::FPE_FLTUND;
13788pub const FPE_FLTRES: _bindgen_ty_6 = _bindgen_ty_6::FPE_FLTRES;
13789pub const FPE_FLTINV: _bindgen_ty_6 = _bindgen_ty_6::FPE_FLTINV;
13790pub const FPE_FLTSUB: _bindgen_ty_6 = _bindgen_ty_6::FPE_FLTSUB;
13791#[repr(u32)]
13792#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
13793pub enum _bindgen_ty_6 {
13794    FPE_INTDIV = 1,
13795    FPE_INTOVF = 2,
13796    FPE_FLTDIV = 3,
13797    FPE_FLTOVF = 4,
13798    FPE_FLTUND = 5,
13799    FPE_FLTRES = 6,
13800    FPE_FLTINV = 7,
13801    FPE_FLTSUB = 8,
13802}
13803pub const SEGV_MAPERR: _bindgen_ty_7 = _bindgen_ty_7::SEGV_MAPERR;
13804pub const SEGV_ACCERR: _bindgen_ty_7 = _bindgen_ty_7::SEGV_ACCERR;
13805#[repr(u32)]
13806#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
13807pub enum _bindgen_ty_7 { SEGV_MAPERR = 1, SEGV_ACCERR = 2, }
13808pub const BUS_ADRALN: _bindgen_ty_8 = _bindgen_ty_8::BUS_ADRALN;
13809pub const BUS_ADRERR: _bindgen_ty_8 = _bindgen_ty_8::BUS_ADRERR;
13810pub const BUS_OBJERR: _bindgen_ty_8 = _bindgen_ty_8::BUS_OBJERR;
13811pub const BUS_MCEERR_AR: _bindgen_ty_8 = _bindgen_ty_8::BUS_MCEERR_AR;
13812pub const BUS_MCEERR_AO: _bindgen_ty_8 = _bindgen_ty_8::BUS_MCEERR_AO;
13813#[repr(u32)]
13814#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
13815pub enum _bindgen_ty_8 {
13816    BUS_ADRALN = 1,
13817    BUS_ADRERR = 2,
13818    BUS_OBJERR = 3,
13819    BUS_MCEERR_AR = 4,
13820    BUS_MCEERR_AO = 5,
13821}
13822pub const CLD_EXITED: _bindgen_ty_9 = _bindgen_ty_9::CLD_EXITED;
13823pub const CLD_KILLED: _bindgen_ty_9 = _bindgen_ty_9::CLD_KILLED;
13824pub const CLD_DUMPED: _bindgen_ty_9 = _bindgen_ty_9::CLD_DUMPED;
13825pub const CLD_TRAPPED: _bindgen_ty_9 = _bindgen_ty_9::CLD_TRAPPED;
13826pub const CLD_STOPPED: _bindgen_ty_9 = _bindgen_ty_9::CLD_STOPPED;
13827pub const CLD_CONTINUED: _bindgen_ty_9 = _bindgen_ty_9::CLD_CONTINUED;
13828#[repr(u32)]
13829#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
13830pub enum _bindgen_ty_9 {
13831    CLD_EXITED = 1,
13832    CLD_KILLED = 2,
13833    CLD_DUMPED = 3,
13834    CLD_TRAPPED = 4,
13835    CLD_STOPPED = 5,
13836    CLD_CONTINUED = 6,
13837}
13838pub const POLL_IN: _bindgen_ty_10 = _bindgen_ty_10::POLL_IN;
13839pub const POLL_OUT: _bindgen_ty_10 = _bindgen_ty_10::POLL_OUT;
13840pub const POLL_MSG: _bindgen_ty_10 = _bindgen_ty_10::POLL_MSG;
13841pub const POLL_ERR: _bindgen_ty_10 = _bindgen_ty_10::POLL_ERR;
13842pub const POLL_PRI: _bindgen_ty_10 = _bindgen_ty_10::POLL_PRI;
13843pub const POLL_HUP: _bindgen_ty_10 = _bindgen_ty_10::POLL_HUP;
13844#[repr(u32)]
13845#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
13846pub enum _bindgen_ty_10 {
13847    POLL_IN = 1,
13848    POLL_OUT = 2,
13849    POLL_MSG = 3,
13850    POLL_ERR = 4,
13851    POLL_PRI = 5,
13852    POLL_HUP = 6,
13853}
13854pub type sigevent_t = sigevent;
13855pub const SIGEV_SIGNAL: _bindgen_ty_11 = _bindgen_ty_11::SIGEV_SIGNAL;
13856pub const SIGEV_NONE: _bindgen_ty_11 = _bindgen_ty_11::SIGEV_NONE;
13857pub const SIGEV_THREAD: _bindgen_ty_11 = _bindgen_ty_11::SIGEV_THREAD;
13858pub const SIGEV_THREAD_ID: _bindgen_ty_11 = _bindgen_ty_11::SIGEV_THREAD_ID;
13859#[repr(u32)]
13860#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
13861pub enum _bindgen_ty_11 {
13862    SIGEV_SIGNAL = 0,
13863    SIGEV_NONE = 1,
13864    SIGEV_THREAD = 2,
13865    SIGEV_THREAD_ID = 4,
13866}
13867pub type __sighandler_t =
13868    ::std::option::Option<unsafe extern "C" fn(arg1: ::std::os::raw::c_int)>;
13869extern "C" {
13870    pub fn __sysv_signal(__sig: ::std::os::raw::c_int,
13871                         __handler: __sighandler_t) -> __sighandler_t;
13872}
13873extern "C" {
13874    pub fn signal(__sig: ::std::os::raw::c_int, __handler: __sighandler_t)
13875     -> __sighandler_t;
13876}
13877extern "C" {
13878    pub fn kill(__pid: __pid_t, __sig: ::std::os::raw::c_int)
13879     -> ::std::os::raw::c_int;
13880}
13881extern "C" {
13882    pub fn killpg(__pgrp: __pid_t, __sig: ::std::os::raw::c_int)
13883     -> ::std::os::raw::c_int;
13884}
13885extern "C" {
13886    pub fn raise(__sig: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
13887}
13888extern "C" {
13889    pub fn ssignal(__sig: ::std::os::raw::c_int, __handler: __sighandler_t)
13890     -> __sighandler_t;
13891}
13892extern "C" {
13893    pub fn gsignal(__sig: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
13894}
13895extern "C" {
13896    pub fn psignal(__sig: ::std::os::raw::c_int,
13897                   __s: *const ::std::os::raw::c_char);
13898}
13899extern "C" {
13900    pub fn psiginfo(__pinfo: *const siginfo_t,
13901                    __s: *const ::std::os::raw::c_char);
13902}
13903extern "C" {
13904    pub fn sigblock(__mask: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
13905}
13906extern "C" {
13907    pub fn sigsetmask(__mask: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
13908}
13909extern "C" {
13910    pub fn siggetmask() -> ::std::os::raw::c_int;
13911}
13912pub type sig_t = __sighandler_t;
13913extern "C" {
13914    pub fn sigemptyset(__set: *mut sigset_t) -> ::std::os::raw::c_int;
13915}
13916extern "C" {
13917    pub fn sigfillset(__set: *mut sigset_t) -> ::std::os::raw::c_int;
13918}
13919extern "C" {
13920    pub fn sigaddset(__set: *mut sigset_t, __signo: ::std::os::raw::c_int)
13921     -> ::std::os::raw::c_int;
13922}
13923extern "C" {
13924    pub fn sigdelset(__set: *mut sigset_t, __signo: ::std::os::raw::c_int)
13925     -> ::std::os::raw::c_int;
13926}
13927extern "C" {
13928    pub fn sigismember(__set: *const sigset_t, __signo: ::std::os::raw::c_int)
13929     -> ::std::os::raw::c_int;
13930}
13931#[repr(C)]
13932#[derive(Copy)]
13933pub struct sigaction {
13934    pub __sigaction_handler: sigaction__bindgen_ty_1,
13935    pub sa_mask: __sigset_t,
13936    pub sa_flags: ::std::os::raw::c_int,
13937    pub sa_restorer: ::std::option::Option<unsafe extern "C" fn()>,
13938}
13939#[repr(C)]
13940#[derive(Copy)]
13941pub union sigaction__bindgen_ty_1 {
13942    pub sa_handler: __sighandler_t,
13943    pub sa_sigaction: ::std::option::Option<unsafe extern "C" fn(arg1:
13944                                                                     ::std::os::raw::c_int,
13945                                                                 arg2:
13946                                                                     *mut siginfo_t,
13947                                                                 arg3:
13948                                                                     *mut ::std::os::raw::c_void)>,
13949    _bindgen_union_align: u64,
13950}
13951#[test]
13952fn bindgen_test_layout_sigaction__bindgen_ty_1() {
13953    assert_eq!(::std::mem::size_of::<sigaction__bindgen_ty_1>() , 8usize ,
13954               concat ! (
13955               "Size of: " , stringify ! ( sigaction__bindgen_ty_1 ) ));
13956    assert_eq! (::std::mem::align_of::<sigaction__bindgen_ty_1>() , 8usize ,
13957                concat ! (
13958                "Alignment of " , stringify ! ( sigaction__bindgen_ty_1 ) ));
13959    assert_eq! (unsafe {
13960                & ( * ( 0 as * const sigaction__bindgen_ty_1 ) ) . sa_handler
13961                as * const _ as usize } , 0usize , concat ! (
13962                "Alignment of field: " , stringify ! ( sigaction__bindgen_ty_1
13963                ) , "::" , stringify ! ( sa_handler ) ));
13964    assert_eq! (unsafe {
13965                & ( * ( 0 as * const sigaction__bindgen_ty_1 ) ) .
13966                sa_sigaction as * const _ as usize } , 0usize , concat ! (
13967                "Alignment of field: " , stringify ! ( sigaction__bindgen_ty_1
13968                ) , "::" , stringify ! ( sa_sigaction ) ));
13969}
13970impl Clone for sigaction__bindgen_ty_1 {
13971    fn clone(&self) -> Self { *self }
13972}
13973#[test]
13974fn bindgen_test_layout_sigaction() {
13975    assert_eq!(::std::mem::size_of::<sigaction>() , 152usize , concat ! (
13976               "Size of: " , stringify ! ( sigaction ) ));
13977    assert_eq! (::std::mem::align_of::<sigaction>() , 8usize , concat ! (
13978                "Alignment of " , stringify ! ( sigaction ) ));
13979    assert_eq! (unsafe {
13980                & ( * ( 0 as * const sigaction ) ) . __sigaction_handler as *
13981                const _ as usize } , 0usize , concat ! (
13982                "Alignment of field: " , stringify ! ( sigaction ) , "::" ,
13983                stringify ! ( __sigaction_handler ) ));
13984    assert_eq! (unsafe {
13985                & ( * ( 0 as * const sigaction ) ) . sa_mask as * const _ as
13986                usize } , 8usize , concat ! (
13987                "Alignment of field: " , stringify ! ( sigaction ) , "::" ,
13988                stringify ! ( sa_mask ) ));
13989    assert_eq! (unsafe {
13990                & ( * ( 0 as * const sigaction ) ) . sa_flags as * const _ as
13991                usize } , 136usize , concat ! (
13992                "Alignment of field: " , stringify ! ( sigaction ) , "::" ,
13993                stringify ! ( sa_flags ) ));
13994    assert_eq! (unsafe {
13995                & ( * ( 0 as * const sigaction ) ) . sa_restorer as * const _
13996                as usize } , 144usize , concat ! (
13997                "Alignment of field: " , stringify ! ( sigaction ) , "::" ,
13998                stringify ! ( sa_restorer ) ));
13999}
14000impl Clone for sigaction {
14001    fn clone(&self) -> Self { *self }
14002}
14003extern "C" {
14004    pub fn sigprocmask(__how: ::std::os::raw::c_int, __set: *const sigset_t,
14005                       __oset: *mut sigset_t) -> ::std::os::raw::c_int;
14006}
14007extern "C" {
14008    pub fn sigsuspend(__set: *const sigset_t) -> ::std::os::raw::c_int;
14009}
14010extern "C" {
14011    pub fn sigaction(__sig: ::std::os::raw::c_int, __act: *const sigaction,
14012                     __oact: *mut sigaction) -> ::std::os::raw::c_int;
14013}
14014extern "C" {
14015    pub fn sigpending(__set: *mut sigset_t) -> ::std::os::raw::c_int;
14016}
14017extern "C" {
14018    pub fn sigwait(__set: *const sigset_t, __sig: *mut ::std::os::raw::c_int)
14019     -> ::std::os::raw::c_int;
14020}
14021extern "C" {
14022    pub fn sigwaitinfo(__set: *const sigset_t, __info: *mut siginfo_t)
14023     -> ::std::os::raw::c_int;
14024}
14025extern "C" {
14026    pub fn sigtimedwait(__set: *const sigset_t, __info: *mut siginfo_t,
14027                        __timeout: *const timespec) -> ::std::os::raw::c_int;
14028}
14029extern "C" {
14030    pub fn sigqueue(__pid: __pid_t, __sig: ::std::os::raw::c_int,
14031                    __val: sigval) -> ::std::os::raw::c_int;
14032}
14033extern "C" {
14034    #[link_name = "_sys_siglist"]
14035    pub static mut _sys_siglist: [*const ::std::os::raw::c_char; 65usize];
14036}
14037extern "C" {
14038    #[link_name = "sys_siglist"]
14039    pub static mut sys_siglist: [*const ::std::os::raw::c_char; 65usize];
14040}
14041#[repr(C)]
14042#[derive(Debug, Copy)]
14043pub struct _fpx_sw_bytes {
14044    pub magic1: __uint32_t,
14045    pub extended_size: __uint32_t,
14046    pub xstate_bv: __uint64_t,
14047    pub xstate_size: __uint32_t,
14048    pub __glibc_reserved1: [__uint32_t; 7usize],
14049}
14050#[test]
14051fn bindgen_test_layout__fpx_sw_bytes() {
14052    assert_eq!(::std::mem::size_of::<_fpx_sw_bytes>() , 48usize , concat ! (
14053               "Size of: " , stringify ! ( _fpx_sw_bytes ) ));
14054    assert_eq! (::std::mem::align_of::<_fpx_sw_bytes>() , 8usize , concat ! (
14055                "Alignment of " , stringify ! ( _fpx_sw_bytes ) ));
14056    assert_eq! (unsafe {
14057                & ( * ( 0 as * const _fpx_sw_bytes ) ) . magic1 as * const _
14058                as usize } , 0usize , concat ! (
14059                "Alignment of field: " , stringify ! ( _fpx_sw_bytes ) , "::"
14060                , stringify ! ( magic1 ) ));
14061    assert_eq! (unsafe {
14062                & ( * ( 0 as * const _fpx_sw_bytes ) ) . extended_size as *
14063                const _ as usize } , 4usize , concat ! (
14064                "Alignment of field: " , stringify ! ( _fpx_sw_bytes ) , "::"
14065                , stringify ! ( extended_size ) ));
14066    assert_eq! (unsafe {
14067                & ( * ( 0 as * const _fpx_sw_bytes ) ) . xstate_bv as * const
14068                _ as usize } , 8usize , concat ! (
14069                "Alignment of field: " , stringify ! ( _fpx_sw_bytes ) , "::"
14070                , stringify ! ( xstate_bv ) ));
14071    assert_eq! (unsafe {
14072                & ( * ( 0 as * const _fpx_sw_bytes ) ) . xstate_size as *
14073                const _ as usize } , 16usize , concat ! (
14074                "Alignment of field: " , stringify ! ( _fpx_sw_bytes ) , "::"
14075                , stringify ! ( xstate_size ) ));
14076    assert_eq! (unsafe {
14077                & ( * ( 0 as * const _fpx_sw_bytes ) ) . __glibc_reserved1 as
14078                * const _ as usize } , 20usize , concat ! (
14079                "Alignment of field: " , stringify ! ( _fpx_sw_bytes ) , "::"
14080                , stringify ! ( __glibc_reserved1 ) ));
14081}
14082impl Clone for _fpx_sw_bytes {
14083    fn clone(&self) -> Self { *self }
14084}
14085#[repr(C)]
14086#[derive(Debug, Copy)]
14087pub struct _fpreg {
14088    pub significand: [::std::os::raw::c_ushort; 4usize],
14089    pub exponent: ::std::os::raw::c_ushort,
14090}
14091#[test]
14092fn bindgen_test_layout__fpreg() {
14093    assert_eq!(::std::mem::size_of::<_fpreg>() , 10usize , concat ! (
14094               "Size of: " , stringify ! ( _fpreg ) ));
14095    assert_eq! (::std::mem::align_of::<_fpreg>() , 2usize , concat ! (
14096                "Alignment of " , stringify ! ( _fpreg ) ));
14097    assert_eq! (unsafe {
14098                & ( * ( 0 as * const _fpreg ) ) . significand as * const _ as
14099                usize } , 0usize , concat ! (
14100                "Alignment of field: " , stringify ! ( _fpreg ) , "::" ,
14101                stringify ! ( significand ) ));
14102    assert_eq! (unsafe {
14103                & ( * ( 0 as * const _fpreg ) ) . exponent as * const _ as
14104                usize } , 8usize , concat ! (
14105                "Alignment of field: " , stringify ! ( _fpreg ) , "::" ,
14106                stringify ! ( exponent ) ));
14107}
14108impl Clone for _fpreg {
14109    fn clone(&self) -> Self { *self }
14110}
14111#[repr(C)]
14112#[derive(Debug, Copy)]
14113pub struct _fpxreg {
14114    pub significand: [::std::os::raw::c_ushort; 4usize],
14115    pub exponent: ::std::os::raw::c_ushort,
14116    pub __glibc_reserved1: [::std::os::raw::c_ushort; 3usize],
14117}
14118#[test]
14119fn bindgen_test_layout__fpxreg() {
14120    assert_eq!(::std::mem::size_of::<_fpxreg>() , 16usize , concat ! (
14121               "Size of: " , stringify ! ( _fpxreg ) ));
14122    assert_eq! (::std::mem::align_of::<_fpxreg>() , 2usize , concat ! (
14123                "Alignment of " , stringify ! ( _fpxreg ) ));
14124    assert_eq! (unsafe {
14125                & ( * ( 0 as * const _fpxreg ) ) . significand as * const _ as
14126                usize } , 0usize , concat ! (
14127                "Alignment of field: " , stringify ! ( _fpxreg ) , "::" ,
14128                stringify ! ( significand ) ));
14129    assert_eq! (unsafe {
14130                & ( * ( 0 as * const _fpxreg ) ) . exponent as * const _ as
14131                usize } , 8usize , concat ! (
14132                "Alignment of field: " , stringify ! ( _fpxreg ) , "::" ,
14133                stringify ! ( exponent ) ));
14134    assert_eq! (unsafe {
14135                & ( * ( 0 as * const _fpxreg ) ) . __glibc_reserved1 as *
14136                const _ as usize } , 10usize , concat ! (
14137                "Alignment of field: " , stringify ! ( _fpxreg ) , "::" ,
14138                stringify ! ( __glibc_reserved1 ) ));
14139}
14140impl Clone for _fpxreg {
14141    fn clone(&self) -> Self { *self }
14142}
14143#[repr(C)]
14144#[derive(Debug, Copy)]
14145pub struct _xmmreg {
14146    pub element: [__uint32_t; 4usize],
14147}
14148#[test]
14149fn bindgen_test_layout__xmmreg() {
14150    assert_eq!(::std::mem::size_of::<_xmmreg>() , 16usize , concat ! (
14151               "Size of: " , stringify ! ( _xmmreg ) ));
14152    assert_eq! (::std::mem::align_of::<_xmmreg>() , 4usize , concat ! (
14153                "Alignment of " , stringify ! ( _xmmreg ) ));
14154    assert_eq! (unsafe {
14155                & ( * ( 0 as * const _xmmreg ) ) . element as * const _ as
14156                usize } , 0usize , concat ! (
14157                "Alignment of field: " , stringify ! ( _xmmreg ) , "::" ,
14158                stringify ! ( element ) ));
14159}
14160impl Clone for _xmmreg {
14161    fn clone(&self) -> Self { *self }
14162}
14163#[repr(C)]
14164#[derive(Debug, Copy)]
14165pub struct _fpstate {
14166    pub cwd: __uint16_t,
14167    pub swd: __uint16_t,
14168    pub ftw: __uint16_t,
14169    pub fop: __uint16_t,
14170    pub rip: __uint64_t,
14171    pub rdp: __uint64_t,
14172    pub mxcsr: __uint32_t,
14173    pub mxcr_mask: __uint32_t,
14174    pub _st: [_fpxreg; 8usize],
14175    pub _xmm: [_xmmreg; 16usize],
14176    pub __glibc_reserved1: [__uint32_t; 24usize],
14177}
14178#[test]
14179fn bindgen_test_layout__fpstate() {
14180    assert_eq!(::std::mem::size_of::<_fpstate>() , 512usize , concat ! (
14181               "Size of: " , stringify ! ( _fpstate ) ));
14182    assert_eq! (::std::mem::align_of::<_fpstate>() , 8usize , concat ! (
14183                "Alignment of " , stringify ! ( _fpstate ) ));
14184    assert_eq! (unsafe {
14185                & ( * ( 0 as * const _fpstate ) ) . cwd as * const _ as usize
14186                } , 0usize , concat ! (
14187                "Alignment of field: " , stringify ! ( _fpstate ) , "::" ,
14188                stringify ! ( cwd ) ));
14189    assert_eq! (unsafe {
14190                & ( * ( 0 as * const _fpstate ) ) . swd as * const _ as usize
14191                } , 2usize , concat ! (
14192                "Alignment of field: " , stringify ! ( _fpstate ) , "::" ,
14193                stringify ! ( swd ) ));
14194    assert_eq! (unsafe {
14195                & ( * ( 0 as * const _fpstate ) ) . ftw as * const _ as usize
14196                } , 4usize , concat ! (
14197                "Alignment of field: " , stringify ! ( _fpstate ) , "::" ,
14198                stringify ! ( ftw ) ));
14199    assert_eq! (unsafe {
14200                & ( * ( 0 as * const _fpstate ) ) . fop as * const _ as usize
14201                } , 6usize , concat ! (
14202                "Alignment of field: " , stringify ! ( _fpstate ) , "::" ,
14203                stringify ! ( fop ) ));
14204    assert_eq! (unsafe {
14205                & ( * ( 0 as * const _fpstate ) ) . rip as * const _ as usize
14206                } , 8usize , concat ! (
14207                "Alignment of field: " , stringify ! ( _fpstate ) , "::" ,
14208                stringify ! ( rip ) ));
14209    assert_eq! (unsafe {
14210                & ( * ( 0 as * const _fpstate ) ) . rdp as * const _ as usize
14211                } , 16usize , concat ! (
14212                "Alignment of field: " , stringify ! ( _fpstate ) , "::" ,
14213                stringify ! ( rdp ) ));
14214    assert_eq! (unsafe {
14215                & ( * ( 0 as * const _fpstate ) ) . mxcsr as * const _ as
14216                usize } , 24usize , concat ! (
14217                "Alignment of field: " , stringify ! ( _fpstate ) , "::" ,
14218                stringify ! ( mxcsr ) ));
14219    assert_eq! (unsafe {
14220                & ( * ( 0 as * const _fpstate ) ) . mxcr_mask as * const _ as
14221                usize } , 28usize , concat ! (
14222                "Alignment of field: " , stringify ! ( _fpstate ) , "::" ,
14223                stringify ! ( mxcr_mask ) ));
14224    assert_eq! (unsafe {
14225                & ( * ( 0 as * const _fpstate ) ) . _st as * const _ as usize
14226                } , 32usize , concat ! (
14227                "Alignment of field: " , stringify ! ( _fpstate ) , "::" ,
14228                stringify ! ( _st ) ));
14229    assert_eq! (unsafe {
14230                & ( * ( 0 as * const _fpstate ) ) . _xmm as * const _ as usize
14231                } , 160usize , concat ! (
14232                "Alignment of field: " , stringify ! ( _fpstate ) , "::" ,
14233                stringify ! ( _xmm ) ));
14234    assert_eq! (unsafe {
14235                & ( * ( 0 as * const _fpstate ) ) . __glibc_reserved1 as *
14236                const _ as usize } , 416usize , concat ! (
14237                "Alignment of field: " , stringify ! ( _fpstate ) , "::" ,
14238                stringify ! ( __glibc_reserved1 ) ));
14239}
14240impl Clone for _fpstate {
14241    fn clone(&self) -> Self { *self }
14242}
14243#[repr(C)]
14244#[derive(Copy)]
14245pub struct sigcontext {
14246    pub r8: __uint64_t,
14247    pub r9: __uint64_t,
14248    pub r10: __uint64_t,
14249    pub r11: __uint64_t,
14250    pub r12: __uint64_t,
14251    pub r13: __uint64_t,
14252    pub r14: __uint64_t,
14253    pub r15: __uint64_t,
14254    pub rdi: __uint64_t,
14255    pub rsi: __uint64_t,
14256    pub rbp: __uint64_t,
14257    pub rbx: __uint64_t,
14258    pub rdx: __uint64_t,
14259    pub rax: __uint64_t,
14260    pub rcx: __uint64_t,
14261    pub rsp: __uint64_t,
14262    pub rip: __uint64_t,
14263    pub eflags: __uint64_t,
14264    pub cs: ::std::os::raw::c_ushort,
14265    pub gs: ::std::os::raw::c_ushort,
14266    pub fs: ::std::os::raw::c_ushort,
14267    pub __pad0: ::std::os::raw::c_ushort,
14268    pub err: __uint64_t,
14269    pub trapno: __uint64_t,
14270    pub oldmask: __uint64_t,
14271    pub cr2: __uint64_t,
14272    pub __bindgen_anon_1: sigcontext__bindgen_ty_1,
14273    pub __reserved1: [__uint64_t; 8usize],
14274}
14275#[repr(C)]
14276#[derive(Copy)]
14277pub union sigcontext__bindgen_ty_1 {
14278    pub fpstate: *mut _fpstate,
14279    pub __fpstate_word: __uint64_t,
14280    _bindgen_union_align: u64,
14281}
14282#[test]
14283fn bindgen_test_layout_sigcontext__bindgen_ty_1() {
14284    assert_eq!(::std::mem::size_of::<sigcontext__bindgen_ty_1>() , 8usize ,
14285               concat ! (
14286               "Size of: " , stringify ! ( sigcontext__bindgen_ty_1 ) ));
14287    assert_eq! (::std::mem::align_of::<sigcontext__bindgen_ty_1>() , 8usize ,
14288                concat ! (
14289                "Alignment of " , stringify ! ( sigcontext__bindgen_ty_1 ) ));
14290    assert_eq! (unsafe {
14291                & ( * ( 0 as * const sigcontext__bindgen_ty_1 ) ) . fpstate as
14292                * const _ as usize } , 0usize , concat ! (
14293                "Alignment of field: " , stringify ! (
14294                sigcontext__bindgen_ty_1 ) , "::" , stringify ! ( fpstate )
14295                ));
14296    assert_eq! (unsafe {
14297                & ( * ( 0 as * const sigcontext__bindgen_ty_1 ) ) .
14298                __fpstate_word as * const _ as usize } , 0usize , concat ! (
14299                "Alignment of field: " , stringify ! (
14300                sigcontext__bindgen_ty_1 ) , "::" , stringify ! (
14301                __fpstate_word ) ));
14302}
14303impl Clone for sigcontext__bindgen_ty_1 {
14304    fn clone(&self) -> Self { *self }
14305}
14306#[test]
14307fn bindgen_test_layout_sigcontext() {
14308    assert_eq!(::std::mem::size_of::<sigcontext>() , 256usize , concat ! (
14309               "Size of: " , stringify ! ( sigcontext ) ));
14310    assert_eq! (::std::mem::align_of::<sigcontext>() , 8usize , concat ! (
14311                "Alignment of " , stringify ! ( sigcontext ) ));
14312    assert_eq! (unsafe {
14313                & ( * ( 0 as * const sigcontext ) ) . r8 as * const _ as usize
14314                } , 0usize , concat ! (
14315                "Alignment of field: " , stringify ! ( sigcontext ) , "::" ,
14316                stringify ! ( r8 ) ));
14317    assert_eq! (unsafe {
14318                & ( * ( 0 as * const sigcontext ) ) . r9 as * const _ as usize
14319                } , 8usize , concat ! (
14320                "Alignment of field: " , stringify ! ( sigcontext ) , "::" ,
14321                stringify ! ( r9 ) ));
14322    assert_eq! (unsafe {
14323                & ( * ( 0 as * const sigcontext ) ) . r10 as * const _ as
14324                usize } , 16usize , concat ! (
14325                "Alignment of field: " , stringify ! ( sigcontext ) , "::" ,
14326                stringify ! ( r10 ) ));
14327    assert_eq! (unsafe {
14328                & ( * ( 0 as * const sigcontext ) ) . r11 as * const _ as
14329                usize } , 24usize , concat ! (
14330                "Alignment of field: " , stringify ! ( sigcontext ) , "::" ,
14331                stringify ! ( r11 ) ));
14332    assert_eq! (unsafe {
14333                & ( * ( 0 as * const sigcontext ) ) . r12 as * const _ as
14334                usize } , 32usize , concat ! (
14335                "Alignment of field: " , stringify ! ( sigcontext ) , "::" ,
14336                stringify ! ( r12 ) ));
14337    assert_eq! (unsafe {
14338                & ( * ( 0 as * const sigcontext ) ) . r13 as * const _ as
14339                usize } , 40usize , concat ! (
14340                "Alignment of field: " , stringify ! ( sigcontext ) , "::" ,
14341                stringify ! ( r13 ) ));
14342    assert_eq! (unsafe {
14343                & ( * ( 0 as * const sigcontext ) ) . r14 as * const _ as
14344                usize } , 48usize , concat ! (
14345                "Alignment of field: " , stringify ! ( sigcontext ) , "::" ,
14346                stringify ! ( r14 ) ));
14347    assert_eq! (unsafe {
14348                & ( * ( 0 as * const sigcontext ) ) . r15 as * const _ as
14349                usize } , 56usize , concat ! (
14350                "Alignment of field: " , stringify ! ( sigcontext ) , "::" ,
14351                stringify ! ( r15 ) ));
14352    assert_eq! (unsafe {
14353                & ( * ( 0 as * const sigcontext ) ) . rdi as * const _ as
14354                usize } , 64usize , concat ! (
14355                "Alignment of field: " , stringify ! ( sigcontext ) , "::" ,
14356                stringify ! ( rdi ) ));
14357    assert_eq! (unsafe {
14358                & ( * ( 0 as * const sigcontext ) ) . rsi as * const _ as
14359                usize } , 72usize , concat ! (
14360                "Alignment of field: " , stringify ! ( sigcontext ) , "::" ,
14361                stringify ! ( rsi ) ));
14362    assert_eq! (unsafe {
14363                & ( * ( 0 as * const sigcontext ) ) . rbp as * const _ as
14364                usize } , 80usize , concat ! (
14365                "Alignment of field: " , stringify ! ( sigcontext ) , "::" ,
14366                stringify ! ( rbp ) ));
14367    assert_eq! (unsafe {
14368                & ( * ( 0 as * const sigcontext ) ) . rbx as * const _ as
14369                usize } , 88usize , concat ! (
14370                "Alignment of field: " , stringify ! ( sigcontext ) , "::" ,
14371                stringify ! ( rbx ) ));
14372    assert_eq! (unsafe {
14373                & ( * ( 0 as * const sigcontext ) ) . rdx as * const _ as
14374                usize } , 96usize , concat ! (
14375                "Alignment of field: " , stringify ! ( sigcontext ) , "::" ,
14376                stringify ! ( rdx ) ));
14377    assert_eq! (unsafe {
14378                & ( * ( 0 as * const sigcontext ) ) . rax as * const _ as
14379                usize } , 104usize , concat ! (
14380                "Alignment of field: " , stringify ! ( sigcontext ) , "::" ,
14381                stringify ! ( rax ) ));
14382    assert_eq! (unsafe {
14383                & ( * ( 0 as * const sigcontext ) ) . rcx as * const _ as
14384                usize } , 112usize , concat ! (
14385                "Alignment of field: " , stringify ! ( sigcontext ) , "::" ,
14386                stringify ! ( rcx ) ));
14387    assert_eq! (unsafe {
14388                & ( * ( 0 as * const sigcontext ) ) . rsp as * const _ as
14389                usize } , 120usize , concat ! (
14390                "Alignment of field: " , stringify ! ( sigcontext ) , "::" ,
14391                stringify ! ( rsp ) ));
14392    assert_eq! (unsafe {
14393                & ( * ( 0 as * const sigcontext ) ) . rip as * const _ as
14394                usize } , 128usize , concat ! (
14395                "Alignment of field: " , stringify ! ( sigcontext ) , "::" ,
14396                stringify ! ( rip ) ));
14397    assert_eq! (unsafe {
14398                & ( * ( 0 as * const sigcontext ) ) . eflags as * const _ as
14399                usize } , 136usize , concat ! (
14400                "Alignment of field: " , stringify ! ( sigcontext ) , "::" ,
14401                stringify ! ( eflags ) ));
14402    assert_eq! (unsafe {
14403                & ( * ( 0 as * const sigcontext ) ) . cs as * const _ as usize
14404                } , 144usize , concat ! (
14405                "Alignment of field: " , stringify ! ( sigcontext ) , "::" ,
14406                stringify ! ( cs ) ));
14407    assert_eq! (unsafe {
14408                & ( * ( 0 as * const sigcontext ) ) . gs as * const _ as usize
14409                } , 146usize , concat ! (
14410                "Alignment of field: " , stringify ! ( sigcontext ) , "::" ,
14411                stringify ! ( gs ) ));
14412    assert_eq! (unsafe {
14413                & ( * ( 0 as * const sigcontext ) ) . fs as * const _ as usize
14414                } , 148usize , concat ! (
14415                "Alignment of field: " , stringify ! ( sigcontext ) , "::" ,
14416                stringify ! ( fs ) ));
14417    assert_eq! (unsafe {
14418                & ( * ( 0 as * const sigcontext ) ) . __pad0 as * const _ as
14419                usize } , 150usize , concat ! (
14420                "Alignment of field: " , stringify ! ( sigcontext ) , "::" ,
14421                stringify ! ( __pad0 ) ));
14422    assert_eq! (unsafe {
14423                & ( * ( 0 as * const sigcontext ) ) . err as * const _ as
14424                usize } , 152usize , concat ! (
14425                "Alignment of field: " , stringify ! ( sigcontext ) , "::" ,
14426                stringify ! ( err ) ));
14427    assert_eq! (unsafe {
14428                & ( * ( 0 as * const sigcontext ) ) . trapno as * const _ as
14429                usize } , 160usize , concat ! (
14430                "Alignment of field: " , stringify ! ( sigcontext ) , "::" ,
14431                stringify ! ( trapno ) ));
14432    assert_eq! (unsafe {
14433                & ( * ( 0 as * const sigcontext ) ) . oldmask as * const _ as
14434                usize } , 168usize , concat ! (
14435                "Alignment of field: " , stringify ! ( sigcontext ) , "::" ,
14436                stringify ! ( oldmask ) ));
14437    assert_eq! (unsafe {
14438                & ( * ( 0 as * const sigcontext ) ) . cr2 as * const _ as
14439                usize } , 176usize , concat ! (
14440                "Alignment of field: " , stringify ! ( sigcontext ) , "::" ,
14441                stringify ! ( cr2 ) ));
14442    assert_eq! (unsafe {
14443                & ( * ( 0 as * const sigcontext ) ) . __reserved1 as * const _
14444                as usize } , 192usize , concat ! (
14445                "Alignment of field: " , stringify ! ( sigcontext ) , "::" ,
14446                stringify ! ( __reserved1 ) ));
14447}
14448impl Clone for sigcontext {
14449    fn clone(&self) -> Self { *self }
14450}
14451#[repr(C)]
14452#[derive(Debug, Copy)]
14453pub struct _xsave_hdr {
14454    pub xstate_bv: __uint64_t,
14455    pub __glibc_reserved1: [__uint64_t; 2usize],
14456    pub __glibc_reserved2: [__uint64_t; 5usize],
14457}
14458#[test]
14459fn bindgen_test_layout__xsave_hdr() {
14460    assert_eq!(::std::mem::size_of::<_xsave_hdr>() , 64usize , concat ! (
14461               "Size of: " , stringify ! ( _xsave_hdr ) ));
14462    assert_eq! (::std::mem::align_of::<_xsave_hdr>() , 8usize , concat ! (
14463                "Alignment of " , stringify ! ( _xsave_hdr ) ));
14464    assert_eq! (unsafe {
14465                & ( * ( 0 as * const _xsave_hdr ) ) . xstate_bv as * const _
14466                as usize } , 0usize , concat ! (
14467                "Alignment of field: " , stringify ! ( _xsave_hdr ) , "::" ,
14468                stringify ! ( xstate_bv ) ));
14469    assert_eq! (unsafe {
14470                & ( * ( 0 as * const _xsave_hdr ) ) . __glibc_reserved1 as *
14471                const _ as usize } , 8usize , concat ! (
14472                "Alignment of field: " , stringify ! ( _xsave_hdr ) , "::" ,
14473                stringify ! ( __glibc_reserved1 ) ));
14474    assert_eq! (unsafe {
14475                & ( * ( 0 as * const _xsave_hdr ) ) . __glibc_reserved2 as *
14476                const _ as usize } , 24usize , concat ! (
14477                "Alignment of field: " , stringify ! ( _xsave_hdr ) , "::" ,
14478                stringify ! ( __glibc_reserved2 ) ));
14479}
14480impl Clone for _xsave_hdr {
14481    fn clone(&self) -> Self { *self }
14482}
14483#[repr(C)]
14484#[derive(Copy)]
14485pub struct _ymmh_state {
14486    pub ymmh_space: [__uint32_t; 64usize],
14487}
14488#[test]
14489fn bindgen_test_layout__ymmh_state() {
14490    assert_eq!(::std::mem::size_of::<_ymmh_state>() , 256usize , concat ! (
14491               "Size of: " , stringify ! ( _ymmh_state ) ));
14492    assert_eq! (::std::mem::align_of::<_ymmh_state>() , 4usize , concat ! (
14493                "Alignment of " , stringify ! ( _ymmh_state ) ));
14494    assert_eq! (unsafe {
14495                & ( * ( 0 as * const _ymmh_state ) ) . ymmh_space as * const _
14496                as usize } , 0usize , concat ! (
14497                "Alignment of field: " , stringify ! ( _ymmh_state ) , "::" ,
14498                stringify ! ( ymmh_space ) ));
14499}
14500impl Clone for _ymmh_state {
14501    fn clone(&self) -> Self { *self }
14502}
14503#[repr(C)]
14504#[derive(Copy)]
14505pub struct _xstate {
14506    pub fpstate: _fpstate,
14507    pub xstate_hdr: _xsave_hdr,
14508    pub ymmh: _ymmh_state,
14509}
14510#[test]
14511fn bindgen_test_layout__xstate() {
14512    assert_eq!(::std::mem::size_of::<_xstate>() , 832usize , concat ! (
14513               "Size of: " , stringify ! ( _xstate ) ));
14514    assert_eq! (::std::mem::align_of::<_xstate>() , 8usize , concat ! (
14515                "Alignment of " , stringify ! ( _xstate ) ));
14516    assert_eq! (unsafe {
14517                & ( * ( 0 as * const _xstate ) ) . fpstate as * const _ as
14518                usize } , 0usize , concat ! (
14519                "Alignment of field: " , stringify ! ( _xstate ) , "::" ,
14520                stringify ! ( fpstate ) ));
14521    assert_eq! (unsafe {
14522                & ( * ( 0 as * const _xstate ) ) . xstate_hdr as * const _ as
14523                usize } , 512usize , concat ! (
14524                "Alignment of field: " , stringify ! ( _xstate ) , "::" ,
14525                stringify ! ( xstate_hdr ) ));
14526    assert_eq! (unsafe {
14527                & ( * ( 0 as * const _xstate ) ) . ymmh as * const _ as usize
14528                } , 576usize , concat ! (
14529                "Alignment of field: " , stringify ! ( _xstate ) , "::" ,
14530                stringify ! ( ymmh ) ));
14531}
14532impl Clone for _xstate {
14533    fn clone(&self) -> Self { *self }
14534}
14535extern "C" {
14536    pub fn sigreturn(__scp: *mut sigcontext) -> ::std::os::raw::c_int;
14537}
14538#[repr(C)]
14539#[derive(Debug, Copy)]
14540pub struct stack_t {
14541    pub ss_sp: *mut ::std::os::raw::c_void,
14542    pub ss_flags: ::std::os::raw::c_int,
14543    pub ss_size: usize,
14544}
14545#[test]
14546fn bindgen_test_layout_stack_t() {
14547    assert_eq!(::std::mem::size_of::<stack_t>() , 24usize , concat ! (
14548               "Size of: " , stringify ! ( stack_t ) ));
14549    assert_eq! (::std::mem::align_of::<stack_t>() , 8usize , concat ! (
14550                "Alignment of " , stringify ! ( stack_t ) ));
14551    assert_eq! (unsafe {
14552                & ( * ( 0 as * const stack_t ) ) . ss_sp as * const _ as usize
14553                } , 0usize , concat ! (
14554                "Alignment of field: " , stringify ! ( stack_t ) , "::" ,
14555                stringify ! ( ss_sp ) ));
14556    assert_eq! (unsafe {
14557                & ( * ( 0 as * const stack_t ) ) . ss_flags as * const _ as
14558                usize } , 8usize , concat ! (
14559                "Alignment of field: " , stringify ! ( stack_t ) , "::" ,
14560                stringify ! ( ss_flags ) ));
14561    assert_eq! (unsafe {
14562                & ( * ( 0 as * const stack_t ) ) . ss_size as * const _ as
14563                usize } , 16usize , concat ! (
14564                "Alignment of field: " , stringify ! ( stack_t ) , "::" ,
14565                stringify ! ( ss_size ) ));
14566}
14567impl Clone for stack_t {
14568    fn clone(&self) -> Self { *self }
14569}
14570pub type greg_t = ::std::os::raw::c_longlong;
14571pub type gregset_t = [greg_t; 23usize];
14572#[repr(C)]
14573#[derive(Debug, Copy)]
14574pub struct _libc_fpxreg {
14575    pub significand: [::std::os::raw::c_ushort; 4usize],
14576    pub exponent: ::std::os::raw::c_ushort,
14577    pub __glibc_reserved1: [::std::os::raw::c_ushort; 3usize],
14578}
14579#[test]
14580fn bindgen_test_layout__libc_fpxreg() {
14581    assert_eq!(::std::mem::size_of::<_libc_fpxreg>() , 16usize , concat ! (
14582               "Size of: " , stringify ! ( _libc_fpxreg ) ));
14583    assert_eq! (::std::mem::align_of::<_libc_fpxreg>() , 2usize , concat ! (
14584                "Alignment of " , stringify ! ( _libc_fpxreg ) ));
14585    assert_eq! (unsafe {
14586                & ( * ( 0 as * const _libc_fpxreg ) ) . significand as * const
14587                _ as usize } , 0usize , concat ! (
14588                "Alignment of field: " , stringify ! ( _libc_fpxreg ) , "::" ,
14589                stringify ! ( significand ) ));
14590    assert_eq! (unsafe {
14591                & ( * ( 0 as * const _libc_fpxreg ) ) . exponent as * const _
14592                as usize } , 8usize , concat ! (
14593                "Alignment of field: " , stringify ! ( _libc_fpxreg ) , "::" ,
14594                stringify ! ( exponent ) ));
14595    assert_eq! (unsafe {
14596                & ( * ( 0 as * const _libc_fpxreg ) ) . __glibc_reserved1 as *
14597                const _ as usize } , 10usize , concat ! (
14598                "Alignment of field: " , stringify ! ( _libc_fpxreg ) , "::" ,
14599                stringify ! ( __glibc_reserved1 ) ));
14600}
14601impl Clone for _libc_fpxreg {
14602    fn clone(&self) -> Self { *self }
14603}
14604#[repr(C)]
14605#[derive(Debug, Copy)]
14606pub struct _libc_xmmreg {
14607    pub element: [__uint32_t; 4usize],
14608}
14609#[test]
14610fn bindgen_test_layout__libc_xmmreg() {
14611    assert_eq!(::std::mem::size_of::<_libc_xmmreg>() , 16usize , concat ! (
14612               "Size of: " , stringify ! ( _libc_xmmreg ) ));
14613    assert_eq! (::std::mem::align_of::<_libc_xmmreg>() , 4usize , concat ! (
14614                "Alignment of " , stringify ! ( _libc_xmmreg ) ));
14615    assert_eq! (unsafe {
14616                & ( * ( 0 as * const _libc_xmmreg ) ) . element as * const _
14617                as usize } , 0usize , concat ! (
14618                "Alignment of field: " , stringify ! ( _libc_xmmreg ) , "::" ,
14619                stringify ! ( element ) ));
14620}
14621impl Clone for _libc_xmmreg {
14622    fn clone(&self) -> Self { *self }
14623}
14624#[repr(C)]
14625#[derive(Debug, Copy)]
14626pub struct _libc_fpstate {
14627    pub cwd: __uint16_t,
14628    pub swd: __uint16_t,
14629    pub ftw: __uint16_t,
14630    pub fop: __uint16_t,
14631    pub rip: __uint64_t,
14632    pub rdp: __uint64_t,
14633    pub mxcsr: __uint32_t,
14634    pub mxcr_mask: __uint32_t,
14635    pub _st: [_libc_fpxreg; 8usize],
14636    pub _xmm: [_libc_xmmreg; 16usize],
14637    pub __glibc_reserved1: [__uint32_t; 24usize],
14638}
14639#[test]
14640fn bindgen_test_layout__libc_fpstate() {
14641    assert_eq!(::std::mem::size_of::<_libc_fpstate>() , 512usize , concat ! (
14642               "Size of: " , stringify ! ( _libc_fpstate ) ));
14643    assert_eq! (::std::mem::align_of::<_libc_fpstate>() , 8usize , concat ! (
14644                "Alignment of " , stringify ! ( _libc_fpstate ) ));
14645    assert_eq! (unsafe {
14646                & ( * ( 0 as * const _libc_fpstate ) ) . cwd as * const _ as
14647                usize } , 0usize , concat ! (
14648                "Alignment of field: " , stringify ! ( _libc_fpstate ) , "::"
14649                , stringify ! ( cwd ) ));
14650    assert_eq! (unsafe {
14651                & ( * ( 0 as * const _libc_fpstate ) ) . swd as * const _ as
14652                usize } , 2usize , concat ! (
14653                "Alignment of field: " , stringify ! ( _libc_fpstate ) , "::"
14654                , stringify ! ( swd ) ));
14655    assert_eq! (unsafe {
14656                & ( * ( 0 as * const _libc_fpstate ) ) . ftw as * const _ as
14657                usize } , 4usize , concat ! (
14658                "Alignment of field: " , stringify ! ( _libc_fpstate ) , "::"
14659                , stringify ! ( ftw ) ));
14660    assert_eq! (unsafe {
14661                & ( * ( 0 as * const _libc_fpstate ) ) . fop as * const _ as
14662                usize } , 6usize , concat ! (
14663                "Alignment of field: " , stringify ! ( _libc_fpstate ) , "::"
14664                , stringify ! ( fop ) ));
14665    assert_eq! (unsafe {
14666                & ( * ( 0 as * const _libc_fpstate ) ) . rip as * const _ as
14667                usize } , 8usize , concat ! (
14668                "Alignment of field: " , stringify ! ( _libc_fpstate ) , "::"
14669                , stringify ! ( rip ) ));
14670    assert_eq! (unsafe {
14671                & ( * ( 0 as * const _libc_fpstate ) ) . rdp as * const _ as
14672                usize } , 16usize , concat ! (
14673                "Alignment of field: " , stringify ! ( _libc_fpstate ) , "::"
14674                , stringify ! ( rdp ) ));
14675    assert_eq! (unsafe {
14676                & ( * ( 0 as * const _libc_fpstate ) ) . mxcsr as * const _ as
14677                usize } , 24usize , concat ! (
14678                "Alignment of field: " , stringify ! ( _libc_fpstate ) , "::"
14679                , stringify ! ( mxcsr ) ));
14680    assert_eq! (unsafe {
14681                & ( * ( 0 as * const _libc_fpstate ) ) . mxcr_mask as * const
14682                _ as usize } , 28usize , concat ! (
14683                "Alignment of field: " , stringify ! ( _libc_fpstate ) , "::"
14684                , stringify ! ( mxcr_mask ) ));
14685    assert_eq! (unsafe {
14686                & ( * ( 0 as * const _libc_fpstate ) ) . _st as * const _ as
14687                usize } , 32usize , concat ! (
14688                "Alignment of field: " , stringify ! ( _libc_fpstate ) , "::"
14689                , stringify ! ( _st ) ));
14690    assert_eq! (unsafe {
14691                & ( * ( 0 as * const _libc_fpstate ) ) . _xmm as * const _ as
14692                usize } , 160usize , concat ! (
14693                "Alignment of field: " , stringify ! ( _libc_fpstate ) , "::"
14694                , stringify ! ( _xmm ) ));
14695    assert_eq! (unsafe {
14696                & ( * ( 0 as * const _libc_fpstate ) ) . __glibc_reserved1 as
14697                * const _ as usize } , 416usize , concat ! (
14698                "Alignment of field: " , stringify ! ( _libc_fpstate ) , "::"
14699                , stringify ! ( __glibc_reserved1 ) ));
14700}
14701impl Clone for _libc_fpstate {
14702    fn clone(&self) -> Self { *self }
14703}
14704pub type fpregset_t = *mut _libc_fpstate;
14705#[repr(C)]
14706#[derive(Debug, Copy)]
14707pub struct mcontext_t {
14708    pub gregs: gregset_t,
14709    pub fpregs: fpregset_t,
14710    pub __reserved1: [::std::os::raw::c_ulonglong; 8usize],
14711}
14712#[test]
14713fn bindgen_test_layout_mcontext_t() {
14714    assert_eq!(::std::mem::size_of::<mcontext_t>() , 256usize , concat ! (
14715               "Size of: " , stringify ! ( mcontext_t ) ));
14716    assert_eq! (::std::mem::align_of::<mcontext_t>() , 8usize , concat ! (
14717                "Alignment of " , stringify ! ( mcontext_t ) ));
14718    assert_eq! (unsafe {
14719                & ( * ( 0 as * const mcontext_t ) ) . gregs as * const _ as
14720                usize } , 0usize , concat ! (
14721                "Alignment of field: " , stringify ! ( mcontext_t ) , "::" ,
14722                stringify ! ( gregs ) ));
14723    assert_eq! (unsafe {
14724                & ( * ( 0 as * const mcontext_t ) ) . fpregs as * const _ as
14725                usize } , 184usize , concat ! (
14726                "Alignment of field: " , stringify ! ( mcontext_t ) , "::" ,
14727                stringify ! ( fpregs ) ));
14728    assert_eq! (unsafe {
14729                & ( * ( 0 as * const mcontext_t ) ) . __reserved1 as * const _
14730                as usize } , 192usize , concat ! (
14731                "Alignment of field: " , stringify ! ( mcontext_t ) , "::" ,
14732                stringify ! ( __reserved1 ) ));
14733}
14734impl Clone for mcontext_t {
14735    fn clone(&self) -> Self { *self }
14736}
14737#[repr(C)]
14738#[derive(Debug, Copy)]
14739pub struct ucontext_t {
14740    pub uc_flags: ::std::os::raw::c_ulong,
14741    pub uc_link: *mut ucontext_t,
14742    pub uc_stack: stack_t,
14743    pub uc_mcontext: mcontext_t,
14744    pub uc_sigmask: sigset_t,
14745    pub __fpregs_mem: _libc_fpstate,
14746}
14747#[test]
14748fn bindgen_test_layout_ucontext_t() {
14749    assert_eq!(::std::mem::size_of::<ucontext_t>() , 936usize , concat ! (
14750               "Size of: " , stringify ! ( ucontext_t ) ));
14751    assert_eq! (::std::mem::align_of::<ucontext_t>() , 8usize , concat ! (
14752                "Alignment of " , stringify ! ( ucontext_t ) ));
14753    assert_eq! (unsafe {
14754                & ( * ( 0 as * const ucontext_t ) ) . uc_flags as * const _ as
14755                usize } , 0usize , concat ! (
14756                "Alignment of field: " , stringify ! ( ucontext_t ) , "::" ,
14757                stringify ! ( uc_flags ) ));
14758    assert_eq! (unsafe {
14759                & ( * ( 0 as * const ucontext_t ) ) . uc_link as * const _ as
14760                usize } , 8usize , concat ! (
14761                "Alignment of field: " , stringify ! ( ucontext_t ) , "::" ,
14762                stringify ! ( uc_link ) ));
14763    assert_eq! (unsafe {
14764                & ( * ( 0 as * const ucontext_t ) ) . uc_stack as * const _ as
14765                usize } , 16usize , concat ! (
14766                "Alignment of field: " , stringify ! ( ucontext_t ) , "::" ,
14767                stringify ! ( uc_stack ) ));
14768    assert_eq! (unsafe {
14769                & ( * ( 0 as * const ucontext_t ) ) . uc_mcontext as * const _
14770                as usize } , 40usize , concat ! (
14771                "Alignment of field: " , stringify ! ( ucontext_t ) , "::" ,
14772                stringify ! ( uc_mcontext ) ));
14773    assert_eq! (unsafe {
14774                & ( * ( 0 as * const ucontext_t ) ) . uc_sigmask as * const _
14775                as usize } , 296usize , concat ! (
14776                "Alignment of field: " , stringify ! ( ucontext_t ) , "::" ,
14777                stringify ! ( uc_sigmask ) ));
14778    assert_eq! (unsafe {
14779                & ( * ( 0 as * const ucontext_t ) ) . __fpregs_mem as * const
14780                _ as usize } , 424usize , concat ! (
14781                "Alignment of field: " , stringify ! ( ucontext_t ) , "::" ,
14782                stringify ! ( __fpregs_mem ) ));
14783}
14784impl Clone for ucontext_t {
14785    fn clone(&self) -> Self { *self }
14786}
14787extern "C" {
14788    pub fn siginterrupt(__sig: ::std::os::raw::c_int,
14789                        __interrupt: ::std::os::raw::c_int)
14790     -> ::std::os::raw::c_int;
14791}
14792pub const SS_ONSTACK: _bindgen_ty_12 = _bindgen_ty_12::SS_ONSTACK;
14793pub const SS_DISABLE: _bindgen_ty_12 = _bindgen_ty_12::SS_DISABLE;
14794#[repr(u32)]
14795#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
14796pub enum _bindgen_ty_12 { SS_ONSTACK = 1, SS_DISABLE = 2, }
14797extern "C" {
14798    pub fn sigaltstack(__ss: *const stack_t, __oss: *mut stack_t)
14799     -> ::std::os::raw::c_int;
14800}
14801#[repr(C)]
14802#[derive(Debug, Copy)]
14803pub struct sigstack {
14804    pub ss_sp: *mut ::std::os::raw::c_void,
14805    pub ss_onstack: ::std::os::raw::c_int,
14806}
14807#[test]
14808fn bindgen_test_layout_sigstack() {
14809    assert_eq!(::std::mem::size_of::<sigstack>() , 16usize , concat ! (
14810               "Size of: " , stringify ! ( sigstack ) ));
14811    assert_eq! (::std::mem::align_of::<sigstack>() , 8usize , concat ! (
14812                "Alignment of " , stringify ! ( sigstack ) ));
14813    assert_eq! (unsafe {
14814                & ( * ( 0 as * const sigstack ) ) . ss_sp as * const _ as
14815                usize } , 0usize , concat ! (
14816                "Alignment of field: " , stringify ! ( sigstack ) , "::" ,
14817                stringify ! ( ss_sp ) ));
14818    assert_eq! (unsafe {
14819                & ( * ( 0 as * const sigstack ) ) . ss_onstack as * const _ as
14820                usize } , 8usize , concat ! (
14821                "Alignment of field: " , stringify ! ( sigstack ) , "::" ,
14822                stringify ! ( ss_onstack ) ));
14823}
14824impl Clone for sigstack {
14825    fn clone(&self) -> Self { *self }
14826}
14827extern "C" {
14828    pub fn sigstack(__ss: *mut sigstack, __oss: *mut sigstack)
14829     -> ::std::os::raw::c_int;
14830}
14831extern "C" {
14832    pub fn pthread_sigmask(__how: ::std::os::raw::c_int,
14833                           __newmask: *const __sigset_t,
14834                           __oldmask: *mut __sigset_t)
14835     -> ::std::os::raw::c_int;
14836}
14837extern "C" {
14838    pub fn pthread_kill(__threadid: pthread_t, __signo: ::std::os::raw::c_int)
14839     -> ::std::os::raw::c_int;
14840}
14841extern "C" {
14842    pub fn __libc_current_sigrtmin() -> ::std::os::raw::c_int;
14843}
14844extern "C" {
14845    pub fn __libc_current_sigrtmax() -> ::std::os::raw::c_int;
14846}
14847extern "C" {
14848    pub fn crypt_argchk(v: *const ::std::os::raw::c_char,
14849                        s: *const ::std::os::raw::c_char,
14850                        d: ::std::os::raw::c_int);
14851}
14852#[repr(u32)]
14853#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
14854pub enum ltc_pkcs_1_v1_5_blocks { LTC_PKCS_1_EMSA = 1, LTC_PKCS_1_EME = 2, }
14855#[repr(u32)]
14856#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
14857pub enum ltc_pkcs_1_paddings {
14858    LTC_PKCS_1_V1_5 = 1,
14859    LTC_PKCS_1_OAEP = 2,
14860    LTC_PKCS_1_PSS = 3,
14861    LTC_PKCS_1_V1_5_NA1 = 4,
14862}
14863extern "C" {
14864    pub fn pkcs_1_mgf1(hash_idx: ::std::os::raw::c_int,
14865                       seed: *const ::std::os::raw::c_uchar,
14866                       seedlen: ::std::os::raw::c_ulong,
14867                       mask: *mut ::std::os::raw::c_uchar,
14868                       masklen: ::std::os::raw::c_ulong)
14869     -> ::std::os::raw::c_int;
14870}
14871extern "C" {
14872    pub fn pkcs_1_i2osp(n: *mut ::std::os::raw::c_void,
14873                        modulus_len: ::std::os::raw::c_ulong,
14874                        out: *mut ::std::os::raw::c_uchar)
14875     -> ::std::os::raw::c_int;
14876}
14877extern "C" {
14878    pub fn pkcs_1_os2ip(n: *mut ::std::os::raw::c_void,
14879                        in_: *mut ::std::os::raw::c_uchar,
14880                        inlen: ::std::os::raw::c_ulong)
14881     -> ::std::os::raw::c_int;
14882}
14883extern "C" {
14884    pub fn pkcs_1_v1_5_encode(msg: *const ::std::os::raw::c_uchar,
14885                              msglen: ::std::os::raw::c_ulong,
14886                              block_type: ::std::os::raw::c_int,
14887                              modulus_bitlen: ::std::os::raw::c_ulong,
14888                              prng: *mut prng_state,
14889                              prng_idx: ::std::os::raw::c_int,
14890                              out: *mut ::std::os::raw::c_uchar,
14891                              outlen: *mut ::std::os::raw::c_ulong)
14892     -> ::std::os::raw::c_int;
14893}
14894extern "C" {
14895    pub fn pkcs_1_v1_5_decode(msg: *const ::std::os::raw::c_uchar,
14896                              msglen: ::std::os::raw::c_ulong,
14897                              block_type: ::std::os::raw::c_int,
14898                              modulus_bitlen: ::std::os::raw::c_ulong,
14899                              out: *mut ::std::os::raw::c_uchar,
14900                              outlen: *mut ::std::os::raw::c_ulong,
14901                              is_valid: *mut ::std::os::raw::c_int)
14902     -> ::std::os::raw::c_int;
14903}
14904extern "C" {
14905    pub fn pkcs_1_oaep_encode(msg: *const ::std::os::raw::c_uchar,
14906                              msglen: ::std::os::raw::c_ulong,
14907                              lparam: *const ::std::os::raw::c_uchar,
14908                              lparamlen: ::std::os::raw::c_ulong,
14909                              modulus_bitlen: ::std::os::raw::c_ulong,
14910                              prng: *mut prng_state,
14911                              prng_idx: ::std::os::raw::c_int,
14912                              hash_idx: ::std::os::raw::c_int,
14913                              out: *mut ::std::os::raw::c_uchar,
14914                              outlen: *mut ::std::os::raw::c_ulong)
14915     -> ::std::os::raw::c_int;
14916}
14917extern "C" {
14918    pub fn pkcs_1_oaep_decode(msg: *const ::std::os::raw::c_uchar,
14919                              msglen: ::std::os::raw::c_ulong,
14920                              lparam: *const ::std::os::raw::c_uchar,
14921                              lparamlen: ::std::os::raw::c_ulong,
14922                              modulus_bitlen: ::std::os::raw::c_ulong,
14923                              hash_idx: ::std::os::raw::c_int,
14924                              out: *mut ::std::os::raw::c_uchar,
14925                              outlen: *mut ::std::os::raw::c_ulong,
14926                              res: *mut ::std::os::raw::c_int)
14927     -> ::std::os::raw::c_int;
14928}
14929extern "C" {
14930    pub fn pkcs_1_pss_encode(msghash: *const ::std::os::raw::c_uchar,
14931                             msghashlen: ::std::os::raw::c_ulong,
14932                             saltlen: ::std::os::raw::c_ulong,
14933                             prng: *mut prng_state,
14934                             prng_idx: ::std::os::raw::c_int,
14935                             hash_idx: ::std::os::raw::c_int,
14936                             modulus_bitlen: ::std::os::raw::c_ulong,
14937                             out: *mut ::std::os::raw::c_uchar,
14938                             outlen: *mut ::std::os::raw::c_ulong)
14939     -> ::std::os::raw::c_int;
14940}
14941extern "C" {
14942    pub fn pkcs_1_pss_decode(msghash: *const ::std::os::raw::c_uchar,
14943                             msghashlen: ::std::os::raw::c_ulong,
14944                             sig: *const ::std::os::raw::c_uchar,
14945                             siglen: ::std::os::raw::c_ulong,
14946                             saltlen: ::std::os::raw::c_ulong,
14947                             hash_idx: ::std::os::raw::c_int,
14948                             modulus_bitlen: ::std::os::raw::c_ulong,
14949                             res: *mut ::std::os::raw::c_int)
14950     -> ::std::os::raw::c_int;
14951}
14952extern "C" {
14953    pub fn pkcs_5_alg1(password: *const ::std::os::raw::c_uchar,
14954                       password_len: ::std::os::raw::c_ulong,
14955                       salt: *const ::std::os::raw::c_uchar,
14956                       iteration_count: ::std::os::raw::c_int,
14957                       hash_idx: ::std::os::raw::c_int,
14958                       out: *mut ::std::os::raw::c_uchar,
14959                       outlen: *mut ::std::os::raw::c_ulong)
14960     -> ::std::os::raw::c_int;
14961}
14962extern "C" {
14963    pub fn pkcs_5_alg1_openssl(password: *const ::std::os::raw::c_uchar,
14964                               password_len: ::std::os::raw::c_ulong,
14965                               salt: *const ::std::os::raw::c_uchar,
14966                               iteration_count: ::std::os::raw::c_int,
14967                               hash_idx: ::std::os::raw::c_int,
14968                               out: *mut ::std::os::raw::c_uchar,
14969                               outlen: *mut ::std::os::raw::c_ulong)
14970     -> ::std::os::raw::c_int;
14971}
14972extern "C" {
14973    pub fn pkcs_5_alg2(password: *const ::std::os::raw::c_uchar,
14974                       password_len: ::std::os::raw::c_ulong,
14975                       salt: *const ::std::os::raw::c_uchar,
14976                       salt_len: ::std::os::raw::c_ulong,
14977                       iteration_count: ::std::os::raw::c_int,
14978                       hash_idx: ::std::os::raw::c_int,
14979                       out: *mut ::std::os::raw::c_uchar,
14980                       outlen: *mut ::std::os::raw::c_ulong)
14981     -> ::std::os::raw::c_int;
14982}
14983extern "C" {
14984    pub fn pkcs_5_test() -> ::std::os::raw::c_int;
14985}
14986pub type __builtin_va_list = [__va_list_tag; 1usize];
14987#[repr(C)]
14988#[derive(Debug, Copy)]
14989pub struct __va_list_tag {
14990    pub gp_offset: ::std::os::raw::c_uint,
14991    pub fp_offset: ::std::os::raw::c_uint,
14992    pub overflow_arg_area: *mut ::std::os::raw::c_void,
14993    pub reg_save_area: *mut ::std::os::raw::c_void,
14994}
14995#[test]
14996fn bindgen_test_layout___va_list_tag() {
14997    assert_eq!(::std::mem::size_of::<__va_list_tag>() , 24usize , concat ! (
14998               "Size of: " , stringify ! ( __va_list_tag ) ));
14999    assert_eq! (::std::mem::align_of::<__va_list_tag>() , 8usize , concat ! (
15000                "Alignment of " , stringify ! ( __va_list_tag ) ));
15001    assert_eq! (unsafe {
15002                & ( * ( 0 as * const __va_list_tag ) ) . gp_offset as * const
15003                _ as usize } , 0usize , concat ! (
15004                "Alignment of field: " , stringify ! ( __va_list_tag ) , "::"
15005                , stringify ! ( gp_offset ) ));
15006    assert_eq! (unsafe {
15007                & ( * ( 0 as * const __va_list_tag ) ) . fp_offset as * const
15008                _ as usize } , 4usize , concat ! (
15009                "Alignment of field: " , stringify ! ( __va_list_tag ) , "::"
15010                , stringify ! ( fp_offset ) ));
15011    assert_eq! (unsafe {
15012                & ( * ( 0 as * const __va_list_tag ) ) . overflow_arg_area as
15013                * const _ as usize } , 8usize , concat ! (
15014                "Alignment of field: " , stringify ! ( __va_list_tag ) , "::"
15015                , stringify ! ( overflow_arg_area ) ));
15016    assert_eq! (unsafe {
15017                & ( * ( 0 as * const __va_list_tag ) ) . reg_save_area as *
15018                const _ as usize } , 16usize , concat ! (
15019                "Alignment of field: " , stringify ! ( __va_list_tag ) , "::"
15020                , stringify ! ( reg_save_area ) ));
15021}
15022impl Clone for __va_list_tag {
15023    fn clone(&self) -> Self { *self }
15024}
15025#[repr(C)]
15026#[derive(Debug, Copy)]
15027pub struct __locale_data {
15028    pub _address: u8,
15029}
15030impl Clone for __locale_data {
15031    fn clone(&self) -> Self { *self }
15032}