1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
/* automatically generated by rust-bindgen */

pub const _STDIO_H : u32 = 1 ; pub const _FEATURES_H : u32 = 1 ; pub const _DEFAULT_SOURCE : u32 = 1 ; pub const __USE_ISOC11 : u32 = 1 ; pub const __USE_ISOC99 : u32 = 1 ; pub const __USE_ISOC95 : u32 = 1 ; pub const __USE_POSIX_IMPLICITLY : u32 = 1 ; pub const _POSIX_SOURCE : u32 = 1 ; pub const _POSIX_C_SOURCE : u32 = 200809 ; pub const __USE_POSIX : u32 = 1 ; pub const __USE_POSIX2 : u32 = 1 ; pub const __USE_POSIX199309 : u32 = 1 ; pub const __USE_POSIX199506 : u32 = 1 ; pub const __USE_XOPEN2K : u32 = 1 ; pub const __USE_XOPEN2K8 : u32 = 1 ; pub const _ATFILE_SOURCE : u32 = 1 ; pub const __USE_MISC : u32 = 1 ; pub const __USE_ATFILE : u32 = 1 ; pub const __USE_FORTIFY_LEVEL : u32 = 0 ; pub const _STDC_PREDEF_H : u32 = 1 ; pub const __STDC_IEC_559__ : u32 = 1 ; pub const __STDC_IEC_559_COMPLEX__ : u32 = 1 ; pub const __STDC_ISO_10646__ : u32 = 201605 ; pub const __STDC_NO_THREADS__ : u32 = 1 ; pub const __GNU_LIBRARY__ : u32 = 6 ; pub const __GLIBC__ : u32 = 2 ; pub const __GLIBC_MINOR__ : u32 = 24 ; pub const _SYS_CDEFS_H : u32 = 1 ; pub const __WORDSIZE : u32 = 64 ; pub const __WORDSIZE_TIME64_COMPAT32 : u32 = 1 ; pub const __SYSCALL_WORDSIZE : u32 = 64 ; pub const _BITS_TYPES_H : u32 = 1 ; pub const _BITS_TYPESIZES_H : u32 = 1 ; pub const __OFF_T_MATCHES_OFF64_T : u32 = 1 ; pub const __INO_T_MATCHES_INO64_T : u32 = 1 ; pub const __FD_SETSIZE : u32 = 1024 ; pub const __FILE_defined : u32 = 1 ; pub const ____FILE_defined : u32 = 1 ; pub const _G_config_h : u32 = 1 ; pub const ____mbstate_t_defined : u32 = 1 ; pub const _G_HAVE_MMAP : u32 = 1 ; pub const _G_HAVE_MREMAP : u32 = 1 ; pub const _G_IO_IO_FILE_VERSION : u32 = 131073 ; pub const _G_BUFSIZ : u32 = 8192 ; pub const _IO_BUFSIZ : u32 = 8192 ; pub const __GNUC_VA_LIST : u32 = 1 ; pub const _IO_UNIFIED_JUMPTABLES : u32 = 1 ; pub const EOF : i32 = -1 ; pub const _IOS_INPUT : u32 = 1 ; pub const _IOS_OUTPUT : u32 = 2 ; pub const _IOS_ATEND : u32 = 4 ; pub const _IOS_APPEND : u32 = 8 ; pub const _IOS_TRUNC : u32 = 16 ; pub const _IOS_NOCREATE : u32 = 32 ; pub const _IOS_NOREPLACE : u32 = 64 ; pub const _IOS_BIN : u32 = 128 ; pub const _IO_MAGIC : u32 = 4222418944 ; pub const _OLD_STDIO_MAGIC : u32 = 4206624768 ; pub const _IO_MAGIC_MASK : u32 = 4294901760 ; pub const _IO_USER_BUF : u32 = 1 ; pub const _IO_UNBUFFERED : u32 = 2 ; pub const _IO_NO_READS : u32 = 4 ; pub const _IO_NO_WRITES : u32 = 8 ; pub const _IO_EOF_SEEN : u32 = 16 ; pub const _IO_ERR_SEEN : u32 = 32 ; pub const _IO_DELETE_DONT_CLOSE : u32 = 64 ; pub const _IO_LINKED : u32 = 128 ; pub const _IO_IN_BACKUP : u32 = 256 ; pub const _IO_LINE_BUF : u32 = 512 ; pub const _IO_TIED_PUT_GET : u32 = 1024 ; pub const _IO_CURRENTLY_PUTTING : u32 = 2048 ; pub const _IO_IS_APPENDING : u32 = 4096 ; pub const _IO_IS_FILEBUF : u32 = 8192 ; pub const _IO_BAD_SEEN : u32 = 16384 ; pub const _IO_USER_LOCK : u32 = 32768 ; pub const _IO_FLAGS2_MMAP : u32 = 1 ; pub const _IO_FLAGS2_NOTCANCEL : u32 = 2 ; pub const _IO_FLAGS2_USER_WBUF : u32 = 8 ; pub const _IO_SKIPWS : u32 = 1 ; pub const _IO_LEFT : u32 = 2 ; pub const _IO_RIGHT : u32 = 4 ; pub const _IO_INTERNAL : u32 = 8 ; pub const _IO_DEC : u32 = 16 ; pub const _IO_OCT : u32 = 32 ; pub const _IO_HEX : u32 = 64 ; pub const _IO_SHOWBASE : u32 = 128 ; pub const _IO_SHOWPOINT : u32 = 256 ; pub const _IO_UPPERCASE : u32 = 512 ; pub const _IO_SHOWPOS : u32 = 1024 ; pub const _IO_SCIENTIFIC : u32 = 2048 ; pub const _IO_FIXED : u32 = 4096 ; pub const _IO_UNITBUF : u32 = 8192 ; pub const _IO_STDIO : u32 = 16384 ; pub const _IO_DONT_CLOSE : u32 = 32768 ; pub const _IO_BOOLALPHA : u32 = 65536 ; pub const _IOFBF : u32 = 0 ; pub const _IOLBF : u32 = 1 ; pub const _IONBF : u32 = 2 ; pub const BUFSIZ : u32 = 8192 ; pub const SEEK_SET : u32 = 0 ; pub const SEEK_CUR : u32 = 1 ; pub const SEEK_END : u32 = 2 ; pub const P_tmpdir : & 'static [ u8 ; 5usize ] = b"/tmp\0" ; pub const L_tmpnam : u32 = 20 ; pub const TMP_MAX : u32 = 238328 ; pub const FILENAME_MAX : u32 = 4096 ; pub const L_ctermid : u32 = 9 ; pub const FOPEN_MAX : u32 = 16 ; pub const _STDINT_H : u32 = 1 ; pub const _BITS_WCHAR_H : u32 = 1 ; pub const INT8_MIN : i32 = -128 ; pub const INT16_MIN : i32 = -32768 ; pub const INT32_MIN : i32 = -2147483648 ; pub const INT8_MAX : u32 = 127 ; pub const INT16_MAX : u32 = 32767 ; pub const INT32_MAX : u32 = 2147483647 ; pub const UINT8_MAX : u32 = 255 ; pub const UINT16_MAX : u32 = 65535 ; pub const UINT32_MAX : u32 = 4294967295 ; pub const INT_LEAST8_MIN : i32 = -128 ; pub const INT_LEAST16_MIN : i32 = -32768 ; pub const INT_LEAST32_MIN : i32 = -2147483648 ; pub const INT_LEAST8_MAX : u32 = 127 ; pub const INT_LEAST16_MAX : u32 = 32767 ; pub const INT_LEAST32_MAX : u32 = 2147483647 ; pub const UINT_LEAST8_MAX : u32 = 255 ; pub const UINT_LEAST16_MAX : u32 = 65535 ; pub const UINT_LEAST32_MAX : u32 = 4294967295 ; pub const INT_FAST8_MIN : i32 = -128 ; pub const INT_FAST16_MIN : i64 = -9223372036854775808 ; pub const INT_FAST32_MIN : i64 = -9223372036854775808 ; pub const INT_FAST8_MAX : u32 = 127 ; pub const INT_FAST16_MAX : u64 = 9223372036854775807 ; pub const INT_FAST32_MAX : u64 = 9223372036854775807 ; pub const UINT_FAST8_MAX : u32 = 255 ; pub const UINT_FAST16_MAX : i32 = -1 ; pub const UINT_FAST32_MAX : i32 = -1 ; pub const INTPTR_MIN : i64 = -9223372036854775808 ; pub const INTPTR_MAX : u64 = 9223372036854775807 ; pub const UINTPTR_MAX : i32 = -1 ; pub const PTRDIFF_MIN : i64 = -9223372036854775808 ; pub const PTRDIFF_MAX : u64 = 9223372036854775807 ; pub const SIG_ATOMIC_MIN : i32 = -2147483648 ; pub const SIG_ATOMIC_MAX : u32 = 2147483647 ; pub const SIZE_MAX : i32 = -1 ; pub const WINT_MIN : u32 = 0 ; pub const WINT_MAX : u32 = 4294967295 ; pub type __u_char = :: std :: os :: raw :: c_uchar ; pub type __u_short = :: std :: os :: raw :: c_ushort ; pub type __u_int = :: std :: os :: raw :: c_uint ; pub type __u_long = :: std :: os :: raw :: c_ulong ; pub type __int8_t = :: std :: os :: raw :: c_schar ; pub type __uint8_t = :: std :: os :: raw :: c_uchar ; pub type __int16_t = :: std :: os :: raw :: c_short ; pub type __uint16_t = :: std :: os :: raw :: c_ushort ; pub type __int32_t = :: std :: os :: raw :: c_int ; pub type __uint32_t = :: std :: os :: raw :: c_uint ; pub type __int64_t = :: std :: os :: raw :: c_long ; pub type __uint64_t = :: std :: os :: raw :: c_ulong ; pub type __quad_t = :: std :: os :: raw :: c_long ; pub type __u_quad_t = :: std :: os :: raw :: c_ulong ; pub type __dev_t = :: std :: os :: raw :: c_ulong ; pub type __uid_t = :: std :: os :: raw :: c_uint ; pub type __gid_t = :: std :: os :: raw :: c_uint ; pub type __ino_t = :: std :: os :: raw :: c_ulong ; pub type __ino64_t = :: std :: os :: raw :: c_ulong ; pub type __mode_t = :: std :: os :: raw :: c_uint ; pub type __nlink_t = :: std :: os :: raw :: c_ulong ; pub type __off_t = :: std :: os :: raw :: c_long ; pub type __off64_t = :: std :: os :: raw :: c_long ; pub type __pid_t = :: std :: os :: raw :: c_int ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct __fsid_t { pub __val : [ :: std :: os :: raw :: c_int ; 2usize ] , } # [ test ] fn bindgen_test_layout___fsid_t ( ) { assert_eq ! ( :: std :: mem :: size_of :: < __fsid_t > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( __fsid_t ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < __fsid_t > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( __fsid_t ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __fsid_t > ( ) ) ) . __val as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( __fsid_t ) , "::" , stringify ! ( __val ) ) ) ; } pub type __clock_t = :: std :: os :: raw :: c_long ; pub type __rlim_t = :: std :: os :: raw :: c_ulong ; pub type __rlim64_t = :: std :: os :: raw :: c_ulong ; pub type __id_t = :: std :: os :: raw :: c_uint ; pub type __time_t = :: std :: os :: raw :: c_long ; pub type __useconds_t = :: std :: os :: raw :: c_uint ; pub type __suseconds_t = :: std :: os :: raw :: c_long ; pub type __daddr_t = :: std :: os :: raw :: c_int ; pub type __key_t = :: std :: os :: raw :: c_int ; pub type __clockid_t = :: std :: os :: raw :: c_int ; pub type __timer_t = * mut :: std :: os :: raw :: c_void ; pub type __blksize_t = :: std :: os :: raw :: c_long ; pub type __blkcnt_t = :: std :: os :: raw :: c_long ; pub type __blkcnt64_t = :: std :: os :: raw :: c_long ; pub type __fsblkcnt_t = :: std :: os :: raw :: c_ulong ; pub type __fsblkcnt64_t = :: std :: os :: raw :: c_ulong ; pub type __fsfilcnt_t = :: std :: os :: raw :: c_ulong ; pub type __fsfilcnt64_t = :: std :: os :: raw :: c_ulong ; pub type __fsword_t = :: std :: os :: raw :: c_long ; pub type __ssize_t = :: std :: os :: raw :: c_long ; pub type __syscall_slong_t = :: std :: os :: raw :: c_long ; pub type __syscall_ulong_t = :: std :: os :: raw :: c_ulong ; pub type __loff_t = __off64_t ; pub type __qaddr_t = * mut __quad_t ; pub type __caddr_t = * mut :: std :: os :: raw :: c_char ; pub type __intptr_t = :: std :: os :: raw :: c_long ; pub type __socklen_t = :: std :: os :: raw :: c_uint ; pub type FILE = _IO_FILE ; pub type __FILE = _IO_FILE ; # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct __mbstate_t { pub __count : :: std :: os :: raw :: c_int , pub __value : __mbstate_t__bindgen_ty_1 , } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub union __mbstate_t__bindgen_ty_1 { pub __wch : :: std :: os :: raw :: c_uint , pub __wchb : [ :: std :: os :: raw :: c_char ; 4usize ] , _bindgen_union_align : u32 , } # [ test ] fn bindgen_test_layout___mbstate_t__bindgen_ty_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < __mbstate_t__bindgen_ty_1 > ( ) , 4usize , concat ! ( "Size of: " , stringify ! ( __mbstate_t__bindgen_ty_1 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < __mbstate_t__bindgen_ty_1 > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( __mbstate_t__bindgen_ty_1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __mbstate_t__bindgen_ty_1 > ( ) ) ) . __wch as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( __mbstate_t__bindgen_ty_1 ) , "::" , stringify ! ( __wch ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __mbstate_t__bindgen_ty_1 > ( ) ) ) . __wchb as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( __mbstate_t__bindgen_ty_1 ) , "::" , stringify ! ( __wchb ) ) ) ; } # [ test ] fn bindgen_test_layout___mbstate_t ( ) { assert_eq ! ( :: std :: mem :: size_of :: < __mbstate_t > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( __mbstate_t ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < __mbstate_t > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( __mbstate_t ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __mbstate_t > ( ) ) ) . __count as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( __mbstate_t ) , "::" , stringify ! ( __count ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __mbstate_t > ( ) ) ) . __value as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( __mbstate_t ) , "::" , stringify ! ( __value ) ) ) ; } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct _G_fpos_t { pub __pos : __off_t , pub __state : __mbstate_t , } # [ test ] fn bindgen_test_layout__G_fpos_t ( ) { assert_eq ! ( :: std :: mem :: size_of :: < _G_fpos_t > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( _G_fpos_t ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < _G_fpos_t > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( _G_fpos_t ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _G_fpos_t > ( ) ) ) . __pos as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( _G_fpos_t ) , "::" , stringify ! ( __pos ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _G_fpos_t > ( ) ) ) . __state as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( _G_fpos_t ) , "::" , stringify ! ( __state ) ) ) ; } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct _G_fpos64_t { pub __pos : __off64_t , pub __state : __mbstate_t , } # [ test ] fn bindgen_test_layout__G_fpos64_t ( ) { assert_eq ! ( :: std :: mem :: size_of :: < _G_fpos64_t > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( _G_fpos64_t ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < _G_fpos64_t > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( _G_fpos64_t ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _G_fpos64_t > ( ) ) ) . __pos as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( _G_fpos64_t ) , "::" , stringify ! ( __pos ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _G_fpos64_t > ( ) ) ) . __state as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( _G_fpos64_t ) , "::" , stringify ! ( __state ) ) ) ; } pub type va_list = __builtin_va_list ; pub type __gnuc_va_list = __builtin_va_list ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct _IO_jump_t { _unused : [ u8 ; 0 ] , } pub type _IO_lock_t = :: std :: os :: raw :: c_void ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct _IO_marker { pub _next : * mut _IO_marker , pub _sbuf : * mut _IO_FILE , pub _pos : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout__IO_marker ( ) { assert_eq ! ( :: std :: mem :: size_of :: < _IO_marker > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( _IO_marker ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < _IO_marker > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( _IO_marker ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_marker > ( ) ) ) . _next as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( _IO_marker ) , "::" , stringify ! ( _next ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_marker > ( ) ) ) . _sbuf as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( _IO_marker ) , "::" , stringify ! ( _sbuf ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_marker > ( ) ) ) . _pos as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( _IO_marker ) , "::" , stringify ! ( _pos ) ) ) ; } pub const __codecvt_result___codecvt_ok : __codecvt_result = 0 ; pub const __codecvt_result___codecvt_partial : __codecvt_result = 1 ; pub const __codecvt_result___codecvt_error : __codecvt_result = 2 ; pub const __codecvt_result___codecvt_noconv : __codecvt_result = 3 ; pub type __codecvt_result = u32 ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct _IO_FILE { pub _flags : :: std :: os :: raw :: c_int , pub _IO_read_ptr : * mut :: std :: os :: raw :: c_char , pub _IO_read_end : * mut :: std :: os :: raw :: c_char , pub _IO_read_base : * mut :: std :: os :: raw :: c_char , pub _IO_write_base : * mut :: std :: os :: raw :: c_char , pub _IO_write_ptr : * mut :: std :: os :: raw :: c_char , pub _IO_write_end : * mut :: std :: os :: raw :: c_char , pub _IO_buf_base : * mut :: std :: os :: raw :: c_char , pub _IO_buf_end : * mut :: std :: os :: raw :: c_char , pub _IO_save_base : * mut :: std :: os :: raw :: c_char , pub _IO_backup_base : * mut :: std :: os :: raw :: c_char , pub _IO_save_end : * mut :: std :: os :: raw :: c_char , pub _markers : * mut _IO_marker , pub _chain : * mut _IO_FILE , pub _fileno : :: std :: os :: raw :: c_int , pub _flags2 : :: std :: os :: raw :: c_int , pub _old_offset : __off_t , pub _cur_column : :: std :: os :: raw :: c_ushort , pub _vtable_offset : :: std :: os :: raw :: c_schar , pub _shortbuf : [ :: std :: os :: raw :: c_char ; 1usize ] , pub _lock : * mut _IO_lock_t , pub _offset : __off64_t , pub __pad1 : * mut :: std :: os :: raw :: c_void , pub __pad2 : * mut :: std :: os :: raw :: c_void , pub __pad3 : * mut :: std :: os :: raw :: c_void , pub __pad4 : * mut :: std :: os :: raw :: c_void , pub __pad5 : usize , pub _mode : :: std :: os :: raw :: c_int , pub _unused2 : [ :: std :: os :: raw :: c_char ; 20usize ] , } # [ test ] fn bindgen_test_layout__IO_FILE ( ) { assert_eq ! ( :: std :: mem :: size_of :: < _IO_FILE > ( ) , 216usize , concat ! ( "Size of: " , stringify ! ( _IO_FILE ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < _IO_FILE > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( _IO_FILE ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _flags as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _flags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _IO_read_ptr as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _IO_read_ptr ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _IO_read_end as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _IO_read_end ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _IO_read_base as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _IO_read_base ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _IO_write_base as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _IO_write_base ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _IO_write_ptr as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _IO_write_ptr ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _IO_write_end as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _IO_write_end ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _IO_buf_base as * const _ as usize } , 56usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _IO_buf_base ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _IO_buf_end as * const _ as usize } , 64usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _IO_buf_end ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _IO_save_base as * const _ as usize } , 72usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _IO_save_base ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _IO_backup_base as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _IO_backup_base ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _IO_save_end as * const _ as usize } , 88usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _IO_save_end ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _markers as * const _ as usize } , 96usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _markers ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _chain as * const _ as usize } , 104usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _chain ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _fileno as * const _ as usize } , 112usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _fileno ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _flags2 as * const _ as usize } , 116usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _flags2 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _old_offset as * const _ as usize } , 120usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _old_offset ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _cur_column as * const _ as usize } , 128usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _cur_column ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _vtable_offset as * const _ as usize } , 130usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _vtable_offset ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _shortbuf as * const _ as usize } , 131usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _shortbuf ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _lock as * const _ as usize } , 136usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _lock ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _offset as * const _ as usize } , 144usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _offset ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . __pad1 as * const _ as usize } , 152usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( __pad1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . __pad2 as * const _ as usize } , 160usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( __pad2 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . __pad3 as * const _ as usize } , 168usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( __pad3 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . __pad4 as * const _ as usize } , 176usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( __pad4 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . __pad5 as * const _ as usize } , 184usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( __pad5 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _mode as * const _ as usize } , 192usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _mode ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _IO_FILE > ( ) ) ) . _unused2 as * const _ as usize } , 196usize , concat ! ( "Offset of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _unused2 ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct _IO_FILE_plus { _unused : [ u8 ; 0 ] , } extern "C" { # [ link_name = "\u{1}_IO_2_1_stdin_" ] pub static mut _IO_2_1_stdin_ : _IO_FILE_plus ; } extern "C" { # [ link_name = "\u{1}_IO_2_1_stdout_" ] pub static mut _IO_2_1_stdout_ : _IO_FILE_plus ; } extern "C" { # [ link_name = "\u{1}_IO_2_1_stderr_" ] pub static mut _IO_2_1_stderr_ : _IO_FILE_plus ; } pub type __io_read_fn = :: std :: option :: Option < unsafe extern "C" fn ( __cookie : * mut :: std :: os :: raw :: c_void , __buf : * mut :: std :: os :: raw :: c_char , __nbytes : usize ) -> __ssize_t > ; pub type __io_write_fn = :: std :: option :: Option < unsafe extern "C" fn ( __cookie : * mut :: std :: os :: raw :: c_void , __buf : * const :: std :: os :: raw :: c_char , __n : usize ) -> __ssize_t > ; pub type __io_seek_fn = :: std :: option :: Option < unsafe extern "C" fn ( __cookie : * mut :: std :: os :: raw :: c_void , __pos : * mut __off64_t , __w : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int > ; pub type __io_close_fn = :: std :: option :: Option < unsafe extern "C" fn ( __cookie : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int > ; extern "C" { pub fn __underflow ( arg1 : * mut _IO_FILE ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn __uflow ( arg1 : * mut _IO_FILE ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn __overflow ( arg1 : * mut _IO_FILE , arg2 : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn _IO_getc ( __fp : * mut _IO_FILE ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn _IO_putc ( __c : :: std :: os :: raw :: c_int , __fp : * mut _IO_FILE ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn _IO_feof ( __fp : * mut _IO_FILE ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn _IO_ferror ( __fp : * mut _IO_FILE ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn _IO_peekc_locked ( __fp : * mut _IO_FILE ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn _IO_flockfile ( arg1 : * mut _IO_FILE ) ; } extern "C" { pub fn _IO_funlockfile ( arg1 : * mut _IO_FILE ) ; } extern "C" { pub fn _IO_ftrylockfile ( arg1 : * mut _IO_FILE ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn _IO_vfscanf ( arg1 : * mut _IO_FILE , arg2 : * const :: std :: os :: raw :: c_char , arg3 : * mut __va_list_tag , arg4 : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn _IO_vfprintf ( arg1 : * mut _IO_FILE , arg2 : * const :: std :: os :: raw :: c_char , arg3 : * mut __va_list_tag ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn _IO_padn ( arg1 : * mut _IO_FILE , arg2 : :: std :: os :: raw :: c_int , arg3 : __ssize_t ) -> __ssize_t ; } extern "C" { pub fn _IO_sgetn ( arg1 : * mut _IO_FILE , arg2 : * mut :: std :: os :: raw :: c_void , arg3 : usize ) -> usize ; } extern "C" { pub fn _IO_seekoff ( arg1 : * mut _IO_FILE , arg2 : __off64_t , arg3 : :: std :: os :: raw :: c_int , arg4 : :: std :: os :: raw :: c_int ) -> __off64_t ; } extern "C" { pub fn _IO_seekpos ( arg1 : * mut _IO_FILE , arg2 : __off64_t , arg3 : :: std :: os :: raw :: c_int ) -> __off64_t ; } extern "C" { pub fn _IO_free_backup_area ( arg1 : * mut _IO_FILE ) ; } pub type off_t = __off_t ; pub type fpos_t = _G_fpos_t ; extern "C" { # [ link_name = "\u{1}stdin" ] pub static mut stdin : * mut _IO_FILE ; } extern "C" { # [ link_name = "\u{1}stdout" ] pub static mut stdout : * mut _IO_FILE ; } extern "C" { # [ link_name = "\u{1}stderr" ] pub static mut stderr : * mut _IO_FILE ; } extern "C" { pub fn remove ( __filename : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn rename ( __old : * const :: std :: os :: raw :: c_char , __new : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn renameat ( __oldfd : :: std :: os :: raw :: c_int , __old : * const :: std :: os :: raw :: c_char , __newfd : :: std :: os :: raw :: c_int , __new : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn tmpfile ( ) -> * mut FILE ; } extern "C" { pub fn tmpnam ( __s : * mut :: std :: os :: raw :: c_char ) -> * mut :: std :: os :: raw :: c_char ; } extern "C" { pub fn tmpnam_r ( __s : * mut :: std :: os :: raw :: c_char ) -> * mut :: std :: os :: raw :: c_char ; } extern "C" { pub fn tempnam ( __dir : * const :: std :: os :: raw :: c_char , __pfx : * const :: std :: os :: raw :: c_char ) -> * mut :: std :: os :: raw :: c_char ; } extern "C" { pub fn fclose ( __stream : * mut FILE ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn fflush ( __stream : * mut FILE ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn fflush_unlocked ( __stream : * mut FILE ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn fopen ( __filename : * const :: std :: os :: raw :: c_char , __modes : * const :: std :: os :: raw :: c_char ) -> * mut FILE ; } extern "C" { pub fn freopen ( __filename : * const :: std :: os :: raw :: c_char , __modes : * const :: std :: os :: raw :: c_char , __stream : * mut FILE ) -> * mut FILE ; } extern "C" { pub fn fdopen ( __fd : :: std :: os :: raw :: c_int , __modes : * const :: std :: os :: raw :: c_char ) -> * mut FILE ; } extern "C" { pub fn fmemopen ( __s : * mut :: std :: os :: raw :: c_void , __len : usize , __modes : * const :: std :: os :: raw :: c_char ) -> * mut FILE ; } extern "C" { pub fn open_memstream ( __bufloc : * mut * mut :: std :: os :: raw :: c_char , __sizeloc : * mut usize ) -> * mut FILE ; } extern "C" { pub fn setbuf ( __stream : * mut FILE , __buf : * mut :: std :: os :: raw :: c_char ) ; } extern "C" { pub fn setvbuf ( __stream : * mut FILE , __buf : * mut :: std :: os :: raw :: c_char , __modes : :: std :: os :: raw :: c_int , __n : usize ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn setbuffer ( __stream : * mut FILE , __buf : * mut :: std :: os :: raw :: c_char , __size : usize ) ; } extern "C" { pub fn setlinebuf ( __stream : * mut FILE ) ; } extern "C" { pub fn fprintf ( __stream : * mut FILE , __format : * const :: std :: os :: raw :: c_char , ... ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn printf ( __format : * const :: std :: os :: raw :: c_char , ... ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn sprintf ( __s : * mut :: std :: os :: raw :: c_char , __format : * const :: std :: os :: raw :: c_char , ... ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn vfprintf ( __s : * mut FILE , __format : * const :: std :: os :: raw :: c_char , __arg : * mut __va_list_tag ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn vprintf ( __format : * const :: std :: os :: raw :: c_char , __arg : * mut __va_list_tag ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn vsprintf ( __s : * mut :: std :: os :: raw :: c_char , __format : * const :: std :: os :: raw :: c_char , __arg : * mut __va_list_tag ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn snprintf ( __s : * mut :: std :: os :: raw :: c_char , __maxlen : usize , __format : * const :: std :: os :: raw :: c_char , ... ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn vsnprintf ( __s : * mut :: std :: os :: raw :: c_char , __maxlen : usize , __format : * const :: std :: os :: raw :: c_char , __arg : * mut __va_list_tag ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn vdprintf ( __fd : :: std :: os :: raw :: c_int , __fmt : * const :: std :: os :: raw :: c_char , __arg : * mut __va_list_tag ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn dprintf ( __fd : :: std :: os :: raw :: c_int , __fmt : * const :: std :: os :: raw :: c_char , ... ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn fscanf ( __stream : * mut FILE , __format : * const :: std :: os :: raw :: c_char , ... ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn scanf ( __format : * const :: std :: os :: raw :: c_char , ... ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn sscanf ( __s : * const :: std :: os :: raw :: c_char , __format : * const :: std :: os :: raw :: c_char , ... ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ link_name = "\u{1}__isoc99_fscanf" ] pub fn fscanf1 ( __stream : * mut FILE , __format : * const :: std :: os :: raw :: c_char , ... ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ link_name = "\u{1}__isoc99_scanf" ] pub fn scanf1 ( __format : * const :: std :: os :: raw :: c_char , ... ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ link_name = "\u{1}__isoc99_sscanf" ] pub fn sscanf1 ( __s : * const :: std :: os :: raw :: c_char , __format : * const :: std :: os :: raw :: c_char , ... ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn vfscanf ( __s : * mut FILE , __format : * const :: std :: os :: raw :: c_char , __arg : * mut __va_list_tag ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn vscanf ( __format : * const :: std :: os :: raw :: c_char , __arg : * mut __va_list_tag ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn vsscanf ( __s : * const :: std :: os :: raw :: c_char , __format : * const :: std :: os :: raw :: c_char , __arg : * mut __va_list_tag ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ link_name = "\u{1}__isoc99_vfscanf" ] pub fn vfscanf1 ( __s : * mut FILE , __format : * const :: std :: os :: raw :: c_char , __arg : * mut __va_list_tag ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ link_name = "\u{1}__isoc99_vscanf" ] pub fn vscanf1 ( __format : * const :: std :: os :: raw :: c_char , __arg : * mut __va_list_tag ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ link_name = "\u{1}__isoc99_vsscanf" ] pub fn vsscanf1 ( __s : * const :: std :: os :: raw :: c_char , __format : * const :: std :: os :: raw :: c_char , __arg : * mut __va_list_tag ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn fgetc ( __stream : * mut FILE ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn getc ( __stream : * mut FILE ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn getchar ( ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn getc_unlocked ( __stream : * mut FILE ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn getchar_unlocked ( ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn fgetc_unlocked ( __stream : * mut FILE ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn fputc ( __c : :: std :: os :: raw :: c_int , __stream : * mut FILE ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn putc ( __c : :: std :: os :: raw :: c_int , __stream : * mut FILE ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn putchar ( __c : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn fputc_unlocked ( __c : :: std :: os :: raw :: c_int , __stream : * mut FILE ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn putc_unlocked ( __c : :: std :: os :: raw :: c_int , __stream : * mut FILE ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn putchar_unlocked ( __c : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn getw ( __stream : * mut FILE ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn putw ( __w : :: std :: os :: raw :: c_int , __stream : * mut FILE ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn fgets ( __s : * mut :: std :: os :: raw :: c_char , __n : :: std :: os :: raw :: c_int , __stream : * mut FILE ) -> * mut :: std :: os :: raw :: c_char ; } extern "C" { pub fn __getdelim ( __lineptr : * mut * mut :: std :: os :: raw :: c_char , __n : * mut usize , __delimiter : :: std :: os :: raw :: c_int , __stream : * mut FILE ) -> __ssize_t ; } extern "C" { pub fn getdelim ( __lineptr : * mut * mut :: std :: os :: raw :: c_char , __n : * mut usize , __delimiter : :: std :: os :: raw :: c_int , __stream : * mut FILE ) -> __ssize_t ; } extern "C" { pub fn getline ( __lineptr : * mut * mut :: std :: os :: raw :: c_char , __n : * mut usize , __stream : * mut FILE ) -> __ssize_t ; } extern "C" { pub fn fputs ( __s : * const :: std :: os :: raw :: c_char , __stream : * mut FILE ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn puts ( __s : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn ungetc ( __c : :: std :: os :: raw :: c_int , __stream : * mut FILE ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn fread ( __ptr : * mut :: std :: os :: raw :: c_void , __size : usize , __n : usize , __stream : * mut FILE ) -> usize ; } extern "C" { pub fn fwrite ( __ptr : * const :: std :: os :: raw :: c_void , __size : usize , __n : usize , __s : * mut FILE ) -> usize ; } extern "C" { pub fn fread_unlocked ( __ptr : * mut :: std :: os :: raw :: c_void , __size : usize , __n : usize , __stream : * mut FILE ) -> usize ; } extern "C" { pub fn fwrite_unlocked ( __ptr : * const :: std :: os :: raw :: c_void , __size : usize , __n : usize , __stream : * mut FILE ) -> usize ; } extern "C" { pub fn fseek ( __stream : * mut FILE , __off : :: std :: os :: raw :: c_long , __whence : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn ftell ( __stream : * mut FILE ) -> :: std :: os :: raw :: c_long ; } extern "C" { pub fn rewind ( __stream : * mut FILE ) ; } extern "C" { pub fn fseeko ( __stream : * mut FILE , __off : __off_t , __whence : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn ftello ( __stream : * mut FILE ) -> __off_t ; } extern "C" { pub fn fgetpos ( __stream : * mut FILE , __pos : * mut fpos_t ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn fsetpos ( __stream : * mut FILE , __pos : * const fpos_t ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn clearerr ( __stream : * mut FILE ) ; } extern "C" { pub fn feof ( __stream : * mut FILE ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn ferror ( __stream : * mut FILE ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn clearerr_unlocked ( __stream : * mut FILE ) ; } extern "C" { pub fn feof_unlocked ( __stream : * mut FILE ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn ferror_unlocked ( __stream : * mut FILE ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn perror ( __s : * const :: std :: os :: raw :: c_char ) ; } extern "C" { # [ link_name = "\u{1}sys_nerr" ] pub static mut sys_nerr : :: std :: os :: raw :: c_int ; } extern "C" { # [ link_name = "\u{1}sys_errlist" ] pub static mut sys_errlist : [ * const :: std :: os :: raw :: c_char ; 0usize ] ; } extern "C" { pub fn fileno ( __stream : * mut FILE ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn fileno_unlocked ( __stream : * mut FILE ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn popen ( __command : * const :: std :: os :: raw :: c_char , __modes : * const :: std :: os :: raw :: c_char ) -> * mut FILE ; } extern "C" { pub fn pclose ( __stream : * mut FILE ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn ctermid ( __s : * mut :: std :: os :: raw :: c_char ) -> * mut :: std :: os :: raw :: c_char ; } extern "C" { pub fn flockfile ( __stream : * mut FILE ) ; } extern "C" { pub fn ftrylockfile ( __stream : * mut FILE ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn funlockfile ( __stream : * mut FILE ) ; } pub type int_least8_t = :: std :: os :: raw :: c_schar ; pub type int_least16_t = :: std :: os :: raw :: c_short ; pub type int_least32_t = :: std :: os :: raw :: c_int ; pub type int_least64_t = :: std :: os :: raw :: c_long ; pub type uint_least8_t = :: std :: os :: raw :: c_uchar ; pub type uint_least16_t = :: std :: os :: raw :: c_ushort ; pub type uint_least32_t = :: std :: os :: raw :: c_uint ; pub type uint_least64_t = :: std :: os :: raw :: c_ulong ; pub type int_fast8_t = :: std :: os :: raw :: c_schar ; pub type int_fast16_t = :: std :: os :: raw :: c_long ; pub type int_fast32_t = :: std :: os :: raw :: c_long ; pub type int_fast64_t = :: std :: os :: raw :: c_long ; pub type uint_fast8_t = :: std :: os :: raw :: c_uchar ; pub type uint_fast16_t = :: std :: os :: raw :: c_ulong ; pub type uint_fast32_t = :: std :: os :: raw :: c_ulong ; pub type uint_fast64_t = :: std :: os :: raw :: c_ulong ; pub type intmax_t = :: std :: os :: raw :: c_long ; pub type uintmax_t = :: std :: os :: raw :: c_ulong ; 
 /// \brief rabit unsigned long type 
 pub type rbt_ulong = :: std :: os :: raw :: c_ulong ; extern "C" { 
 /// \brief intialize the rabit module,
/// call this once before using anything
/// The additional arguments is not necessary.
/// Usually rabit will detect settings
/// from environment variables.
/// \param argc number of arguments in argv
/// \param argv the array of input arguments 
 pub fn RabitInit ( argc : :: std :: os :: raw :: c_int , argv : * mut * mut :: std :: os :: raw :: c_char ) ; } extern "C" { 
 /// \brief finalize the rabit engine,
/// call this function after you finished all jobs. 
 pub fn RabitFinalize ( ) ; } extern "C" { 
 /// \brief get rank of current process 
 pub fn RabitGetRank ( ) -> :: std :: os :: raw :: c_int ; } extern "C" { 
 /// \brief get total number of process 
 pub fn RabitGetWorldSize ( ) -> :: std :: os :: raw :: c_int ; } extern "C" { 
 /// \brief get rank of current process 
 pub fn RabitIsDistributed ( ) -> :: std :: os :: raw :: c_int ; } extern "C" { 
 /// \brief print the msg to the tracker,
/// this function can be used to communicate the information of the progress to
/// the user who monitors the tracker
/// \param msg the message to be printed 
 pub fn RabitTrackerPrint ( msg : * const :: std :: os :: raw :: c_char ) ; } extern "C" { 
 /// \brief get name of processor
/// \param out_name hold output string
/// \param out_len hold length of output string
/// \param max_len maximum buffer length of input 
 pub fn RabitGetProcessorName ( out_name : * mut :: std :: os :: raw :: c_char , out_len : * mut rbt_ulong , max_len : rbt_ulong ) ; } extern "C" { 
 /// \brief broadcast an memory region to all others from root
///
/// Example: int a = 1; Broadcast(&a, sizeof(a), root);
/// \param sendrecv_data the pointer to send or recive buffer,
/// \param size the size of the data
/// \param root the root of process 
 pub fn RabitBroadcast ( sendrecv_data : * mut :: std :: os :: raw :: c_void , size : rbt_ulong , root : :: std :: os :: raw :: c_int ) ; } extern "C" { 
 /// \brief perform in-place allreduce, on sendrecvbuf
/// this function is NOT thread-safe
///
/// Example Usage: the following code gives sum of the result
/// vector<int> data(10);
/// ...
/// Allreduce<op::Sum>(&data[0], data.size());
/// ...
/// \param sendrecvbuf buffer for both sending and recving data
/// \param count number of elements to be reduced
/// \param enum_dtype the enumeration of data type, see rabit::engine::mpi::DataType in engine.h of rabit include
/// \param enum_op the enumeration of operation type, see rabit::engine::mpi::OpType in engine.h of rabit
/// \param prepare_fun Lazy preprocessing function, if it is not NULL, prepare_fun(prepare_arg)
/// will be called by the function before performing Allreduce, to intialize the data in sendrecvbuf_.
/// If the result of Allreduce can be recovered directly, then prepare_func will NOT be called
/// \param prepare_arg argument used to passed into the lazy preprocessing function 
 pub fn RabitAllreduce ( sendrecvbuf : * mut :: std :: os :: raw :: c_void , count : usize , enum_dtype : :: std :: os :: raw :: c_int , enum_op : :: std :: os :: raw :: c_int , prepare_fun : :: std :: option :: Option < unsafe extern "C" fn ( arg : * mut :: std :: os :: raw :: c_void ) > , prepare_arg : * mut :: std :: os :: raw :: c_void ) ; } extern "C" { 
 /// \brief load latest check point
/// \param out_global_model hold output of serialized global_model
/// \param out_global_len the output length of serialized global model
/// \param out_local_model hold output of serialized local_model, can be NULL
/// \param out_local_len the output length of serialized local model, can be NULL
///
/// \return the version number of check point loaded
/// if returned version == 0, this means no model has been CheckPointed
/// nothing will be touched 
 pub fn RabitLoadCheckPoint ( out_global_model : * mut * mut :: std :: os :: raw :: c_char , out_global_len : * mut rbt_ulong , out_local_model : * mut * mut :: std :: os :: raw :: c_char , out_local_len : * mut rbt_ulong ) -> :: std :: os :: raw :: c_int ; } extern "C" { 
 /// \brief checkpoint the model, meaning we finished a stage of execution
/// every time we call check point, there is a version number which will increase by one
///
/// \param global_model hold content of serialized global_model
/// \param global_len the content length of serialized global model
/// \param local_model hold content of serialized local_model, can be NULL
/// \param local_len the content length of serialized local model, can be NULL
///
/// NOTE: local_model requires explicit replication of the model for fault-tolerance, which will
/// bring replication cost in CheckPoint function. global_model do not need explicit replication.
/// So only CheckPoint with global_model if possible 
 pub fn RabitCheckPoint ( global_model : * const :: std :: os :: raw :: c_char , global_len : rbt_ulong , local_model : * const :: std :: os :: raw :: c_char , local_len : rbt_ulong ) ; } extern "C" { 
 /// \return version number of current stored model,
/// which means how many calls to CheckPoint we made so far 
 pub fn RabitVersionNumber ( ) -> :: std :: os :: raw :: c_int ; } extern "C" { 
 /// \brief a Dummy function,
/// used to cause force link of C API  into the  DLL.
/// \code
/// // force link rabit C API library.
/// static int must_link_rabit_ = RabitLinkTag();
/// \endcode
/// \return a dummy integer. 
 pub fn RabitLinkTag ( ) -> :: std :: os :: raw :: c_int ; } pub type bst_ulong = u64 ; 
 /// \brief handle to DMatrix 
 pub type DMatrixHandle = * mut :: std :: os :: raw :: c_void ; 
 /// \brief handle to Booster 
 pub type BoosterHandle = * mut :: std :: os :: raw :: c_void ; 
 /// \brief handle to a data iterator 
 pub type DataIterHandle = * mut :: std :: os :: raw :: c_void ; 
 /// \brief handle to a internal data holder. 
 pub type DataHolderHandle = * mut :: std :: os :: raw :: c_void ; 
 /// \brief Mini batch used in XGBoost Data Iteration 
 # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct XGBoostBatchCSR { 
 /// \brief number of rows in the minibatch 
 pub size : usize , pub offset : * mut i64 , 
 /// \brief labels of each instance 
 pub label : * mut f32 , 
 /// \brief weight of each instance, can be NULL 
 pub weight : * mut f32 , 
 /// \brief feature index 
 pub index : * mut :: std :: os :: raw :: c_int , 
 /// \brief feature values 
 pub value : * mut f32 , } # [ test ] fn bindgen_test_layout_XGBoostBatchCSR ( ) { assert_eq ! ( :: std :: mem :: size_of :: < XGBoostBatchCSR > ( ) , 48usize , concat ! ( "Size of: " , stringify ! ( XGBoostBatchCSR ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < XGBoostBatchCSR > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( XGBoostBatchCSR ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < XGBoostBatchCSR > ( ) ) ) . size as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( XGBoostBatchCSR ) , "::" , stringify ! ( size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < XGBoostBatchCSR > ( ) ) ) . offset as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( XGBoostBatchCSR ) , "::" , stringify ! ( offset ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < XGBoostBatchCSR > ( ) ) ) . label as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( XGBoostBatchCSR ) , "::" , stringify ! ( label ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < XGBoostBatchCSR > ( ) ) ) . weight as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( XGBoostBatchCSR ) , "::" , stringify ! ( weight ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < XGBoostBatchCSR > ( ) ) ) . index as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( XGBoostBatchCSR ) , "::" , stringify ! ( index ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < XGBoostBatchCSR > ( ) ) ) . value as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( XGBoostBatchCSR ) , "::" , stringify ! ( value ) ) ) ; } 
 /// \brief Callback to set the data to handle,
/// \param handle The handle to the callback.
/// \param batch The data content to be set. 
 pub type XGBCallbackSetData = :: std :: option :: Option < unsafe extern "C" fn ( handle : DataHolderHandle , batch : XGBoostBatchCSR ) -> :: std :: os :: raw :: c_int > ; 
 /// \brief The data reading callback function.
/// The iterator will be able to give subset of batch in the data.
///
/// If there is data, the function will call set_function to set the data.
///
/// \param data_handle The handle to the callback.
/// \param set_function The batch returned by the iterator
/// \param set_function_handle The handle to be passed to set function.
/// \return 0 if we are reaching the end and batch is not returned. 
 pub type XGBCallbackDataIterNext = :: std :: option :: Option < unsafe extern "C" fn ( data_handle : DataIterHandle , set_function : XGBCallbackSetData , set_function_handle : DataHolderHandle ) -> :: std :: os :: raw :: c_int > ; extern "C" { 
 /// \brief get string message of the last error
///
/// all function in this file will return 0 when success
/// and -1 when an error occurred,
/// XGBGetLastError can be called to retrieve the error
///
/// this function is thread safe and can be called by different thread
/// \return const char* error information 
 pub fn XGBGetLastError ( ) -> * const :: std :: os :: raw :: c_char ; } extern "C" { 
 /// \brief register callback function for LOG(INFO) messages -- helpful messages
/// that are not errors.
/// Note: this function can be called by multiple threads. The callback function
/// will run on the thread that registered it
/// \return 0 for success, -1 for failure 
 pub fn XGBRegisterLogCallback ( callback : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * const :: std :: os :: raw :: c_char ) > ) -> :: std :: os :: raw :: c_int ; } extern "C" { 
 /// \brief load a data matrix
/// \param fname the name of the file
/// \param silent whether print messages during loading
/// \param out a loaded data matrix
/// \return 0 when success, -1 when failure happens 
 pub fn XGDMatrixCreateFromFile ( fname : * const :: std :: os :: raw :: c_char , silent : :: std :: os :: raw :: c_int , out : * mut DMatrixHandle ) -> :: std :: os :: raw :: c_int ; } extern "C" { 
 /// \brief Create a DMatrix from a data iterator.
/// \param data_handle The handle to the data.
/// \param callback The callback to get the data.
/// \param cache_info Additional information about cache file, can be null.
/// \param out The created DMatrix
/// \return 0 when success, -1 when failure happens. 
 pub fn XGDMatrixCreateFromDataIter ( data_handle : DataIterHandle , callback : XGBCallbackDataIterNext , cache_info : * const :: std :: os :: raw :: c_char , out : * mut DMatrixHandle ) -> :: std :: os :: raw :: c_int ; } extern "C" { 
 /// \brief create a matrix content from CSR format
/// \param indptr pointer to row headers
/// \param indices findex
/// \param data fvalue
/// \param nindptr number of rows in the matrix + 1
/// \param nelem number of nonzero elements in the matrix
/// \param num_col number of columns; when it's set to 0, then guess from data
/// \param out created dmatrix
/// \return 0 when success, -1 when failure happens 
 pub fn XGDMatrixCreateFromCSREx ( indptr : * const usize , indices : * const :: std :: os :: raw :: c_uint , data : * const f32 , nindptr : usize , nelem : usize , num_col : usize , out : * mut DMatrixHandle ) -> :: std :: os :: raw :: c_int ; } extern "C" { 
 /// \deprecated
/// \brief create a matrix content from CSR format
/// \param indptr pointer to row headers
/// \param indices findex
/// \param data fvalue
/// \param nindptr number of rows in the matrix + 1
/// \param nelem number of nonzero elements in the matrix
/// \param out created dmatrix
/// \return 0 when success, -1 when failure happens 
 pub fn XGDMatrixCreateFromCSR ( indptr : * const bst_ulong , indices : * const :: std :: os :: raw :: c_uint , data : * const f32 , nindptr : bst_ulong , nelem : bst_ulong , out : * mut DMatrixHandle ) -> :: std :: os :: raw :: c_int ; } extern "C" { 
 /// \brief create a matrix content from CSC format
/// \param col_ptr pointer to col headers
/// \param indices findex
/// \param data fvalue
/// \param nindptr number of rows in the matrix + 1
/// \param nelem number of nonzero elements in the matrix
/// \param num_row number of rows; when it's set to 0, then guess from data
/// \param out created dmatrix
/// \return 0 when success, -1 when failure happens 
 pub fn XGDMatrixCreateFromCSCEx ( col_ptr : * const usize , indices : * const :: std :: os :: raw :: c_uint , data : * const f32 , nindptr : usize , nelem : usize , num_row : usize , out : * mut DMatrixHandle ) -> :: std :: os :: raw :: c_int ; } extern "C" { 
 /// \deprecated
/// \brief create a matrix content from CSC format
/// \param col_ptr pointer to col headers
/// \param indices findex
/// \param data fvalue
/// \param nindptr number of rows in the matrix + 1
/// \param nelem number of nonzero elements in the matrix
/// \param out created dmatrix
/// \return 0 when success, -1 when failure happens 
 pub fn XGDMatrixCreateFromCSC ( col_ptr : * const bst_ulong , indices : * const :: std :: os :: raw :: c_uint , data : * const f32 , nindptr : bst_ulong , nelem : bst_ulong , out : * mut DMatrixHandle ) -> :: std :: os :: raw :: c_int ; } extern "C" { 
 /// \brief create matrix content from dense matrix
/// \param data pointer to the data space
/// \param nrow number of rows
/// \param ncol number columns
/// \param missing which value to represent missing value
/// \param out created dmatrix
/// \return 0 when success, -1 when failure happens 
 pub fn XGDMatrixCreateFromMat ( data : * const f32 , nrow : bst_ulong , ncol : bst_ulong , missing : f32 , out : * mut DMatrixHandle ) -> :: std :: os :: raw :: c_int ; } extern "C" { 
 /// \brief create matrix content from dense matrix
/// \param data pointer to the data space
/// \param nrow number of rows
/// \param ncol number columns
/// \param missing which value to represent missing value
/// \param out created dmatrix
/// \param nthread number of threads (up to maximum cores available, if <=0 use all cores)
/// \return 0 when success, -1 when failure happens 
 pub fn XGDMatrixCreateFromMat_omp ( data : * const f32 , nrow : bst_ulong , ncol : bst_ulong , missing : f32 , out : * mut DMatrixHandle , nthread : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { 
 /// \brief create matrix content from python data table
/// \param data pointer to pointer to column data
/// \param feature_stypes pointer to strings
/// \param nrow number of rows
/// \param ncol number columns
/// \param out created dmatrix
/// \param nthread number of threads (up to maximum cores available, if <=0 use all cores)
/// \return 0 when success, -1 when failure happens 
 pub fn XGDMatrixCreateFromDT ( data : * mut * mut :: std :: os :: raw :: c_void , feature_stypes : * mut * const :: std :: os :: raw :: c_char , nrow : bst_ulong , ncol : bst_ulong , out : * mut DMatrixHandle , nthread : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { 
 /// \brief create a new dmatrix from sliced content of existing matrix
/// \param handle instance of data matrix to be sliced
/// \param idxset index set
/// \param len length of index set
/// \param out a sliced new matrix
/// \return 0 when success, -1 when failure happens 
 pub fn XGDMatrixSliceDMatrix ( handle : DMatrixHandle , idxset : * const :: std :: os :: raw :: c_int , len : bst_ulong , out : * mut DMatrixHandle ) -> :: std :: os :: raw :: c_int ; } extern "C" { 
 /// \brief free space in data matrix
/// \return 0 when success, -1 when failure happens 
 pub fn XGDMatrixFree ( handle : DMatrixHandle ) -> :: std :: os :: raw :: c_int ; } extern "C" { 
 /// \brief load a data matrix into binary file
/// \param handle a instance of data matrix
/// \param fname file name
/// \param silent print statistics when saving
/// \return 0 when success, -1 when failure happens 
 pub fn XGDMatrixSaveBinary ( handle : DMatrixHandle , fname : * const :: std :: os :: raw :: c_char , silent : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { 
 /// \brief set float vector to a content in info
/// \param handle a instance of data matrix
/// \param field field name, can be label, weight
/// \param array pointer to float vector
/// \param len length of array
/// \return 0 when success, -1 when failure happens 
 pub fn XGDMatrixSetFloatInfo ( handle : DMatrixHandle , field : * const :: std :: os :: raw :: c_char , array : * const f32 , len : bst_ulong ) -> :: std :: os :: raw :: c_int ; } extern "C" { 
 /// \brief set uint32 vector to a content in info
/// \param handle a instance of data matrix
/// \param field field name
/// \param array pointer to unsigned int vector
/// \param len length of array
/// \return 0 when success, -1 when failure happens 
 pub fn XGDMatrixSetUIntInfo ( handle : DMatrixHandle , field : * const :: std :: os :: raw :: c_char , array : * const :: std :: os :: raw :: c_uint , len : bst_ulong ) -> :: std :: os :: raw :: c_int ; } extern "C" { 
 /// \brief set label of the training matrix
/// \param handle a instance of data matrix
/// \param group pointer to group size
/// \param len length of array
/// \return 0 when success, -1 when failure happens 
 pub fn XGDMatrixSetGroup ( handle : DMatrixHandle , group : * const :: std :: os :: raw :: c_uint , len : bst_ulong ) -> :: std :: os :: raw :: c_int ; } extern "C" { 
 /// \brief get float info vector from matrix
/// \param handle a instance of data matrix
/// \param field field name
/// \param out_len used to set result length
/// \param out_dptr pointer to the result
/// \return 0 when success, -1 when failure happens 
 pub fn XGDMatrixGetFloatInfo ( handle : DMatrixHandle , field : * const :: std :: os :: raw :: c_char , out_len : * mut bst_ulong , out_dptr : * mut * const f32 ) -> :: std :: os :: raw :: c_int ; } extern "C" { 
 /// \brief get uint32 info vector from matrix
/// \param handle a instance of data matrix
/// \param field field name
/// \param out_len The length of the field.
/// \param out_dptr pointer to the result
/// \return 0 when success, -1 when failure happens 
 pub fn XGDMatrixGetUIntInfo ( handle : DMatrixHandle , field : * const :: std :: os :: raw :: c_char , out_len : * mut bst_ulong , out_dptr : * mut * const :: std :: os :: raw :: c_uint ) -> :: std :: os :: raw :: c_int ; } extern "C" { 
 /// \brief get number of rows.
/// \param handle the handle to the DMatrix
/// \param out The address to hold number of rows.
/// \return 0 when success, -1 when failure happens 
 pub fn XGDMatrixNumRow ( handle : DMatrixHandle , out : * mut bst_ulong ) -> :: std :: os :: raw :: c_int ; } extern "C" { 
 /// \brief get number of columns
/// \param handle the handle to the DMatrix
/// \param out The output of number of columns
/// \return 0 when success, -1 when failure happens 
 pub fn XGDMatrixNumCol ( handle : DMatrixHandle , out : * mut bst_ulong ) -> :: std :: os :: raw :: c_int ; } extern "C" { 
 /// \brief create xgboost learner
/// \param dmats matrices that are set to be cached
/// \param len length of dmats
/// \param out handle to the result booster
/// \return 0 when success, -1 when failure happens 
 pub fn XGBoosterCreate ( dmats : * const DMatrixHandle , len : bst_ulong , out : * mut BoosterHandle ) -> :: std :: os :: raw :: c_int ; } extern "C" { 
 /// \brief free obj in handle
/// \param handle handle to be freed
/// \return 0 when success, -1 when failure happens 
 pub fn XGBoosterFree ( handle : BoosterHandle ) -> :: std :: os :: raw :: c_int ; } extern "C" { 
 /// \brief set parameters
/// \param handle handle
/// \param name  parameter name
/// \param value value of parameter
/// \return 0 when success, -1 when failure happens 
 pub fn XGBoosterSetParam ( handle : BoosterHandle , name : * const :: std :: os :: raw :: c_char , value : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int ; } extern "C" { 
 /// \brief update the model in one round using dtrain
/// \param handle handle
/// \param iter current iteration rounds
/// \param dtrain training data
/// \return 0 when success, -1 when failure happens 
 pub fn XGBoosterUpdateOneIter ( handle : BoosterHandle , iter : :: std :: os :: raw :: c_int , dtrain : DMatrixHandle ) -> :: std :: os :: raw :: c_int ; } extern "C" { 
 /// \brief update the model, by directly specify gradient and second order gradient,
/// this can be used to replace UpdateOneIter, to support customized loss function
/// \param handle handle
/// \param dtrain training data
/// \param grad gradient statistics
/// \param hess second order gradient statistics
/// \param len length of grad/hess array
/// \return 0 when success, -1 when failure happens 
 pub fn XGBoosterBoostOneIter ( handle : BoosterHandle , dtrain : DMatrixHandle , grad : * mut f32 , hess : * mut f32 , len : bst_ulong ) -> :: std :: os :: raw :: c_int ; } extern "C" { 
 /// \brief get evaluation statistics for xgboost
/// \param handle handle
/// \param iter current iteration rounds
/// \param dmats pointers to data to be evaluated
/// \param evnames pointers to names of each data
/// \param len length of dmats
/// \param out_result the string containing evaluation statistics
/// \return 0 when success, -1 when failure happens 
 pub fn XGBoosterEvalOneIter ( handle : BoosterHandle , iter : :: std :: os :: raw :: c_int , dmats : * mut DMatrixHandle , evnames : * mut * const :: std :: os :: raw :: c_char , len : bst_ulong , out_result : * mut * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int ; } extern "C" { 
 /// \brief make prediction based on dmat
/// \param handle handle
/// \param dmat data matrix
/// \param option_mask bit-mask of options taken in prediction, possible values
/// 0:normal prediction
/// 1:output margin instead of transformed value
/// 2:output leaf index of trees instead of leaf value, note leaf index is unique per tree
/// 4:output feature contributions to individual predictions
/// \param ntree_limit limit number of trees used for prediction, this is only valid for boosted trees
/// when the parameter is set to 0, we will use all the trees
/// \param out_len used to store length of returning result
/// \param out_result used to set a pointer to array
/// \return 0 when success, -1 when failure happens 
 pub fn XGBoosterPredict ( handle : BoosterHandle , dmat : DMatrixHandle , option_mask : :: std :: os :: raw :: c_int , ntree_limit : :: std :: os :: raw :: c_uint , out_len : * mut bst_ulong , out_result : * mut * const f32 ) -> :: std :: os :: raw :: c_int ; } extern "C" { 
 /// \brief load model from existing file
/// \param handle handle
/// \param fname file name
/// \return 0 when success, -1 when failure happens 
 pub fn XGBoosterLoadModel ( handle : BoosterHandle , fname : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int ; } extern "C" { 
 /// \brief save model into existing file
/// \param handle handle
/// \param fname file name
/// \return 0 when success, -1 when failure happens 
 pub fn XGBoosterSaveModel ( handle : BoosterHandle , fname : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int ; } extern "C" { 
 /// \brief load model from in memory buffer
/// \param handle handle
/// \param buf pointer to the buffer
/// \param len the length of the buffer
/// \return 0 when success, -1 when failure happens 
 pub fn XGBoosterLoadModelFromBuffer ( handle : BoosterHandle , buf : * const :: std :: os :: raw :: c_void , len : bst_ulong ) -> :: std :: os :: raw :: c_int ; } extern "C" { 
 /// \brief save model into binary raw bytes, return header of the array
/// user must copy the result out, before next xgboost call
/// \param handle handle
/// \param out_len the argument to hold the output length
/// \param out_dptr the argument to hold the output data pointer
/// \return 0 when success, -1 when failure happens 
 pub fn XGBoosterGetModelRaw ( handle : BoosterHandle , out_len : * mut bst_ulong , out_dptr : * mut * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int ; } extern "C" { 
 /// \brief dump model, return array of strings representing model dump
/// \param handle handle
/// \param fmap  name to fmap can be empty string
/// \param with_stats whether to dump with statistics
/// \param out_len length of output array
/// \param out_dump_array pointer to hold representing dump of each model
/// \return 0 when success, -1 when failure happens 
 pub fn XGBoosterDumpModel ( handle : BoosterHandle , fmap : * const :: std :: os :: raw :: c_char , with_stats : :: std :: os :: raw :: c_int , out_len : * mut bst_ulong , out_dump_array : * mut * mut * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int ; } extern "C" { 
 /// \brief dump model, return array of strings representing model dump
/// \param handle handle
/// \param fmap  name to fmap can be empty string
/// \param with_stats whether to dump with statistics
/// \param format the format to dump the model in
/// \param out_len length of output array
/// \param out_dump_array pointer to hold representing dump of each model
/// \return 0 when success, -1 when failure happens 
 pub fn XGBoosterDumpModelEx ( handle : BoosterHandle , fmap : * const :: std :: os :: raw :: c_char , with_stats : :: std :: os :: raw :: c_int , format : * const :: std :: os :: raw :: c_char , out_len : * mut bst_ulong , out_dump_array : * mut * mut * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int ; } extern "C" { 
 /// \brief dump model, return array of strings representing model dump
/// \param handle handle
/// \param fnum number of features
/// \param fname names of features
/// \param ftype types of features
/// \param with_stats whether to dump with statistics
/// \param out_len length of output array
/// \param out_models pointer to hold representing dump of each model
/// \return 0 when success, -1 when failure happens 
 pub fn XGBoosterDumpModelWithFeatures ( handle : BoosterHandle , fnum : :: std :: os :: raw :: c_int , fname : * mut * const :: std :: os :: raw :: c_char , ftype : * mut * const :: std :: os :: raw :: c_char , with_stats : :: std :: os :: raw :: c_int , out_len : * mut bst_ulong , out_models : * mut * mut * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int ; } extern "C" { 
 /// \brief dump model, return array of strings representing model dump
/// \param handle handle
/// \param fnum number of features
/// \param fname names of features
/// \param ftype types of features
/// \param with_stats whether to dump with statistics
/// \param format the format to dump the model in
/// \param out_len length of output array
/// \param out_models pointer to hold representing dump of each model
/// \return 0 when success, -1 when failure happens 
 pub fn XGBoosterDumpModelExWithFeatures ( handle : BoosterHandle , fnum : :: std :: os :: raw :: c_int , fname : * mut * const :: std :: os :: raw :: c_char , ftype : * mut * const :: std :: os :: raw :: c_char , with_stats : :: std :: os :: raw :: c_int , format : * const :: std :: os :: raw :: c_char , out_len : * mut bst_ulong , out_models : * mut * mut * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int ; } extern "C" { 
 /// \brief Get string attribute from Booster.
/// \param handle handle
/// \param key The key of the attribute.
/// \param out The result attribute, can be NULL if the attribute do not exist.
/// \param success Whether the result is contained in out.
/// \return 0 when success, -1 when failure happens 
 pub fn XGBoosterGetAttr ( handle : BoosterHandle , key : * const :: std :: os :: raw :: c_char , out : * mut * const :: std :: os :: raw :: c_char , success : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { 
 /// \brief Set or delete string attribute.
///
/// \param handle handle
/// \param key The key of the attribute.
/// \param value The value to be saved.
/// If nullptr, the attribute would be deleted.
/// \return 0 when success, -1 when failure happens 
 pub fn XGBoosterSetAttr ( handle : BoosterHandle , key : * const :: std :: os :: raw :: c_char , value : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int ; } extern "C" { 
 /// \brief Get the names of all attribute from Booster.
/// \param handle handle
/// \param out_len the argument to hold the output length
/// \param out pointer to hold the output attribute stings
/// \return 0 when success, -1 when failure happens 
 pub fn XGBoosterGetAttrNames ( handle : BoosterHandle , out_len : * mut bst_ulong , out : * mut * mut * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int ; } extern "C" { 
 /// \brief Initialize the booster from rabit checkpoint.
/// This is used in distributed training API.
/// \param handle handle
/// \param version The output version of the model.
/// \return 0 when success, -1 when failure happens 
 pub fn XGBoosterLoadRabitCheckpoint ( handle : BoosterHandle , version : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { 
 /// \brief Save the current checkpoint to rabit.
/// \param handle handle
/// \return 0 when success, -1 when failure happens 
 pub fn XGBoosterSaveRabitCheckpoint ( handle : BoosterHandle ) -> :: std :: os :: raw :: c_int ; } pub type __builtin_va_list = [ __va_list_tag ; 1usize ] ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct __va_list_tag { pub gp_offset : :: std :: os :: raw :: c_uint , pub fp_offset : :: std :: os :: raw :: c_uint , pub overflow_arg_area : * mut :: std :: os :: raw :: c_void , pub reg_save_area : * mut :: std :: os :: raw :: c_void , } # [ test ] fn bindgen_test_layout___va_list_tag ( ) { assert_eq ! ( :: std :: mem :: size_of :: < __va_list_tag > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( __va_list_tag ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < __va_list_tag > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( __va_list_tag ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __va_list_tag > ( ) ) ) . gp_offset as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( __va_list_tag ) , "::" , stringify ! ( gp_offset ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __va_list_tag > ( ) ) ) . fp_offset as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( __va_list_tag ) , "::" , stringify ! ( fp_offset ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __va_list_tag > ( ) ) ) . overflow_arg_area as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( __va_list_tag ) , "::" , stringify ! ( overflow_arg_area ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __va_list_tag > ( ) ) ) . reg_save_area as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( __va_list_tag ) , "::" , stringify ! ( reg_save_area ) ) ) ; }