1
2
3
/* 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 __GLIBC_USE_DEPRECATED_GETS : 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 = 201706 ; pub const __STDC_NO_THREADS__ : u32 = 1 ; pub const __GNU_LIBRARY__ : u32 = 6 ; pub const __GLIBC__ : u32 = 2 ; pub const __GLIBC_MINOR__ : u32 = 27 ; pub const _SYS_CDEFS_H : u32 = 1 ; pub const __glibc_c99_flexarr_available : u32 = 1 ; pub const __WORDSIZE : u32 = 64 ; pub const __WORDSIZE_TIME64_COMPAT32 : u32 = 1 ; pub const __SYSCALL_WORDSIZE : u32 = 64 ; pub const __HAVE_GENERIC_SELECTION : u32 = 1 ; pub const __GLIBC_USE_LIB_EXT2 : u32 = 0 ; pub const __GLIBC_USE_IEC_60559_BFP_EXT : u32 = 0 ; pub const __GLIBC_USE_IEC_60559_FUNCS_EXT : u32 = 0 ; pub const __GLIBC_USE_IEC_60559_TYPES_EXT : u32 = 0 ; 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 __RLIM_T_MATCHES_RLIM64_T : u32 = 1 ; pub const __FD_SETSIZE : u32 = 1024 ; pub const ____FILE_defined : u32 = 1 ; pub const __FILE_defined : u32 = 1 ; pub const _BITS_LIBIO_H : u32 = 1 ; pub const _BITS_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 _BITS_STDIO_LIM_H : u32 = 1 ; 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 _INTTYPES_H : u32 = 1 ; pub const _STDINT_H : u32 = 1 ; pub const _BITS_WCHAR_H : u32 = 1 ; pub const _BITS_STDINT_INTN_H : u32 = 1 ; pub const _BITS_STDINT_UINTN_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 const ____gwchar_t_defined : u32 = 1 ; pub const __PRI64_PREFIX : & 'static [ u8 ; 2usize ] = b"l\0" ; pub const __PRIPTR_PREFIX : & 'static [ u8 ; 2usize ] = b"l\0" ; pub const PRId8 : & 'static [ u8 ; 2usize ] = b"d\0" ; pub const PRId16 : & 'static [ u8 ; 2usize ] = b"d\0" ; pub const PRId32 : & 'static [ u8 ; 2usize ] = b"d\0" ; pub const PRId64 : & 'static [ u8 ; 3usize ] = b"ld\0" ; pub const PRIdLEAST8 : & 'static [ u8 ; 2usize ] = b"d\0" ; pub const PRIdLEAST16 : & 'static [ u8 ; 2usize ] = b"d\0" ; pub const PRIdLEAST32 : & 'static [ u8 ; 2usize ] = b"d\0" ; pub const PRIdLEAST64 : & 'static [ u8 ; 3usize ] = b"ld\0" ; pub const PRIdFAST8 : & 'static [ u8 ; 2usize ] = b"d\0" ; pub const PRIdFAST16 : & 'static [ u8 ; 3usize ] = b"ld\0" ; pub const PRIdFAST32 : & 'static [ u8 ; 3usize ] = b"ld\0" ; pub const PRIdFAST64 : & 'static [ u8 ; 3usize ] = b"ld\0" ; pub const PRIi8 : & 'static [ u8 ; 2usize ] = b"i\0" ; pub const PRIi16 : & 'static [ u8 ; 2usize ] = b"i\0" ; pub const PRIi32 : & 'static [ u8 ; 2usize ] = b"i\0" ; pub const PRIi64 : & 'static [ u8 ; 3usize ] = b"li\0" ; pub const PRIiLEAST8 : & 'static [ u8 ; 2usize ] = b"i\0" ; pub const PRIiLEAST16 : & 'static [ u8 ; 2usize ] = b"i\0" ; pub const PRIiLEAST32 : & 'static [ u8 ; 2usize ] = b"i\0" ; pub const PRIiLEAST64 : & 'static [ u8 ; 3usize ] = b"li\0" ; pub const PRIiFAST8 : & 'static [ u8 ; 2usize ] = b"i\0" ; pub const PRIiFAST16 : & 'static [ u8 ; 3usize ] = b"li\0" ; pub const PRIiFAST32 : & 'static [ u8 ; 3usize ] = b"li\0" ; pub const PRIiFAST64 : & 'static [ u8 ; 3usize ] = b"li\0" ; pub const PRIo8 : & 'static [ u8 ; 2usize ] = b"o\0" ; pub const PRIo16 : & 'static [ u8 ; 2usize ] = b"o\0" ; pub const PRIo32 : & 'static [ u8 ; 2usize ] = b"o\0" ; pub const PRIo64 : & 'static [ u8 ; 3usize ] = b"lo\0" ; pub const PRIoLEAST8 : & 'static [ u8 ; 2usize ] = b"o\0" ; pub const PRIoLEAST16 : & 'static [ u8 ; 2usize ] = b"o\0" ; pub const PRIoLEAST32 : & 'static [ u8 ; 2usize ] = b"o\0" ; pub const PRIoLEAST64 : & 'static [ u8 ; 3usize ] = b"lo\0" ; pub const PRIoFAST8 : & 'static [ u8 ; 2usize ] = b"o\0" ; pub const PRIoFAST16 : & 'static [ u8 ; 3usize ] = b"lo\0" ; pub const PRIoFAST32 : & 'static [ u8 ; 3usize ] = b"lo\0" ; pub const PRIoFAST64 : & 'static [ u8 ; 3usize ] = b"lo\0" ; pub const PRIu8 : & 'static [ u8 ; 2usize ] = b"u\0" ; pub const PRIu16 : & 'static [ u8 ; 2usize ] = b"u\0" ; pub const PRIu32 : & 'static [ u8 ; 2usize ] = b"u\0" ; pub const PRIu64 : & 'static [ u8 ; 3usize ] = b"lu\0" ; pub const PRIuLEAST8 : & 'static [ u8 ; 2usize ] = b"u\0" ; pub const PRIuLEAST16 : & 'static [ u8 ; 2usize ] = b"u\0" ; pub const PRIuLEAST32 : & 'static [ u8 ; 2usize ] = b"u\0" ; pub const PRIuLEAST64 : & 'static [ u8 ; 3usize ] = b"lu\0" ; pub const PRIuFAST8 : & 'static [ u8 ; 2usize ] = b"u\0" ; pub const PRIuFAST16 : & 'static [ u8 ; 3usize ] = b"lu\0" ; pub const PRIuFAST32 : & 'static [ u8 ; 3usize ] = b"lu\0" ; pub const PRIuFAST64 : & 'static [ u8 ; 3usize ] = b"lu\0" ; pub const PRIx8 : & 'static [ u8 ; 2usize ] = b"x\0" ; pub const PRIx16 : & 'static [ u8 ; 2usize ] = b"x\0" ; pub const PRIx32 : & 'static [ u8 ; 2usize ] = b"x\0" ; pub const PRIx64 : & 'static [ u8 ; 3usize ] = b"lx\0" ; pub const PRIxLEAST8 : & 'static [ u8 ; 2usize ] = b"x\0" ; pub const PRIxLEAST16 : & 'static [ u8 ; 2usize ] = b"x\0" ; pub const PRIxLEAST32 : & 'static [ u8 ; 2usize ] = b"x\0" ; pub const PRIxLEAST64 : & 'static [ u8 ; 3usize ] = b"lx\0" ; pub const PRIxFAST8 : & 'static [ u8 ; 2usize ] = b"x\0" ; pub const PRIxFAST16 : & 'static [ u8 ; 3usize ] = b"lx\0" ; pub const PRIxFAST32 : & 'static [ u8 ; 3usize ] = b"lx\0" ; pub const PRIxFAST64 : & 'static [ u8 ; 3usize ] = b"lx\0" ; pub const PRIX8 : & 'static [ u8 ; 2usize ] = b"X\0" ; pub const PRIX16 : & 'static [ u8 ; 2usize ] = b"X\0" ; pub const PRIX32 : & 'static [ u8 ; 2usize ] = b"X\0" ; pub const PRIX64 : & 'static [ u8 ; 3usize ] = b"lX\0" ; pub const PRIXLEAST8 : & 'static [ u8 ; 2usize ] = b"X\0" ; pub const PRIXLEAST16 : & 'static [ u8 ; 2usize ] = b"X\0" ; pub const PRIXLEAST32 : & 'static [ u8 ; 2usize ] = b"X\0" ; pub const PRIXLEAST64 : & 'static [ u8 ; 3usize ] = b"lX\0" ; pub const PRIXFAST8 : & 'static [ u8 ; 2usize ] = b"X\0" ; pub const PRIXFAST16 : & 'static [ u8 ; 3usize ] = b"lX\0" ; pub const PRIXFAST32 : & 'static [ u8 ; 3usize ] = b"lX\0" ; pub const PRIXFAST64 : & 'static [ u8 ; 3usize ] = b"lX\0" ; pub const PRIdMAX : & 'static [ u8 ; 3usize ] = b"ld\0" ; pub const PRIiMAX : & 'static [ u8 ; 3usize ] = b"li\0" ; pub const PRIoMAX : & 'static [ u8 ; 3usize ] = b"lo\0" ; pub const PRIuMAX : & 'static [ u8 ; 3usize ] = b"lu\0" ; pub const PRIxMAX : & 'static [ u8 ; 3usize ] = b"lx\0" ; pub const PRIXMAX : & 'static [ u8 ; 3usize ] = b"lX\0" ; pub const PRIdPTR : & 'static [ u8 ; 3usize ] = b"ld\0" ; pub const PRIiPTR : & 'static [ u8 ; 3usize ] = b"li\0" ; pub const PRIoPTR : & 'static [ u8 ; 3usize ] = b"lo\0" ; pub const PRIuPTR : & 'static [ u8 ; 3usize ] = b"lu\0" ; pub const PRIxPTR : & 'static [ u8 ; 3usize ] = b"lx\0" ; pub const PRIXPTR : & 'static [ u8 ; 3usize ] = b"lX\0" ; pub const SCNd8 : & 'static [ u8 ; 4usize ] = b"hhd\0" ; pub const SCNd16 : & 'static [ u8 ; 3usize ] = b"hd\0" ; pub const SCNd32 : & 'static [ u8 ; 2usize ] = b"d\0" ; pub const SCNd64 : & 'static [ u8 ; 3usize ] = b"ld\0" ; pub const SCNdLEAST8 : & 'static [ u8 ; 4usize ] = b"hhd\0" ; pub const SCNdLEAST16 : & 'static [ u8 ; 3usize ] = b"hd\0" ; pub const SCNdLEAST32 : & 'static [ u8 ; 2usize ] = b"d\0" ; pub const SCNdLEAST64 : & 'static [ u8 ; 3usize ] = b"ld\0" ; pub const SCNdFAST8 : & 'static [ u8 ; 4usize ] = b"hhd\0" ; pub const SCNdFAST16 : & 'static [ u8 ; 3usize ] = b"ld\0" ; pub const SCNdFAST32 : & 'static [ u8 ; 3usize ] = b"ld\0" ; pub const SCNdFAST64 : & 'static [ u8 ; 3usize ] = b"ld\0" ; pub const SCNi8 : & 'static [ u8 ; 4usize ] = b"hhi\0" ; pub const SCNi16 : & 'static [ u8 ; 3usize ] = b"hi\0" ; pub const SCNi32 : & 'static [ u8 ; 2usize ] = b"i\0" ; pub const SCNi64 : & 'static [ u8 ; 3usize ] = b"li\0" ; pub const SCNiLEAST8 : & 'static [ u8 ; 4usize ] = b"hhi\0" ; pub const SCNiLEAST16 : & 'static [ u8 ; 3usize ] = b"hi\0" ; pub const SCNiLEAST32 : & 'static [ u8 ; 2usize ] = b"i\0" ; pub const SCNiLEAST64 : & 'static [ u8 ; 3usize ] = b"li\0" ; pub const SCNiFAST8 : & 'static [ u8 ; 4usize ] = b"hhi\0" ; pub const SCNiFAST16 : & 'static [ u8 ; 3usize ] = b"li\0" ; pub const SCNiFAST32 : & 'static [ u8 ; 3usize ] = b"li\0" ; pub const SCNiFAST64 : & 'static [ u8 ; 3usize ] = b"li\0" ; pub const SCNu8 : & 'static [ u8 ; 4usize ] = b"hhu\0" ; pub const SCNu16 : & 'static [ u8 ; 3usize ] = b"hu\0" ; pub const SCNu32 : & 'static [ u8 ; 2usize ] = b"u\0" ; pub const SCNu64 : & 'static [ u8 ; 3usize ] = b"lu\0" ; pub const SCNuLEAST8 : & 'static [ u8 ; 4usize ] = b"hhu\0" ; pub const SCNuLEAST16 : & 'static [ u8 ; 3usize ] = b"hu\0" ; pub const SCNuLEAST32 : & 'static [ u8 ; 2usize ] = b"u\0" ; pub const SCNuLEAST64 : & 'static [ u8 ; 3usize ] = b"lu\0" ; pub const SCNuFAST8 : & 'static [ u8 ; 4usize ] = b"hhu\0" ; pub const SCNuFAST16 : & 'static [ u8 ; 3usize ] = b"lu\0" ; pub const SCNuFAST32 : & 'static [ u8 ; 3usize ] = b"lu\0" ; pub const SCNuFAST64 : & 'static [ u8 ; 3usize ] = b"lu\0" ; pub const SCNo8 : & 'static [ u8 ; 4usize ] = b"hho\0" ; pub const SCNo16 : & 'static [ u8 ; 3usize ] = b"ho\0" ; pub const SCNo32 : & 'static [ u8 ; 2usize ] = b"o\0" ; pub const SCNo64 : & 'static [ u8 ; 3usize ] = b"lo\0" ; pub const SCNoLEAST8 : & 'static [ u8 ; 4usize ] = b"hho\0" ; pub const SCNoLEAST16 : & 'static [ u8 ; 3usize ] = b"ho\0" ; pub const SCNoLEAST32 : & 'static [ u8 ; 2usize ] = b"o\0" ; pub const SCNoLEAST64 : & 'static [ u8 ; 3usize ] = b"lo\0" ; pub const SCNoFAST8 : & 'static [ u8 ; 4usize ] = b"hho\0" ; pub const SCNoFAST16 : & 'static [ u8 ; 3usize ] = b"lo\0" ; pub const SCNoFAST32 : & 'static [ u8 ; 3usize ] = b"lo\0" ; pub const SCNoFAST64 : & 'static [ u8 ; 3usize ] = b"lo\0" ; pub const SCNx8 : & 'static [ u8 ; 4usize ] = b"hhx\0" ; pub const SCNx16 : & 'static [ u8 ; 3usize ] = b"hx\0" ; pub const SCNx32 : & 'static [ u8 ; 2usize ] = b"x\0" ; pub const SCNx64 : & 'static [ u8 ; 3usize ] = b"lx\0" ; pub const SCNxLEAST8 : & 'static [ u8 ; 4usize ] = b"hhx\0" ; pub const SCNxLEAST16 : & 'static [ u8 ; 3usize ] = b"hx\0" ; pub const SCNxLEAST32 : & 'static [ u8 ; 2usize ] = b"x\0" ; pub const SCNxLEAST64 : & 'static [ u8 ; 3usize ] = b"lx\0" ; pub const SCNxFAST8 : & 'static [ u8 ; 4usize ] = b"hhx\0" ; pub const SCNxFAST16 : & 'static [ u8 ; 3usize ] = b"lx\0" ; pub const SCNxFAST32 : & 'static [ u8 ; 3usize ] = b"lx\0" ; pub const SCNxFAST64 : & 'static [ u8 ; 3usize ] = b"lx\0" ; pub const SCNdMAX : & 'static [ u8 ; 3usize ] = b"ld\0" ; pub const SCNiMAX : & 'static [ u8 ; 3usize ] = b"li\0" ; pub const SCNoMAX : & 'static [ u8 ; 3usize ] = b"lo\0" ; pub const SCNuMAX : & 'static [ u8 ; 3usize ] = b"lu\0" ; pub const SCNxMAX : & 'static [ u8 ; 3usize ] = b"lx\0" ; pub const SCNdPTR : & 'static [ u8 ; 3usize ] = b"ld\0" ; pub const SCNiPTR : & 'static [ u8 ; 3usize ] = b"li\0" ; pub const SCNoPTR : & 'static [ u8 ; 3usize ] = b"lo\0" ; pub const SCNuPTR : & 'static [ u8 ; 3usize ] = b"lu\0" ; pub const SCNxPTR : & 'static [ u8 ; 3usize ] = b"lx\0" ; pub const _ERRNO_H : u32 = 1 ; pub const _BITS_ERRNO_H : u32 = 1 ; pub const EPERM : u32 = 1 ; pub const ENOENT : u32 = 2 ; pub const ESRCH : u32 = 3 ; pub const EINTR : u32 = 4 ; pub const EIO : u32 = 5 ; pub const ENXIO : u32 = 6 ; pub const E2BIG : u32 = 7 ; pub const ENOEXEC : u32 = 8 ; pub const EBADF : u32 = 9 ; pub const ECHILD : u32 = 10 ; pub const EAGAIN : u32 = 11 ; pub const ENOMEM : u32 = 12 ; pub const EACCES : u32 = 13 ; pub const EFAULT : u32 = 14 ; pub const ENOTBLK : u32 = 15 ; pub const EBUSY : u32 = 16 ; pub const EEXIST : u32 = 17 ; pub const EXDEV : u32 = 18 ; pub const ENODEV : u32 = 19 ; pub const ENOTDIR : u32 = 20 ; pub const EISDIR : u32 = 21 ; pub const EINVAL : u32 = 22 ; pub const ENFILE : u32 = 23 ; pub const EMFILE : u32 = 24 ; pub const ENOTTY : u32 = 25 ; pub const ETXTBSY : u32 = 26 ; pub const EFBIG : u32 = 27 ; pub const ENOSPC : u32 = 28 ; pub const ESPIPE : u32 = 29 ; pub const EROFS : u32 = 30 ; pub const EMLINK : u32 = 31 ; pub const EPIPE : u32 = 32 ; pub const EDOM : u32 = 33 ; pub const ERANGE : u32 = 34 ; pub const EDEADLK : u32 = 35 ; pub const ENAMETOOLONG : u32 = 36 ; pub const ENOLCK : u32 = 37 ; pub const ENOSYS : u32 = 38 ; pub const ENOTEMPTY : u32 = 39 ; pub const ELOOP : u32 = 40 ; pub const EWOULDBLOCK : u32 = 11 ; pub const ENOMSG : u32 = 42 ; pub const EIDRM : u32 = 43 ; pub const ECHRNG : u32 = 44 ; pub const EL2NSYNC : u32 = 45 ; pub const EL3HLT : u32 = 46 ; pub const EL3RST : u32 = 47 ; pub const ELNRNG : u32 = 48 ; pub const EUNATCH : u32 = 49 ; pub const ENOCSI : u32 = 50 ; pub const EL2HLT : u32 = 51 ; pub const EBADE : u32 = 52 ; pub const EBADR : u32 = 53 ; pub const EXFULL : u32 = 54 ; pub const ENOANO : u32 = 55 ; pub const EBADRQC : u32 = 56 ; pub const EBADSLT : u32 = 57 ; pub const EDEADLOCK : u32 = 35 ; pub const EBFONT : u32 = 59 ; pub const ENOSTR : u32 = 60 ; pub const ENODATA : u32 = 61 ; pub const ETIME : u32 = 62 ; pub const ENOSR : u32 = 63 ; pub const ENONET : u32 = 64 ; pub const ENOPKG : u32 = 65 ; pub const EREMOTE : u32 = 66 ; pub const ENOLINK : u32 = 67 ; pub const EADV : u32 = 68 ; pub const ESRMNT : u32 = 69 ; pub const ECOMM : u32 = 70 ; pub const EPROTO : u32 = 71 ; pub const EMULTIHOP : u32 = 72 ; pub const EDOTDOT : u32 = 73 ; pub const EBADMSG : u32 = 74 ; pub const EOVERFLOW : u32 = 75 ; pub const ENOTUNIQ : u32 = 76 ; pub const EBADFD : u32 = 77 ; pub const EREMCHG : u32 = 78 ; pub const ELIBACC : u32 = 79 ; pub const ELIBBAD : u32 = 80 ; pub const ELIBSCN : u32 = 81 ; pub const ELIBMAX : u32 = 82 ; pub const ELIBEXEC : u32 = 83 ; pub const EILSEQ : u32 = 84 ; pub const ERESTART : u32 = 85 ; pub const ESTRPIPE : u32 = 86 ; pub const EUSERS : u32 = 87 ; pub const ENOTSOCK : u32 = 88 ; pub const EDESTADDRREQ : u32 = 89 ; pub const EMSGSIZE : u32 = 90 ; pub const EPROTOTYPE : u32 = 91 ; pub const ENOPROTOOPT : u32 = 92 ; pub const EPROTONOSUPPORT : u32 = 93 ; pub const ESOCKTNOSUPPORT : u32 = 94 ; pub const EOPNOTSUPP : u32 = 95 ; pub const EPFNOSUPPORT : u32 = 96 ; pub const EAFNOSUPPORT : u32 = 97 ; pub const EADDRINUSE : u32 = 98 ; pub const EADDRNOTAVAIL : u32 = 99 ; pub const ENETDOWN : u32 = 100 ; pub const ENETUNREACH : u32 = 101 ; pub const ENETRESET : u32 = 102 ; pub const ECONNABORTED : u32 = 103 ; pub const ECONNRESET : u32 = 104 ; pub const ENOBUFS : u32 = 105 ; pub const EISCONN : u32 = 106 ; pub const ENOTCONN : u32 = 107 ; pub const ESHUTDOWN : u32 = 108 ; pub const ETOOMANYREFS : u32 = 109 ; pub const ETIMEDOUT : u32 = 110 ; pub const ECONNREFUSED : u32 = 111 ; pub const EHOSTDOWN : u32 = 112 ; pub const EHOSTUNREACH : u32 = 113 ; pub const EALREADY : u32 = 114 ; pub const EINPROGRESS : u32 = 115 ; pub const ESTALE : u32 = 116 ; pub const EUCLEAN : u32 = 117 ; pub const ENOTNAM : u32 = 118 ; pub const ENAVAIL : u32 = 119 ; pub const EISNAM : u32 = 120 ; pub const EREMOTEIO : u32 = 121 ; pub const EDQUOT : u32 = 122 ; pub const ENOMEDIUM : u32 = 123 ; pub const EMEDIUMTYPE : u32 = 124 ; pub const ECANCELED : u32 = 125 ; pub const ENOKEY : u32 = 126 ; pub const EKEYEXPIRED : u32 = 127 ; pub const EKEYREVOKED : u32 = 128 ; pub const EKEYREJECTED : u32 = 129 ; pub const EOWNERDEAD : u32 = 130 ; pub const ENOTRECOVERABLE : u32 = 131 ; pub const ERFKILL : u32 = 132 ; pub const EHWPOISON : u32 = 133 ; pub const ENOTSUP : u32 = 95 ; pub const _SYS_TYPES_H : u32 = 1 ; pub const __clock_t_defined : u32 = 1 ; pub const __clockid_t_defined : u32 = 1 ; pub const __time_t_defined : u32 = 1 ; pub const __timer_t_defined : u32 = 1 ; pub const __BIT_TYPES_DEFINED__ : u32 = 1 ; pub const _ENDIAN_H : u32 = 1 ; pub const __LITTLE_ENDIAN : u32 = 1234 ; pub const __BIG_ENDIAN : u32 = 4321 ; pub const __PDP_ENDIAN : u32 = 3412 ; pub const __BYTE_ORDER : u32 = 1234 ; pub const __FLOAT_WORD_ORDER : u32 = 1234 ; pub const LITTLE_ENDIAN : u32 = 1234 ; pub const BIG_ENDIAN : u32 = 4321 ; pub const PDP_ENDIAN : u32 = 3412 ; pub const BYTE_ORDER : u32 = 1234 ; pub const _BITS_BYTESWAP_H : u32 = 1 ; pub const _BITS_UINTN_IDENTITY_H : u32 = 1 ; pub const _SYS_SELECT_H : u32 = 1 ; pub const __FD_ZERO_STOS : & 'static [ u8 ; 6usize ] = b"stosq\0" ; pub const __sigset_t_defined : u32 = 1 ; pub const __timeval_defined : u32 = 1 ; pub const __timespec_defined : u32 = 1 ; pub const FD_SETSIZE : u32 = 1024 ; pub const _SYS_SYSMACROS_H : u32 = 1 ; pub const _BITS_SYSMACROS_H : u32 = 1 ; pub const _BITS_PTHREADTYPES_COMMON_H : u32 = 1 ; pub const _THREAD_SHARED_TYPES_H : u32 = 1 ; pub const _BITS_PTHREADTYPES_ARCH_H : u32 = 1 ; pub const __SIZEOF_PTHREAD_MUTEX_T : u32 = 40 ; pub const __SIZEOF_PTHREAD_ATTR_T : u32 = 56 ; pub const __SIZEOF_PTHREAD_RWLOCK_T : u32 = 56 ; pub const __SIZEOF_PTHREAD_BARRIER_T : u32 = 32 ; pub const __SIZEOF_PTHREAD_MUTEXATTR_T : u32 = 4 ; pub const __SIZEOF_PTHREAD_COND_T : u32 = 48 ; pub const __SIZEOF_PTHREAD_CONDATTR_T : u32 = 4 ; pub const __SIZEOF_PTHREAD_RWLOCKATTR_T : u32 = 8 ; pub const __SIZEOF_PTHREAD_BARRIERATTR_T : u32 = 4 ; pub const __PTHREAD_MUTEX_LOCK_ELISION : u32 = 1 ; pub const __PTHREAD_MUTEX_NUSERS_AFTER_KIND : u32 = 0 ; pub const __PTHREAD_MUTEX_USE_UNION : u32 = 0 ; pub const __PTHREAD_RWLOCK_INT_FLAGS_SHARED : u32 = 1 ; pub const __PTHREAD_MUTEX_HAVE_PREV : u32 = 1 ; pub const __have_pthread_attr_t : u32 = 1 ; pub const SCCONF_BOOLEAN : u32 = 11 ; pub const SCCONF_INTEGER : u32 = 12 ; pub const SCCONF_STRING : u32 = 13 ; pub const SCCONF_ITEM_TYPE_COMMENT : u32 = 0 ; pub const SCCONF_ITEM_TYPE_BLOCK : u32 = 1 ; pub const SCCONF_ITEM_TYPE_VALUE : u32 = 2 ; pub const SC_SUCCESS : u32 = 0 ; pub const SC_ERROR_READER : i32 = -1100 ; pub const SC_ERROR_NO_READERS_FOUND : i32 = -1101 ; pub const SC_ERROR_CARD_NOT_PRESENT : i32 = -1104 ; pub const SC_ERROR_CARD_REMOVED : i32 = -1105 ; pub const SC_ERROR_CARD_RESET : i32 = -1106 ; pub const SC_ERROR_TRANSMIT_FAILED : i32 = -1107 ; pub const SC_ERROR_KEYPAD_TIMEOUT : i32 = -1108 ; pub const SC_ERROR_KEYPAD_CANCELLED : i32 = -1109 ; pub const SC_ERROR_KEYPAD_PIN_MISMATCH : i32 = -1110 ; pub const SC_ERROR_KEYPAD_MSG_TOO_LONG : i32 = -1111 ; pub const SC_ERROR_EVENT_TIMEOUT : i32 = -1112 ; pub const SC_ERROR_CARD_UNRESPONSIVE : i32 = -1113 ; pub const SC_ERROR_READER_DETACHED : i32 = -1114 ; pub const SC_ERROR_READER_REATTACHED : i32 = -1115 ; pub const SC_ERROR_READER_LOCKED : i32 = -1116 ; pub const SC_ERROR_CARD_CMD_FAILED : i32 = -1200 ; pub const SC_ERROR_FILE_NOT_FOUND : i32 = -1201 ; pub const SC_ERROR_RECORD_NOT_FOUND : i32 = -1202 ; pub const SC_ERROR_CLASS_NOT_SUPPORTED : i32 = -1203 ; pub const SC_ERROR_INS_NOT_SUPPORTED : i32 = -1204 ; pub const SC_ERROR_INCORRECT_PARAMETERS : i32 = -1205 ; pub const SC_ERROR_WRONG_LENGTH : i32 = -1206 ; pub const SC_ERROR_MEMORY_FAILURE : i32 = -1207 ; pub const SC_ERROR_NO_CARD_SUPPORT : i32 = -1208 ; pub const SC_ERROR_NOT_ALLOWED : i32 = -1209 ; pub const SC_ERROR_INVALID_CARD : i32 = -1210 ; pub const SC_ERROR_SECURITY_STATUS_NOT_SATISFIED : i32 = -1211 ; pub const SC_ERROR_AUTH_METHOD_BLOCKED : i32 = -1212 ; pub const SC_ERROR_UNKNOWN_DATA_RECEIVED : i32 = -1213 ; pub const SC_ERROR_PIN_CODE_INCORRECT : i32 = -1214 ; pub const SC_ERROR_FILE_ALREADY_EXISTS : i32 = -1215 ; pub const SC_ERROR_DATA_OBJECT_NOT_FOUND : i32 = -1216 ; pub const SC_ERROR_NOT_ENOUGH_MEMORY : i32 = -1217 ; pub const SC_ERROR_CORRUPTED_DATA : i32 = -1218 ; pub const SC_ERROR_FILE_END_REACHED : i32 = -1219 ; pub const SC_ERROR_REF_DATA_NOT_USABLE : i32 = -1220 ; pub const SC_ERROR_INVALID_ARGUMENTS : i32 = -1300 ; pub const SC_ERROR_BUFFER_TOO_SMALL : i32 = -1303 ; pub const SC_ERROR_INVALID_PIN_LENGTH : i32 = -1304 ; pub const SC_ERROR_INVALID_DATA : i32 = -1305 ; pub const SC_ERROR_INTERNAL : i32 = -1400 ; pub const SC_ERROR_INVALID_ASN1_OBJECT : i32 = -1401 ; pub const SC_ERROR_ASN1_OBJECT_NOT_FOUND : i32 = -1402 ; pub const SC_ERROR_ASN1_END_OF_CONTENTS : i32 = -1403 ; pub const SC_ERROR_OUT_OF_MEMORY : i32 = -1404 ; pub const SC_ERROR_TOO_MANY_OBJECTS : i32 = -1405 ; pub const SC_ERROR_OBJECT_NOT_VALID : i32 = -1406 ; pub const SC_ERROR_OBJECT_NOT_FOUND : i32 = -1407 ; pub const SC_ERROR_NOT_SUPPORTED : i32 = -1408 ; pub const SC_ERROR_PASSPHRASE_REQUIRED : i32 = -1409 ; pub const SC_ERROR_INCONSISTENT_CONFIGURATION : i32 = -1410 ; pub const SC_ERROR_DECRYPT_FAILED : i32 = -1411 ; pub const SC_ERROR_WRONG_PADDING : i32 = -1412 ; pub const SC_ERROR_WRONG_CARD : i32 = -1413 ; pub const SC_ERROR_CANNOT_LOAD_MODULE : i32 = -1414 ; pub const SC_ERROR_OFFSET_TOO_LARGE : i32 = -1415 ; pub const SC_ERROR_NOT_IMPLEMENTED : i32 = -1416 ; pub const SC_ERROR_INVALID_TLV_OBJECT : i32 = -1417 ; pub const SC_ERROR_TLV_END_OF_CONTENTS : i32 = -1418 ; pub const SC_ERROR_PKCS15INIT : i32 = -1500 ; pub const SC_ERROR_SYNTAX_ERROR : i32 = -1501 ; pub const SC_ERROR_INCONSISTENT_PROFILE : i32 = -1502 ; pub const SC_ERROR_INCOMPATIBLE_KEY : i32 = -1503 ; pub const SC_ERROR_NO_DEFAULT_KEY : i32 = -1504 ; pub const SC_ERROR_NON_UNIQUE_ID : i32 = -1505 ; pub const SC_ERROR_CANNOT_LOAD_KEY : i32 = -1506 ; pub const SC_ERROR_TEMPLATE_NOT_FOUND : i32 = -1508 ; pub const SC_ERROR_INVALID_PIN_REFERENCE : i32 = -1509 ; pub const SC_ERROR_FILE_TOO_SMALL : i32 = -1510 ; pub const SC_ERROR_SM : i32 = -1600 ; pub const SC_ERROR_SM_ENCRYPT_FAILED : i32 = -1601 ; pub const SC_ERROR_SM_INVALID_LEVEL : i32 = -1602 ; pub const SC_ERROR_SM_NO_SESSION_KEYS : i32 = -1603 ; pub const SC_ERROR_SM_INVALID_SESSION_KEY : i32 = -1604 ; pub const SC_ERROR_SM_NOT_INITIALIZED : i32 = -1605 ; pub const SC_ERROR_SM_AUTHENTICATION_FAILED : i32 = -1606 ; pub const SC_ERROR_SM_RAND_FAILED : i32 = -1607 ; pub const SC_ERROR_SM_KEYSET_NOT_FOUND : i32 = -1608 ; pub const SC_ERROR_SM_IFD_DATA_MISSING : i32 = -1609 ; pub const SC_ERROR_SM_NOT_APPLIED : i32 = -1610 ; pub const SC_ERROR_SM_SESSION_ALREADY_ACTIVE : i32 = -1611 ; pub const SC_ERROR_SM_INVALID_CHECKSUM : i32 = -1612 ; pub const SC_ERROR_UNKNOWN : i32 = -1900 ; pub const SC_ERROR_PKCS15_APP_NOT_FOUND : i32 = -1901 ; pub const SC_MAX_CARD_DRIVERS : u32 = 48 ; pub const SC_MAX_CARD_DRIVER_SNAME_SIZE : u32 = 16 ; pub const SC_MAX_CARD_APPS : u32 = 8 ; pub const SC_MAX_APDU_BUFFER_SIZE : u32 = 261 ; pub const SC_MAX_APDU_DATA_SIZE : u32 = 255 ; pub const SC_MAX_APDU_RESP_SIZE : u32 = 256 ; pub const SC_MAX_EXT_APDU_BUFFER_SIZE : u32 = 65538 ; pub const SC_MAX_EXT_APDU_DATA_SIZE : u32 = 65535 ; pub const SC_MAX_EXT_APDU_RESP_SIZE : u32 = 65536 ; pub const SC_MAX_PIN_SIZE : u32 = 256 ; pub const SC_MAX_ATR_SIZE : u32 = 33 ; pub const SC_MAX_UID_SIZE : u32 = 10 ; pub const SC_MAX_AID_SIZE : u32 = 16 ; pub const SC_MAX_AID_STRING_SIZE : u32 = 35 ; pub const SC_MAX_IIN_SIZE : u32 = 10 ; pub const SC_MAX_OBJECT_ID_OCTETS : u32 = 16 ; pub const SC_MAX_PATH_SIZE : u32 = 16 ; pub const SC_MAX_PATH_STRING_SIZE : u32 = 35 ; pub const SC_MAX_SDO_ACLS : u32 = 8 ; pub const SC_MAX_CRTS_IN_SE : u32 = 12 ; pub const SC_MAX_SE_NUM : u32 = 8 ; pub const SC_MAX_SUPPORTED_ALGORITHMS : u32 = 8 ; pub const SC_PATH_TYPE_FILE_ID : u32 = 0 ; pub const SC_PATH_TYPE_DF_NAME : u32 = 1 ; pub const SC_PATH_TYPE_PATH : u32 = 2 ; pub const SC_PATH_TYPE_PATH_PROT : u32 = 3 ; pub const SC_PATH_TYPE_FROM_CURRENT : u32 = 4 ; pub const SC_PATH_TYPE_PARENT : u32 = 5 ; pub const SC_AC_NONE : u32 = 0 ; pub const SC_AC_CHV : u32 = 1 ; pub const SC_AC_TERM : u32 = 2 ; pub const SC_AC_PRO : u32 = 4 ; pub const SC_AC_AUT : u32 = 8 ; pub const SC_AC_SYMBOLIC : u32 = 16 ; pub const SC_AC_SEN : u32 = 32 ; pub const SC_AC_SCB : u32 = 64 ; pub const SC_AC_IDA : u32 = 128 ; pub const SC_AC_SESSION : u32 = 256 ; pub const SC_AC_CONTEXT_SPECIFIC : u32 = 512 ; pub const SC_AC_UNKNOWN : u32 = 4294967294 ; pub const SC_AC_NEVER : u32 = 4294967295 ; pub const SC_AC_OP_SELECT : u32 = 0 ; pub const SC_AC_OP_LOCK : u32 = 1 ; pub const SC_AC_OP_DELETE : u32 = 2 ; pub const SC_AC_OP_CREATE : u32 = 3 ; pub const SC_AC_OP_REHABILITATE : u32 = 4 ; pub const SC_AC_OP_INVALIDATE : u32 = 5 ; pub const SC_AC_OP_LIST_FILES : u32 = 6 ; pub const SC_AC_OP_CRYPTO : u32 = 7 ; pub const SC_AC_OP_DELETE_SELF : u32 = 8 ; pub const SC_AC_OP_PSO_DECRYPT : u32 = 9 ; pub const SC_AC_OP_PSO_ENCRYPT : u32 = 10 ; pub const SC_AC_OP_PSO_COMPUTE_SIGNATURE : u32 = 11 ; pub const SC_AC_OP_PSO_VERIFY_SIGNATURE : u32 = 12 ; pub const SC_AC_OP_PSO_COMPUTE_CHECKSUM : u32 = 13 ; pub const SC_AC_OP_PSO_VERIFY_CHECKSUM : u32 = 14 ; pub const SC_AC_OP_INTERNAL_AUTHENTICATE : u32 = 15 ; pub const SC_AC_OP_EXTERNAL_AUTHENTICATE : u32 = 16 ; pub const SC_AC_OP_PIN_DEFINE : u32 = 17 ; pub const SC_AC_OP_PIN_CHANGE : u32 = 18 ; pub const SC_AC_OP_PIN_RESET : u32 = 19 ; pub const SC_AC_OP_ACTIVATE : u32 = 20 ; pub const SC_AC_OP_DEACTIVATE : u32 = 21 ; pub const SC_AC_OP_READ : u32 = 22 ; pub const SC_AC_OP_UPDATE : u32 = 23 ; pub const SC_AC_OP_WRITE : u32 = 24 ; pub const SC_AC_OP_RESIZE : u32 = 25 ; pub const SC_AC_OP_GENERATE : u32 = 26 ; pub const SC_AC_OP_CREATE_EF : u32 = 27 ; pub const SC_AC_OP_CREATE_DF : u32 = 28 ; pub const SC_AC_OP_ADMIN : u32 = 29 ; pub const SC_AC_OP_PIN_USE : u32 = 30 ; pub const SC_MAX_AC_OPS : u32 = 31 ; pub const SC_AC_OP_ERASE : u32 = 2 ; pub const SC_AC_KEY_REF_NONE : u32 = 4294967295 ; pub const SC_FILE_TYPE_DF : u32 = 4 ; pub const SC_FILE_TYPE_INTERNAL_EF : u32 = 3 ; pub const SC_FILE_TYPE_WORKING_EF : u32 = 1 ; pub const SC_FILE_TYPE_BSO : u32 = 16 ; pub const SC_FILE_EF_UNKNOWN : u32 = 0 ; pub const SC_FILE_EF_TRANSPARENT : u32 = 1 ; pub const SC_FILE_EF_LINEAR_FIXED : u32 = 2 ; pub const SC_FILE_EF_LINEAR_FIXED_TLV : u32 = 3 ; pub const SC_FILE_EF_LINEAR_VARIABLE : u32 = 4 ; pub const SC_FILE_EF_LINEAR_VARIABLE_TLV : u32 = 5 ; pub const SC_FILE_EF_CYCLIC : u32 = 6 ; pub const SC_FILE_EF_CYCLIC_TLV : u32 = 7 ; pub const SC_FILE_STATUS_ACTIVATED : u32 = 0 ; pub const SC_FILE_STATUS_INVALIDATED : u32 = 1 ; pub const SC_FILE_STATUS_CREATION : u32 = 2 ; pub const SC_APDU_CASE_NONE : u32 = 0 ; pub const SC_APDU_CASE_1 : u32 = 1 ; pub const SC_APDU_CASE_2_SHORT : u32 = 2 ; pub const SC_APDU_CASE_3_SHORT : u32 = 3 ; pub const SC_APDU_CASE_4_SHORT : u32 = 4 ; pub const SC_APDU_SHORT_MASK : u32 = 15 ; pub const SC_APDU_EXT : u32 = 16 ; pub const SC_APDU_CASE_2_EXT : u32 = 18 ; pub const SC_APDU_CASE_3_EXT : u32 = 19 ; pub const SC_APDU_CASE_4_EXT : u32 = 20 ; pub const SC_APDU_CASE_2 : u32 = 34 ; pub const SC_APDU_CASE_3 : u32 = 35 ; pub const SC_APDU_CASE_4 : u32 = 36 ; pub const SC_APDU_FLAGS_CHAINING : u32 = 1 ; pub const SC_APDU_FLAGS_NO_GET_RESP : u32 = 2 ; pub const SC_APDU_FLAGS_NO_RETRY_WL : u32 = 4 ; pub const SC_APDU_FLAGS_NO_SM : u32 = 8 ; pub const SC_APDU_ALLOCATE_FLAG : u32 = 1 ; pub const SC_APDU_ALLOCATE_FLAG_DATA : u32 = 2 ; pub const SC_APDU_ALLOCATE_FLAG_RESP : u32 = 4 ; pub const SC_CPLC_TAG : u32 = 40831 ; pub const SC_CPLC_DER_SIZE : u32 = 45 ; pub const SC_MAX_SERIALNR : u32 = 32 ; pub const SC_REMOTE_APDU_FLAG_NOT_FATAL : u32 = 1 ; pub const SC_REMOTE_APDU_FLAG_RETURN_ANSWER : u32 = 2 ; pub const SM_TYPE_GP_SCP01 : u32 = 256 ; pub const SM_TYPE_CWA14890 : u32 = 1024 ; pub const SM_TYPE_DH_RSA : u32 = 1280 ; pub const SM_MODE_NONE : u32 = 0 ; pub const SM_MODE_ACL : u32 = 256 ; pub const SM_MODE_TRANSMIT : u32 = 512 ; pub const SM_CMD_INITIALIZE : u32 = 16 ; pub const SM_CMD_MUTUAL_AUTHENTICATION : u32 = 32 ; pub const SM_CMD_RSA : u32 = 256 ; pub const SM_CMD_RSA_GENERATE : u32 = 257 ; pub const SM_CMD_RSA_UPDATE : u32 = 258 ; pub const SM_CMD_RSA_READ_PUBLIC : u32 = 259 ; pub const SM_CMD_FILE : u32 = 512 ; pub const SM_CMD_FILE_READ : u32 = 513 ; pub const SM_CMD_FILE_UPDATE : u32 = 514 ; pub const SM_CMD_FILE_CREATE : u32 = 515 ; pub const SM_CMD_FILE_DELETE : u32 = 516 ; pub const SM_CMD_PIN : u32 = 768 ; pub const SM_CMD_PIN_VERIFY : u32 = 769 ; pub const SM_CMD_PIN_RESET : u32 = 770 ; pub const SM_CMD_PIN_SET_PIN : u32 = 771 ; pub const SM_CMD_PSO : u32 = 1024 ; pub const SM_CMD_PSO_DST : u32 = 1025 ; pub const SM_CMD_APDU : u32 = 1280 ; pub const SM_CMD_APDU_TRANSMIT : u32 = 1281 ; pub const SM_CMD_APDU_RAW : u32 = 1282 ; pub const SM_CMD_APPLET : u32 = 1536 ; pub const SM_CMD_APPLET_DELETE : u32 = 1537 ; pub const SM_CMD_APPLET_LOAD : u32 = 1538 ; pub const SM_CMD_APPLET_INSTALL : u32 = 1539 ; pub const SM_CMD_EXTERNAL_AUTH : u32 = 1792 ; pub const SM_CMD_EXTERNAL_AUTH_INIT : u32 = 1793 ; pub const SM_CMD_EXTERNAL_AUTH_CHALLENGE : u32 = 1794 ; pub const SM_CMD_EXTERNAL_AUTH_DOIT : u32 = 1795 ; pub const SM_CMD_SDO_UPDATE : u32 = 2048 ; pub const SM_CMD_FINALIZE : u32 = 2304 ; pub const SM_RESPONSE_CONTEXT_TAG : u32 = 161 ; pub const SM_RESPONSE_CONTEXT_DATA_TAG : u32 = 162 ; pub const SM_MAX_DATA_SIZE : u32 = 224 ; pub const SM_SMALL_CHALLENGE_LEN : u32 = 8 ; pub const SM_GP_SECURITY_NO : u32 = 0 ; pub const SM_GP_SECURITY_MAC : u32 = 1 ; pub const SM_GP_SECURITY_ENC : u32 = 3 ; pub const SC_FORMAT_LEN_SIZE_T : & 'static [ u8 ; 2usize ] = b"z\0" ; pub const SC_FORMAT_LEN_PTRDIFF_T : & 'static [ u8 ; 2usize ] = b"t\0" ; pub const SC_SEC_OPERATION_DECIPHER : u32 = 1 ; pub const SC_SEC_OPERATION_SIGN : u32 = 2 ; pub const SC_SEC_OPERATION_AUTHENTICATE : u32 = 3 ; pub const SC_SEC_OPERATION_DERIVE : u32 = 4 ; pub const SC_SEC_OPERATION_WRAP : u32 = 5 ; pub const SC_SEC_OPERATION_UNWRAP : u32 = 6 ; pub const SC_SEC_ENV_ALG_REF_PRESENT : u32 = 1 ; pub const SC_SEC_ENV_FILE_REF_PRESENT : u32 = 2 ; pub const SC_SEC_ENV_KEY_REF_PRESENT : u32 = 4 ; pub const SC_SEC_ENV_KEY_REF_SYMMETRIC : u32 = 8 ; pub const SC_SEC_ENV_ALG_PRESENT : u32 = 16 ; pub const SC_SEC_ENV_TARGET_FILE_REF_PRESENT : u32 = 32 ; pub const SC_SEC_ENV_MAX_PARAMS : u32 = 10 ; pub const SC_SEC_ENV_PARAM_IV : u32 = 1 ; pub const SC_SEC_ENV_PARAM_TARGET_FILE : u32 = 2 ; pub const SC_ALGORITHM_RSA : u32 = 0 ; pub const SC_ALGORITHM_DSA : u32 = 1 ; pub const SC_ALGORITHM_EC : u32 = 2 ; pub const SC_ALGORITHM_GOSTR3410 : u32 = 3 ; pub const SC_ALGORITHM_DES : u32 = 64 ; pub const SC_ALGORITHM_3DES : u32 = 65 ; pub const SC_ALGORITHM_GOST : u32 = 66 ; pub const SC_ALGORITHM_AES : u32 = 67 ; pub const SC_ALGORITHM_UNDEFINED : u32 = 68 ; pub const SC_ALGORITHM_MD5 : u32 = 128 ; pub const SC_ALGORITHM_SHA1 : u32 = 129 ; pub const SC_ALGORITHM_GOSTR3411 : u32 = 130 ; pub const SC_ALGORITHM_PBKDF2 : u32 = 192 ; pub const SC_ALGORITHM_PBES2 : u32 = 256 ; pub const SC_ALGORITHM_ONBOARD_KEY_GEN : u32 = 2147483648 ; pub const SC_ALGORITHM_NEED_USAGE : u32 = 1073741824 ; pub const SC_ALGORITHM_SPECIFIC_FLAGS : u32 = 2097151 ; pub const SC_ALGORITHM_RSA_RAW : u32 = 1 ; pub const SC_ALGORITHM_RSA_PADS : u32 = 31 ; pub const SC_ALGORITHM_RSA_PAD_NONE : u32 = 1 ; pub const SC_ALGORITHM_RSA_PAD_PKCS1 : u32 = 2 ; pub const SC_ALGORITHM_RSA_PAD_ANSI : u32 = 4 ; pub const SC_ALGORITHM_RSA_PAD_ISO9796 : u32 = 8 ; pub const SC_ALGORITHM_RSA_PAD_PSS : u32 = 16 ; pub const SC_ALGORITHM_RSA_HASH_NONE : u32 = 256 ; pub const SC_ALGORITHM_RSA_HASH_SHA1 : u32 = 512 ; pub const SC_ALGORITHM_RSA_HASH_MD5 : u32 = 1024 ; pub const SC_ALGORITHM_RSA_HASH_MD5_SHA1 : u32 = 2048 ; pub const SC_ALGORITHM_RSA_HASH_RIPEMD160 : u32 = 4096 ; pub const SC_ALGORITHM_RSA_HASH_SHA256 : u32 = 8192 ; pub const SC_ALGORITHM_RSA_HASH_SHA384 : u32 = 16384 ; pub const SC_ALGORITHM_RSA_HASH_SHA512 : u32 = 32768 ; pub const SC_ALGORITHM_RSA_HASH_SHA224 : u32 = 65536 ; pub const SC_ALGORITHM_RSA_HASHES : u32 = 130816 ; pub const SC_ALGORITHM_MGF1_SHA1 : u32 = 1048576 ; pub const SC_ALGORITHM_MGF1_SHA256 : u32 = 2097152 ; pub const SC_ALGORITHM_MGF1_SHA384 : u32 = 4194304 ; pub const SC_ALGORITHM_MGF1_SHA512 : u32 = 8388608 ; pub const SC_ALGORITHM_MGF1_SHA224 : u32 = 16777216 ; pub const SC_ALGORITHM_MGF1_HASHES : u32 = 32505856 ; pub const SC_ALGORITHM_GOSTR3410_RAW : u32 = 131072 ; pub const SC_ALGORITHM_GOSTR3410_HASH_NONE : u32 = 131072 ; pub const SC_ALGORITHM_GOSTR3410_HASH_GOSTR3411 : u32 = 524288 ; pub const SC_ALGORITHM_GOSTR3410_HASHES : u32 = 655360 ; pub const SC_ALGORITHM_ECDH_CDH_RAW : u32 = 2097152 ; pub const SC_ALGORITHM_ECDSA_RAW : u32 = 1048576 ; pub const SC_ALGORITHM_ECDSA_HASH_NONE : u32 = 256 ; pub const SC_ALGORITHM_ECDSA_HASH_SHA1 : u32 = 512 ; pub const SC_ALGORITHM_ECDSA_HASH_SHA224 : u32 = 65536 ; pub const SC_ALGORITHM_ECDSA_HASH_SHA256 : u32 = 8192 ; pub const SC_ALGORITHM_ECDSA_HASH_SHA384 : u32 = 16384 ; pub const SC_ALGORITHM_ECDSA_HASH_SHA512 : u32 = 32768 ; pub const SC_ALGORITHM_ECDSA_HASHES : u32 = 123392 ; pub const SC_ALGORITHM_RAW_MASK : u32 = 3276801 ; pub const SC_ALGORITHM_EXT_EC_F_P : u32 = 1 ; pub const SC_ALGORITHM_EXT_EC_F_2M : u32 = 2 ; pub const SC_ALGORITHM_EXT_EC_ECPARAMETERS : u32 = 4 ; pub const SC_ALGORITHM_EXT_EC_NAMEDCURVE : u32 = 8 ; pub const SC_ALGORITHM_EXT_EC_UNCOMPRESES : u32 = 16 ; pub const SC_ALGORITHM_EXT_EC_COMPRESS : u32 = 32 ; pub const SC_ALGORITHM_AES_ECB : u32 = 16777216 ; pub const SC_ALGORITHM_AES_CBC : u32 = 33554432 ; pub const SC_ALGORITHM_AES_CBC_PAD : u32 = 67108864 ; pub const SC_ALGORITHM_AES_FLAGS : u32 = 251658240 ; pub const SC_EVENT_CARD_INSERTED : u32 = 1 ; pub const SC_EVENT_CARD_REMOVED : u32 = 2 ; pub const SC_EVENT_CARD_EVENTS : u32 = 3 ; pub const SC_EVENT_READER_ATTACHED : u32 = 4 ; pub const SC_EVENT_READER_DETACHED : u32 = 8 ; pub const SC_EVENT_READER_EVENTS : u32 = 12 ; pub const MAX_FILE_SIZE : u32 = 65535 ; pub const SC_PROTO_T0 : u32 = 1 ; pub const SC_PROTO_T1 : u32 = 2 ; pub const SC_PROTO_RAW : u32 = 4096 ; pub const SC_PROTO_ANY : u32 = 4294967295 ; pub const SC_READER_CARD_PRESENT : u32 = 1 ; pub const SC_READER_CARD_CHANGED : u32 = 2 ; pub const SC_READER_CARD_INUSE : u32 = 4 ; pub const SC_READER_CARD_EXCLUSIVE : u32 = 8 ; pub const SC_READER_HAS_WAITING_AREA : u32 = 16 ; pub const SC_READER_REMOVED : u32 = 32 ; pub const SC_READER_ENABLE_ESCAPE : u32 = 64 ; pub const SC_READER_CAP_DISPLAY : u32 = 1 ; pub const SC_READER_CAP_PIN_PAD : u32 = 2 ; pub const SC_READER_CAP_PACE_EID : u32 = 4 ; pub const SC_READER_CAP_PACE_ESIGN : u32 = 8 ; pub const SC_READER_CAP_PACE_DESTROY_CHANNEL : u32 = 16 ; pub const SC_READER_CAP_PACE_GENERIC : u32 = 32 ; pub const SC_READER_SHORT_APDU_MAX_SEND_SIZE : u32 = 255 ; pub const SC_READER_SHORT_APDU_MAX_RECV_SIZE : u32 = 256 ; pub const SC_PIN_CMD_VERIFY : u32 = 0 ; pub const SC_PIN_CMD_CHANGE : u32 = 1 ; pub const SC_PIN_CMD_UNBLOCK : u32 = 2 ; pub const SC_PIN_CMD_GET_INFO : u32 = 3 ; pub const SC_PIN_CMD_GET_SESSION_PIN : u32 = 4 ; pub const SC_PIN_CMD_USE_PINPAD : u32 = 1 ; pub const SC_PIN_CMD_NEED_PADDING : u32 = 2 ; pub const SC_PIN_CMD_IMPLICIT_CHANGE : u32 = 4 ; pub const SC_PIN_ENCODING_ASCII : u32 = 0 ; pub const SC_PIN_ENCODING_BCD : u32 = 1 ; pub const SC_PIN_ENCODING_GLP : u32 = 2 ; pub const SC_PIN_STATE_UNKNOWN : i32 = -1 ; pub const SC_PIN_STATE_LOGGED_OUT : u32 = 0 ; pub const SC_PIN_STATE_LOGGED_IN : u32 = 1 ; pub const SC_CARD_FLAG_VENDOR_MASK : u32 = 4294901760 ; pub const SC_CARD_FLAG_RNG : u32 = 2 ; pub const SC_CARD_FLAG_KEEP_ALIVE : u32 = 4 ; pub const SC_CARD_CAP_APDU_EXT : u32 = 1 ; pub const SC_CARD_CAP_RNG : u32 = 4 ; pub const SC_CARD_CAP_ISO7816_PIN_INFO : u32 = 8 ; pub const SC_CARD_CAP_USE_FCI_AC : u32 = 16 ; pub const SC_CARD_CAP_PROTECTED_AUTHENTICATION_PATH : u32 = 256 ; pub const SC_CARD_CAP_SESSION_PIN : u32 = 512 ; pub const SC_CARD_CAP_ONCARD_SESSION_OBJECTS : u32 = 1024 ; pub const SC_CARD_CAP_WRAP_KEY : u32 = 2048 ; pub const SC_CARD_CAP_UNWRAP_KEY : u32 = 4096 ; pub const SC_CTX_FLAG_TERMINATE : u32 = 1 ; pub const SC_CTX_FLAG_PARANOID_MEMORY : u32 = 2 ; pub const SC_CTX_FLAG_DEBUG_MEMORY : u32 = 4 ; pub const SC_CTX_FLAG_ENABLE_DEFAULT_DRIVER : u32 = 8 ; pub const SC_CTX_FLAG_DISABLE_POPUPS : u32 = 16 ; pub const SC_CTX_FLAG_DISABLE_COLORS : u32 = 32 ; pub const SC_RECORD_EF_ID_MASK : u32 = 31 ; pub const SC_RECORD_BY_REC_ID : u32 = 0 ; pub const SC_RECORD_BY_REC_NR : u32 = 256 ; pub const SC_RECORD_CURRENT : u32 = 0 ; pub type size_t = :: std :: os :: raw :: c_ulong ; 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 __intmax_t = :: std :: os :: raw :: c_long ; pub type __uintmax_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 __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 __sig_atomic_t = :: std :: os :: raw :: c_int ; 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 : size_t , 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" { pub static mut _IO_2_1_stdin_ : _IO_FILE_plus ; } extern "C" { pub static mut _IO_2_1_stdout_ : _IO_FILE_plus ; } extern "C" { 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 : size_t ) -> __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 : size_t ) -> __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 : size_t ) -> size_t ; } 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 ssize_t = __ssize_t ; pub type fpos_t = _G_fpos_t ; extern "C" { pub static mut stdin : * mut _IO_FILE ; } extern "C" { pub static mut stdout : * mut _IO_FILE ; } extern "C" { 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 : size_t , __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 size_t ) -> * 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 : size_t ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn setbuffer ( __stream : * mut FILE , __buf : * mut :: std :: os :: raw :: c_char , __size : size_t ) ; } 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 : :: std :: os :: raw :: c_ulong , __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 : :: std :: os :: raw :: c_ulong , __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 size_t , __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 size_t , __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 size_t , __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 : size_t , __n : size_t , __stream : * mut FILE ) -> size_t ; } extern "C" { pub fn fwrite ( __ptr : * const :: std :: os :: raw :: c_void , __size : size_t , __n : size_t , __s : * mut FILE ) -> size_t ; } extern "C" { pub fn fread_unlocked ( __ptr : * mut :: std :: os :: raw :: c_void , __size : size_t , __n : size_t , __stream : * mut FILE ) -> size_t ; } extern "C" { pub fn fwrite_unlocked ( __ptr : * const :: std :: os :: raw :: c_void , __size : size_t , __n : size_t , __stream : * mut FILE ) -> size_t ; } 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" { pub static mut sys_nerr : :: std :: os :: raw :: c_int ; } extern "C" { 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 = __intmax_t ; pub type uintmax_t = __uintmax_t ; pub type __gwchar_t = :: std :: os :: raw :: c_int ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct imaxdiv_t { pub quot : :: std :: os :: raw :: c_long , pub rem : :: std :: os :: raw :: c_long , } # [ test ] fn bindgen_test_layout_imaxdiv_t ( ) { assert_eq ! ( :: std :: mem :: size_of :: < imaxdiv_t > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( imaxdiv_t ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < imaxdiv_t > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( imaxdiv_t ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < imaxdiv_t > ( ) ) ) . quot as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( imaxdiv_t ) , "::" , stringify ! ( quot ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < imaxdiv_t > ( ) ) ) . rem as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( imaxdiv_t ) , "::" , stringify ! ( rem ) ) ) ; } extern "C" { pub fn imaxabs ( __n : intmax_t ) -> intmax_t ; } extern "C" { pub fn imaxdiv ( __numer : intmax_t , __denom : intmax_t ) -> imaxdiv_t ; } extern "C" { pub fn strtoimax ( __nptr : * const :: std :: os :: raw :: c_char , __endptr : * mut * mut :: std :: os :: raw :: c_char , __base : :: std :: os :: raw :: c_int ) -> intmax_t ; } extern "C" { pub fn strtoumax ( __nptr : * const :: std :: os :: raw :: c_char , __endptr : * mut * mut :: std :: os :: raw :: c_char , __base : :: std :: os :: raw :: c_int ) -> uintmax_t ; } extern "C" { pub fn wcstoimax ( __nptr : * const __gwchar_t , __endptr : * mut * mut __gwchar_t , __base : :: std :: os :: raw :: c_int ) -> intmax_t ; } extern "C" { pub fn wcstoumax ( __nptr : * const __gwchar_t , __endptr : * mut * mut __gwchar_t , __base : :: std :: os :: raw :: c_int ) -> uintmax_t ; } extern "C" { pub fn __errno_location ( ) -> * mut :: std :: os :: raw :: c_int ; } pub type u_char = __u_char ; pub type u_short = __u_short ; pub type u_int = __u_int ; pub type u_long = __u_long ; pub type quad_t = __quad_t ; pub type u_quad_t = __u_quad_t ; pub type fsid_t = __fsid_t ; pub type loff_t = __loff_t ; pub type ino_t = __ino_t ; pub type dev_t = __dev_t ; pub type gid_t = __gid_t ; pub type mode_t = __mode_t ; pub type nlink_t = __nlink_t ; pub type uid_t = __uid_t ; pub type pid_t = __pid_t ; pub type id_t = __id_t ; pub type daddr_t = __daddr_t ; pub type caddr_t = __caddr_t ; pub type key_t = __key_t ; pub type clock_t = __clock_t ; pub type clockid_t = __clockid_t ; pub type time_t = __time_t ; pub type timer_t = __timer_t ; pub type ulong = :: std :: os :: raw :: c_ulong ; pub type ushort = :: std :: os :: raw :: c_ushort ; pub type uint = :: std :: os :: raw :: c_uint ; pub type u_int8_t = :: std :: os :: raw :: c_uchar ; pub type u_int16_t = :: std :: os :: raw :: c_ushort ; pub type u_int32_t = :: std :: os :: raw :: c_uint ; pub type u_int64_t = :: std :: os :: raw :: c_ulong ; pub type register_t = :: std :: os :: raw :: c_long ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct __sigset_t { pub __val : [ :: std :: os :: raw :: c_ulong ; 16usize ] , } # [ test ] fn bindgen_test_layout___sigset_t ( ) { assert_eq ! ( :: std :: mem :: size_of :: < __sigset_t > ( ) , 128usize , concat ! ( "Size of: " , stringify ! ( __sigset_t ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < __sigset_t > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( __sigset_t ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __sigset_t > ( ) ) ) . __val as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( __sigset_t ) , "::" , stringify ! ( __val ) ) ) ; } pub type sigset_t = __sigset_t ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct timeval { pub tv_sec : __time_t , pub tv_usec : __suseconds_t , } # [ test ] fn bindgen_test_layout_timeval ( ) { assert_eq ! ( :: std :: mem :: size_of :: < timeval > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( timeval ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < timeval > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( timeval ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < timeval > ( ) ) ) . tv_sec as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( timeval ) , "::" , stringify ! ( tv_sec ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < timeval > ( ) ) ) . tv_usec as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( timeval ) , "::" , stringify ! ( tv_usec ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct timespec { pub tv_sec : __time_t , pub tv_nsec : __syscall_slong_t , } # [ test ] fn bindgen_test_layout_timespec ( ) { assert_eq ! ( :: std :: mem :: size_of :: < timespec > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( timespec ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < timespec > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( timespec ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < timespec > ( ) ) ) . tv_sec as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( timespec ) , "::" , stringify ! ( tv_sec ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < timespec > ( ) ) ) . tv_nsec as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( timespec ) , "::" , stringify ! ( tv_nsec ) ) ) ; } pub type suseconds_t = __suseconds_t ; pub type __fd_mask = :: std :: os :: raw :: c_long ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct fd_set { pub __fds_bits : [ __fd_mask ; 16usize ] , } # [ test ] fn bindgen_test_layout_fd_set ( ) { assert_eq ! ( :: std :: mem :: size_of :: < fd_set > ( ) , 128usize , concat ! ( "Size of: " , stringify ! ( fd_set ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < fd_set > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( fd_set ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < fd_set > ( ) ) ) . __fds_bits as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( fd_set ) , "::" , stringify ! ( __fds_bits ) ) ) ; } pub type fd_mask = __fd_mask ; extern "C" { pub fn select ( __nfds : :: std :: os :: raw :: c_int , __readfds : * mut fd_set , __writefds : * mut fd_set , __exceptfds : * mut fd_set , __timeout : * mut timeval ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn pselect ( __nfds : :: std :: os :: raw :: c_int , __readfds : * mut fd_set , __writefds : * mut fd_set , __exceptfds : * mut fd_set , __timeout : * const timespec , __sigmask : * const __sigset_t ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn gnu_dev_major ( __dev : __dev_t ) -> :: std :: os :: raw :: c_uint ; } extern "C" { pub fn gnu_dev_minor ( __dev : __dev_t ) -> :: std :: os :: raw :: c_uint ; } extern "C" { pub fn gnu_dev_makedev ( __major : :: std :: os :: raw :: c_uint , __minor : :: std :: os :: raw :: c_uint ) -> __dev_t ; } pub type blksize_t = __blksize_t ; pub type blkcnt_t = __blkcnt_t ; pub type fsblkcnt_t = __fsblkcnt_t ; pub type fsfilcnt_t = __fsfilcnt_t ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct __pthread_rwlock_arch_t { pub __readers : :: std :: os :: raw :: c_uint , pub __writers : :: std :: os :: raw :: c_uint , pub __wrphase_futex : :: std :: os :: raw :: c_uint , pub __writers_futex : :: std :: os :: raw :: c_uint , pub __pad3 : :: std :: os :: raw :: c_uint , pub __pad4 : :: std :: os :: raw :: c_uint , pub __cur_writer : :: std :: os :: raw :: c_int , pub __shared : :: std :: os :: raw :: c_int , pub __rwelision : :: std :: os :: raw :: c_schar , pub __pad1 : [ :: std :: os :: raw :: c_uchar ; 7usize ] , pub __pad2 : :: std :: os :: raw :: c_ulong , pub __flags : :: std :: os :: raw :: c_uint , } # [ test ] fn bindgen_test_layout___pthread_rwlock_arch_t ( ) { assert_eq ! ( :: std :: mem :: size_of :: < __pthread_rwlock_arch_t > ( ) , 56usize , concat ! ( "Size of: " , stringify ! ( __pthread_rwlock_arch_t ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < __pthread_rwlock_arch_t > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( __pthread_rwlock_arch_t ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_rwlock_arch_t > ( ) ) ) . __readers as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_rwlock_arch_t ) , "::" , stringify ! ( __readers ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_rwlock_arch_t > ( ) ) ) . __writers as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_rwlock_arch_t ) , "::" , stringify ! ( __writers ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_rwlock_arch_t > ( ) ) ) . __wrphase_futex as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_rwlock_arch_t ) , "::" , stringify ! ( __wrphase_futex ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_rwlock_arch_t > ( ) ) ) . __writers_futex as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_rwlock_arch_t ) , "::" , stringify ! ( __writers_futex ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_rwlock_arch_t > ( ) ) ) . __pad3 as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_rwlock_arch_t ) , "::" , stringify ! ( __pad3 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_rwlock_arch_t > ( ) ) ) . __pad4 as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_rwlock_arch_t ) , "::" , stringify ! ( __pad4 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_rwlock_arch_t > ( ) ) ) . __cur_writer as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_rwlock_arch_t ) , "::" , stringify ! ( __cur_writer ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_rwlock_arch_t > ( ) ) ) . __shared as * const _ as usize } , 28usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_rwlock_arch_t ) , "::" , stringify ! ( __shared ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_rwlock_arch_t > ( ) ) ) . __rwelision as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_rwlock_arch_t ) , "::" , stringify ! ( __rwelision ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_rwlock_arch_t > ( ) ) ) . __pad1 as * const _ as usize } , 33usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_rwlock_arch_t ) , "::" , stringify ! ( __pad1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_rwlock_arch_t > ( ) ) ) . __pad2 as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_rwlock_arch_t ) , "::" , stringify ! ( __pad2 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_rwlock_arch_t > ( ) ) ) . __flags as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_rwlock_arch_t ) , "::" , stringify ! ( __flags ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct __pthread_internal_list { pub __prev : * mut __pthread_internal_list , pub __next : * mut __pthread_internal_list , } # [ test ] fn bindgen_test_layout___pthread_internal_list ( ) { assert_eq ! ( :: std :: mem :: size_of :: < __pthread_internal_list > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( __pthread_internal_list ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < __pthread_internal_list > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( __pthread_internal_list ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_internal_list > ( ) ) ) . __prev as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_internal_list ) , "::" , stringify ! ( __prev ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_internal_list > ( ) ) ) . __next as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_internal_list ) , "::" , stringify ! ( __next ) ) ) ; } pub type __pthread_list_t = __pthread_internal_list ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct __pthread_mutex_s { pub __lock : :: std :: os :: raw :: c_int , pub __count : :: std :: os :: raw :: c_uint , pub __owner : :: std :: os :: raw :: c_int , pub __nusers : :: std :: os :: raw :: c_uint , pub __kind : :: std :: os :: raw :: c_int , pub __spins : :: std :: os :: raw :: c_short , pub __elision : :: std :: os :: raw :: c_short , pub __list : __pthread_list_t , } # [ test ] fn bindgen_test_layout___pthread_mutex_s ( ) { assert_eq ! ( :: std :: mem :: size_of :: < __pthread_mutex_s > ( ) , 40usize , concat ! ( "Size of: " , stringify ! ( __pthread_mutex_s ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < __pthread_mutex_s > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( __pthread_mutex_s ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_mutex_s > ( ) ) ) . __lock as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_mutex_s ) , "::" , stringify ! ( __lock ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_mutex_s > ( ) ) ) . __count as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_mutex_s ) , "::" , stringify ! ( __count ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_mutex_s > ( ) ) ) . __owner as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_mutex_s ) , "::" , stringify ! ( __owner ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_mutex_s > ( ) ) ) . __nusers as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_mutex_s ) , "::" , stringify ! ( __nusers ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_mutex_s > ( ) ) ) . __kind as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_mutex_s ) , "::" , stringify ! ( __kind ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_mutex_s > ( ) ) ) . __spins as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_mutex_s ) , "::" , stringify ! ( __spins ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_mutex_s > ( ) ) ) . __elision as * const _ as usize } , 22usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_mutex_s ) , "::" , stringify ! ( __elision ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_mutex_s > ( ) ) ) . __list as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_mutex_s ) , "::" , stringify ! ( __list ) ) ) ; } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct __pthread_cond_s { pub __bindgen_anon_1 : __pthread_cond_s__bindgen_ty_1 , pub __bindgen_anon_2 : __pthread_cond_s__bindgen_ty_2 , pub __g_refs : [ :: std :: os :: raw :: c_uint ; 2usize ] , pub __g_size : [ :: std :: os :: raw :: c_uint ; 2usize ] , pub __g1_orig_size : :: std :: os :: raw :: c_uint , pub __wrefs : :: std :: os :: raw :: c_uint , pub __g_signals : [ :: std :: os :: raw :: c_uint ; 2usize ] , } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub union __pthread_cond_s__bindgen_ty_1 { pub __wseq : :: std :: os :: raw :: c_ulonglong , pub __wseq32 : __pthread_cond_s__bindgen_ty_1__bindgen_ty_1 , _bindgen_union_align : u64 , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct __pthread_cond_s__bindgen_ty_1__bindgen_ty_1 { pub __low : :: std :: os :: raw :: c_uint , pub __high : :: std :: os :: raw :: c_uint , } # [ test ] fn bindgen_test_layout___pthread_cond_s__bindgen_ty_1__bindgen_ty_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < __pthread_cond_s__bindgen_ty_1__bindgen_ty_1 > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( __pthread_cond_s__bindgen_ty_1__bindgen_ty_1 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < __pthread_cond_s__bindgen_ty_1__bindgen_ty_1 > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( __pthread_cond_s__bindgen_ty_1__bindgen_ty_1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_cond_s__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . __low as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_cond_s__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( __low ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_cond_s__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . __high as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_cond_s__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( __high ) ) ) ; } # [ test ] fn bindgen_test_layout___pthread_cond_s__bindgen_ty_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < __pthread_cond_s__bindgen_ty_1 > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( __pthread_cond_s__bindgen_ty_1 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < __pthread_cond_s__bindgen_ty_1 > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( __pthread_cond_s__bindgen_ty_1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_cond_s__bindgen_ty_1 > ( ) ) ) . __wseq as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_cond_s__bindgen_ty_1 ) , "::" , stringify ! ( __wseq ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_cond_s__bindgen_ty_1 > ( ) ) ) . __wseq32 as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_cond_s__bindgen_ty_1 ) , "::" , stringify ! ( __wseq32 ) ) ) ; } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub union __pthread_cond_s__bindgen_ty_2 { pub __g1_start : :: std :: os :: raw :: c_ulonglong , pub __g1_start32 : __pthread_cond_s__bindgen_ty_2__bindgen_ty_1 , _bindgen_union_align : u64 , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct __pthread_cond_s__bindgen_ty_2__bindgen_ty_1 { pub __low : :: std :: os :: raw :: c_uint , pub __high : :: std :: os :: raw :: c_uint , } # [ test ] fn bindgen_test_layout___pthread_cond_s__bindgen_ty_2__bindgen_ty_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < __pthread_cond_s__bindgen_ty_2__bindgen_ty_1 > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( __pthread_cond_s__bindgen_ty_2__bindgen_ty_1 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < __pthread_cond_s__bindgen_ty_2__bindgen_ty_1 > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( __pthread_cond_s__bindgen_ty_2__bindgen_ty_1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_cond_s__bindgen_ty_2__bindgen_ty_1 > ( ) ) ) . __low as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_cond_s__bindgen_ty_2__bindgen_ty_1 ) , "::" , stringify ! ( __low ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_cond_s__bindgen_ty_2__bindgen_ty_1 > ( ) ) ) . __high as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_cond_s__bindgen_ty_2__bindgen_ty_1 ) , "::" , stringify ! ( __high ) ) ) ; } # [ test ] fn bindgen_test_layout___pthread_cond_s__bindgen_ty_2 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < __pthread_cond_s__bindgen_ty_2 > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( __pthread_cond_s__bindgen_ty_2 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < __pthread_cond_s__bindgen_ty_2 > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( __pthread_cond_s__bindgen_ty_2 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_cond_s__bindgen_ty_2 > ( ) ) ) . __g1_start as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_cond_s__bindgen_ty_2 ) , "::" , stringify ! ( __g1_start ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_cond_s__bindgen_ty_2 > ( ) ) ) . __g1_start32 as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_cond_s__bindgen_ty_2 ) , "::" , stringify ! ( __g1_start32 ) ) ) ; } # [ test ] fn bindgen_test_layout___pthread_cond_s ( ) { assert_eq ! ( :: std :: mem :: size_of :: < __pthread_cond_s > ( ) , 48usize , concat ! ( "Size of: " , stringify ! ( __pthread_cond_s ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < __pthread_cond_s > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( __pthread_cond_s ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_cond_s > ( ) ) ) . __g_refs as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_cond_s ) , "::" , stringify ! ( __g_refs ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_cond_s > ( ) ) ) . __g_size as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_cond_s ) , "::" , stringify ! ( __g_size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_cond_s > ( ) ) ) . __g1_orig_size as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_cond_s ) , "::" , stringify ! ( __g1_orig_size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_cond_s > ( ) ) ) . __wrefs as * const _ as usize } , 36usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_cond_s ) , "::" , stringify ! ( __wrefs ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __pthread_cond_s > ( ) ) ) . __g_signals as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( __pthread_cond_s ) , "::" , stringify ! ( __g_signals ) ) ) ; } pub type pthread_t = :: std :: os :: raw :: c_ulong ; # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub union pthread_mutexattr_t { pub __size : [ :: std :: os :: raw :: c_char ; 4usize ] , pub __align : :: std :: os :: raw :: c_int , _bindgen_union_align : u32 , } # [ test ] fn bindgen_test_layout_pthread_mutexattr_t ( ) { assert_eq ! ( :: std :: mem :: size_of :: < pthread_mutexattr_t > ( ) , 4usize , concat ! ( "Size of: " , stringify ! ( pthread_mutexattr_t ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < pthread_mutexattr_t > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( pthread_mutexattr_t ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < pthread_mutexattr_t > ( ) ) ) . __size as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( pthread_mutexattr_t ) , "::" , stringify ! ( __size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < pthread_mutexattr_t > ( ) ) ) . __align as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( pthread_mutexattr_t ) , "::" , stringify ! ( __align ) ) ) ; } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub union pthread_condattr_t { pub __size : [ :: std :: os :: raw :: c_char ; 4usize ] , pub __align : :: std :: os :: raw :: c_int , _bindgen_union_align : u32 , } # [ test ] fn bindgen_test_layout_pthread_condattr_t ( ) { assert_eq ! ( :: std :: mem :: size_of :: < pthread_condattr_t > ( ) , 4usize , concat ! ( "Size of: " , stringify ! ( pthread_condattr_t ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < pthread_condattr_t > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( pthread_condattr_t ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < pthread_condattr_t > ( ) ) ) . __size as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( pthread_condattr_t ) , "::" , stringify ! ( __size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < pthread_condattr_t > ( ) ) ) . __align as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( pthread_condattr_t ) , "::" , stringify ! ( __align ) ) ) ; } pub type pthread_key_t = :: std :: os :: raw :: c_uint ; pub type pthread_once_t = :: std :: os :: raw :: c_int ; # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub union pthread_attr_t { pub __size : [ :: std :: os :: raw :: c_char ; 56usize ] , pub __align : :: std :: os :: raw :: c_long , _bindgen_union_align : [ u64 ; 7usize ] , } # [ test ] fn bindgen_test_layout_pthread_attr_t ( ) { assert_eq ! ( :: std :: mem :: size_of :: < pthread_attr_t > ( ) , 56usize , concat ! ( "Size of: " , stringify ! ( pthread_attr_t ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < pthread_attr_t > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( pthread_attr_t ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < pthread_attr_t > ( ) ) ) . __size as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( pthread_attr_t ) , "::" , stringify ! ( __size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < pthread_attr_t > ( ) ) ) . __align as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( pthread_attr_t ) , "::" , stringify ! ( __align ) ) ) ; } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub union pthread_mutex_t { pub __data : __pthread_mutex_s , pub __size : [ :: std :: os :: raw :: c_char ; 40usize ] , pub __align : :: std :: os :: raw :: c_long , _bindgen_union_align : [ u64 ; 5usize ] , } # [ test ] fn bindgen_test_layout_pthread_mutex_t ( ) { assert_eq ! ( :: std :: mem :: size_of :: < pthread_mutex_t > ( ) , 40usize , concat ! ( "Size of: " , stringify ! ( pthread_mutex_t ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < pthread_mutex_t > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( pthread_mutex_t ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < pthread_mutex_t > ( ) ) ) . __data as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( pthread_mutex_t ) , "::" , stringify ! ( __data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < pthread_mutex_t > ( ) ) ) . __size as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( pthread_mutex_t ) , "::" , stringify ! ( __size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < pthread_mutex_t > ( ) ) ) . __align as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( pthread_mutex_t ) , "::" , stringify ! ( __align ) ) ) ; } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub union pthread_cond_t { pub __data : __pthread_cond_s , pub __size : [ :: std :: os :: raw :: c_char ; 48usize ] , pub __align : :: std :: os :: raw :: c_longlong , _bindgen_union_align : [ u64 ; 6usize ] , } # [ test ] fn bindgen_test_layout_pthread_cond_t ( ) { assert_eq ! ( :: std :: mem :: size_of :: < pthread_cond_t > ( ) , 48usize , concat ! ( "Size of: " , stringify ! ( pthread_cond_t ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < pthread_cond_t > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( pthread_cond_t ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < pthread_cond_t > ( ) ) ) . __data as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( pthread_cond_t ) , "::" , stringify ! ( __data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < pthread_cond_t > ( ) ) ) . __size as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( pthread_cond_t ) , "::" , stringify ! ( __size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < pthread_cond_t > ( ) ) ) . __align as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( pthread_cond_t ) , "::" , stringify ! ( __align ) ) ) ; } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub union pthread_rwlock_t { pub __data : __pthread_rwlock_arch_t , pub __size : [ :: std :: os :: raw :: c_char ; 56usize ] , pub __align : :: std :: os :: raw :: c_long , _bindgen_union_align : [ u64 ; 7usize ] , } # [ test ] fn bindgen_test_layout_pthread_rwlock_t ( ) { assert_eq ! ( :: std :: mem :: size_of :: < pthread_rwlock_t > ( ) , 56usize , concat ! ( "Size of: " , stringify ! ( pthread_rwlock_t ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < pthread_rwlock_t > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( pthread_rwlock_t ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < pthread_rwlock_t > ( ) ) ) . __data as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( pthread_rwlock_t ) , "::" , stringify ! ( __data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < pthread_rwlock_t > ( ) ) ) . __size as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( pthread_rwlock_t ) , "::" , stringify ! ( __size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < pthread_rwlock_t > ( ) ) ) . __align as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( pthread_rwlock_t ) , "::" , stringify ! ( __align ) ) ) ; } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub union pthread_rwlockattr_t { pub __size : [ :: std :: os :: raw :: c_char ; 8usize ] , pub __align : :: std :: os :: raw :: c_long , _bindgen_union_align : u64 , } # [ test ] fn bindgen_test_layout_pthread_rwlockattr_t ( ) { assert_eq ! ( :: std :: mem :: size_of :: < pthread_rwlockattr_t > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( pthread_rwlockattr_t ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < pthread_rwlockattr_t > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( pthread_rwlockattr_t ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < pthread_rwlockattr_t > ( ) ) ) . __size as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( pthread_rwlockattr_t ) , "::" , stringify ! ( __size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < pthread_rwlockattr_t > ( ) ) ) . __align as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( pthread_rwlockattr_t ) , "::" , stringify ! ( __align ) ) ) ; } pub type pthread_spinlock_t = :: std :: os :: raw :: c_int ; # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub union pthread_barrier_t { pub __size : [ :: std :: os :: raw :: c_char ; 32usize ] , pub __align : :: std :: os :: raw :: c_long , _bindgen_union_align : [ u64 ; 4usize ] , } # [ test ] fn bindgen_test_layout_pthread_barrier_t ( ) { assert_eq ! ( :: std :: mem :: size_of :: < pthread_barrier_t > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( pthread_barrier_t ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < pthread_barrier_t > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( pthread_barrier_t ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < pthread_barrier_t > ( ) ) ) . __size as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( pthread_barrier_t ) , "::" , stringify ! ( __size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < pthread_barrier_t > ( ) ) ) . __align as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( pthread_barrier_t ) , "::" , stringify ! ( __align ) ) ) ; } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub union pthread_barrierattr_t { pub __size : [ :: std :: os :: raw :: c_char ; 4usize ] , pub __align : :: std :: os :: raw :: c_int , _bindgen_union_align : u32 , } # [ test ] fn bindgen_test_layout_pthread_barrierattr_t ( ) { assert_eq ! ( :: std :: mem :: size_of :: < pthread_barrierattr_t > ( ) , 4usize , concat ! ( "Size of: " , stringify ! ( pthread_barrierattr_t ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < pthread_barrierattr_t > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( pthread_barrierattr_t ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < pthread_barrierattr_t > ( ) ) ) . __size as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( pthread_barrierattr_t ) , "::" , stringify ! ( __size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < pthread_barrierattr_t > ( ) ) ) . __align as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( pthread_barrierattr_t ) , "::" , stringify ! ( __align ) ) ) ; } # [ doc = " Type representing list hashes." ] # [ doc = "" ] # [ doc = " This is a signed integer value." ] pub type list_hash_t = i32 ; # [ doc = " a comparator of elements." ] # [ doc = "" ] # [ doc = " A comparator of elements is a function that:" ] # [ doc = "      -# receives two references to elements a and b" ] # [ doc = "      -# returns {<0, 0, >0} if (a > b), (a == b), (a < b) respectively" ] # [ doc = "" ] # [ doc = " It is responsibility of the function to handle possible NULL values." ] pub type element_comparator = :: std :: option :: Option < unsafe extern "C" fn ( a : * const :: std :: os :: raw :: c_void , b : * const :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int > ; # [ doc = " a seeker of elements." ] # [ doc = "" ] # [ doc = " An element seeker is a function that:" ] # [ doc = "      -# receives a reference to an element el" ] # [ doc = "      -# receives a reference to some indicator data" ] # [ doc = "      -# returns non-0 if the element matches the indicator, 0 otherwise" ] # [ doc = "" ] # [ doc = " It is responsibility of the function to handle possible NULL values in any" ] # [ doc = " argument." ] pub type element_seeker = :: std :: option :: Option < unsafe extern "C" fn ( el : * const :: std :: os :: raw :: c_void , indicator : * const :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int > ; # [ doc = " an element length meter." ] # [ doc = "" ] # [ doc = " An element meter is a function that:" ] # [ doc = "      -# receives the reference to an element el" ] # [ doc = "      -# returns its size in bytes" ] # [ doc = "" ] # [ doc = " It is responsibility of the function to handle possible NULL values." ] pub type element_meter = :: std :: option :: Option < unsafe extern "C" fn ( el : * const :: std :: os :: raw :: c_void ) -> size_t > ; # [ doc = " a function computing the hash of elements." ] # [ doc = "" ] # [ doc = " An hash computing function is a function that:" ] # [ doc = "      -# receives the reference to an element el" ] # [ doc = "      -# returns a hash value for el" ] # [ doc = "" ] # [ doc = " It is responsibility of the function to handle possible NULL values." ] pub type element_hash_computer = :: std :: option :: Option < unsafe extern "C" fn ( el : * const :: std :: os :: raw :: c_void ) -> list_hash_t > ; # [ doc = " a function for serializing an element." ] # [ doc = "" ] # [ doc = " A serializer function is one that gets a reference to an element," ] # [ doc = " and returns a reference to a buffer that contains its serialization" ] # [ doc = " along with the length of this buffer." ] # [ doc = " It is responsibility of the function to handle possible NULL values," ] # [ doc = " returning a NULL buffer and a 0 buffer length." ] # [ doc = "" ] # [ doc = " These functions have 3 goals:" ] # [ doc = "  -# \"freeze\" and \"flatten\" the memory representation of the element" ] # [ doc = "  -# provide a portable (wrt byte order, or type size) representation of the element, if the dump can be used on different sw/hw combinations" ] # [ doc = "  -# possibly extract a compressed representation of the element" ] # [ doc = "" ] # [ doc = " @param el                reference to the element data" ] # [ doc = " @param serialize_buffer  reference to fill with the length of the buffer" ] # [ doc = " @return                  reference to the buffer with the serialized data" ] pub type element_serializer = :: std :: option :: Option < unsafe extern "C" fn ( el : * const :: std :: os :: raw :: c_void , serialize_buffer : * mut u32 ) -> * mut :: std :: os :: raw :: c_void > ; # [ doc = " a function for un-serializing an element." ] # [ doc = "" ] # [ doc = " An unserializer function accomplishes the inverse operation of the" ] # [ doc = " serializer function.  An unserializer function is one that gets a" ] # [ doc = " serialized representation of an element and turns it backe to the original" ] # [ doc = " element. The serialized representation is passed as a reference to a buffer" ] # [ doc = " with its data, and the function allocates and returns the buffer containing" ] # [ doc = " the original element, and it sets the length of this buffer into the" ] # [ doc = " integer passed by reference." ] # [ doc = "" ] # [ doc = " @param data              reference to the buffer with the serialized representation of the element" ] # [ doc = " @param data_len          reference to the location where to store the length of the data in the buffer returned" ] # [ doc = " @return                  reference to a buffer with the original, unserialized representation of the element" ] pub type element_unserializer = :: std :: option :: Option < unsafe extern "C" fn ( data : * const :: std :: os :: raw :: c_void , data_len : * mut u32 ) -> * mut :: std :: os :: raw :: c_void > ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct list_entry_s { pub data : * mut :: std :: os :: raw :: c_void , pub next : * mut list_entry_s , pub prev : * mut list_entry_s , } # [ test ] fn bindgen_test_layout_list_entry_s ( ) { assert_eq ! ( :: std :: mem :: size_of :: < list_entry_s > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( list_entry_s ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < list_entry_s > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( list_entry_s ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < list_entry_s > ( ) ) ) . data as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( list_entry_s ) , "::" , stringify ! ( data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < list_entry_s > ( ) ) ) . next as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( list_entry_s ) , "::" , stringify ! ( next ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < list_entry_s > ( ) ) ) . prev as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( list_entry_s ) , "::" , stringify ! ( prev ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct list_attributes_s { pub comparator : element_comparator , pub seeker : element_seeker , pub meter : element_meter , pub copy_data : :: std :: os :: raw :: c_int , pub hasher : element_hash_computer , pub serializer : element_serializer , pub unserializer : element_unserializer , } # [ test ] fn bindgen_test_layout_list_attributes_s ( ) { assert_eq ! ( :: std :: mem :: size_of :: < list_attributes_s > ( ) , 56usize , concat ! ( "Size of: " , stringify ! ( list_attributes_s ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < list_attributes_s > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( list_attributes_s ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < list_attributes_s > ( ) ) ) . comparator as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( list_attributes_s ) , "::" , stringify ! ( comparator ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < list_attributes_s > ( ) ) ) . seeker as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( list_attributes_s ) , "::" , stringify ! ( seeker ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < list_attributes_s > ( ) ) ) . meter as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( list_attributes_s ) , "::" , stringify ! ( meter ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < list_attributes_s > ( ) ) ) . copy_data as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( list_attributes_s ) , "::" , stringify ! ( copy_data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < list_attributes_s > ( ) ) ) . hasher as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( list_attributes_s ) , "::" , stringify ! ( hasher ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < list_attributes_s > ( ) ) ) . serializer as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( list_attributes_s ) , "::" , stringify ! ( serializer ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < list_attributes_s > ( ) ) ) . unserializer as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( list_attributes_s ) , "::" , stringify ! ( unserializer ) ) ) ; } # [ doc = " list object" ] # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct list_t { pub head_sentinel : * mut list_entry_s , pub tail_sentinel : * mut list_entry_s , pub mid : * mut list_entry_s , pub numels : :: std :: os :: raw :: c_uint , pub spareels : * mut * mut list_entry_s , pub spareelsnum : :: std :: os :: raw :: c_uint , pub iter_active : :: std :: os :: raw :: c_int , pub iter_pos : :: std :: os :: raw :: c_uint , pub iter_curentry : * mut list_entry_s , pub attrs : list_attributes_s , } # [ test ] fn bindgen_test_layout_list_t ( ) { assert_eq ! ( :: std :: mem :: size_of :: < list_t > ( ) , 120usize , concat ! ( "Size of: " , stringify ! ( list_t ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < list_t > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( list_t ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < list_t > ( ) ) ) . head_sentinel as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( list_t ) , "::" , stringify ! ( head_sentinel ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < list_t > ( ) ) ) . tail_sentinel as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( list_t ) , "::" , stringify ! ( tail_sentinel ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < list_t > ( ) ) ) . mid as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( list_t ) , "::" , stringify ! ( mid ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < list_t > ( ) ) ) . numels as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( list_t ) , "::" , stringify ! ( numels ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < list_t > ( ) ) ) . spareels as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( list_t ) , "::" , stringify ! ( spareels ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < list_t > ( ) ) ) . spareelsnum as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( list_t ) , "::" , stringify ! ( spareelsnum ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < list_t > ( ) ) ) . iter_active as * const _ as usize } , 44usize , concat ! ( "Offset of field: " , stringify ! ( list_t ) , "::" , stringify ! ( iter_active ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < list_t > ( ) ) ) . iter_pos as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( list_t ) , "::" , stringify ! ( iter_pos ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < list_t > ( ) ) ) . iter_curentry as * const _ as usize } , 56usize , concat ! ( "Offset of field: " , stringify ! ( list_t ) , "::" , stringify ! ( iter_curentry ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < list_t > ( ) ) ) . attrs as * const _ as usize } , 64usize , concat ! ( "Offset of field: " , stringify ! ( list_t ) , "::" , stringify ! ( attrs ) ) ) ; } extern "C" { # [ doc = " initialize a list object for use." ] # [ doc = "" ] # [ doc = " @param l     must point to a user-provided memory location" ] # [ doc = " @return      0 for success. -1 for failure" ] pub fn list_init ( l : * mut list_t ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " completely remove the list from memory." ] # [ doc = "" ] # [ doc = " This function is the inverse of list_init(). It is meant to be called when" ] # [ doc = " the list is no longer going to be used. Elements and possible memory taken" ] # [ doc = " for internal use are freed." ] # [ doc = "" ] # [ doc = " @param l     list to destroy" ] pub fn list_destroy ( l : * mut list_t ) ; } extern "C" { # [ doc = " set the comparator function for list elements." ] # [ doc = "" ] # [ doc = " Comparator functions are used for searching and sorting. If NULL is passed" ] # [ doc = " as reference to the function, the comparator is disabled." ] # [ doc = "" ] # [ doc = " @param l     list to operate" ] # [ doc = " @param comparator_fun    pointer to the actual comparator function" ] # [ doc = " @return      0 if the attribute was successfully set; -1 otherwise" ] # [ doc = "" ] # [ doc = " @see element_comparator()" ] pub fn list_attributes_comparator ( l : * mut list_t , comparator_fun : element_comparator ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " set a seeker function for list elements." ] # [ doc = "" ] # [ doc = " Seeker functions are used for finding elements. If NULL is passed as reference" ] # [ doc = " to the function, the seeker is disabled." ] # [ doc = "" ] # [ doc = " @param l     list to operate" ] # [ doc = " @param seeker_fun    pointer to the actual seeker function" ] # [ doc = " @return      0 if the attribute was successfully set; -1 otherwise" ] # [ doc = "" ] # [ doc = " @see element_seeker()" ] pub fn list_attributes_seeker ( l : * mut list_t , seeker_fun : element_seeker ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " require to free element data when list entry is removed (default: don't free)." ] # [ doc = "" ] # [ doc = " [ advanced preference ]" ] # [ doc = "" ] # [ doc = " By default, when an element is removed from the list, it disappears from" ] # [ doc = " the list by its actual data is not free()d. With this option, every" ] # [ doc = " deletion causes element data to be freed." ] # [ doc = "" ] # [ doc = " It is responsibility of this function to correctly handle NULL values, if" ] # [ doc = " NULL elements are inserted into the list." ] # [ doc = "" ] # [ doc = " @param l             list to operate" ] # [ doc = " @param metric_fun    pointer to the actual metric function" ] # [ doc = " @param copy_data     0: do not free element data (default); non-0: do free" ] # [ doc = " @return          0 if the attribute was successfully set; -1 otherwise" ] # [ doc = "" ] # [ doc = " @see element_meter()" ] # [ doc = " @see list_meter_int8_t()" ] # [ doc = " @see list_meter_int16_t()" ] # [ doc = " @see list_meter_int32_t()" ] # [ doc = " @see list_meter_int64_t()" ] # [ doc = " @see list_meter_uint8_t()" ] # [ doc = " @see list_meter_uint16_t()" ] # [ doc = " @see list_meter_uint32_t()" ] # [ doc = " @see list_meter_uint64_t()" ] # [ doc = " @see list_meter_float()" ] # [ doc = " @see list_meter_double()" ] # [ doc = " @see list_meter_string()" ] pub fn list_attributes_copy ( l : * mut list_t , metric_fun : element_meter , copy_data : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " set the element hash computing function for the list elements." ] # [ doc = "" ] # [ doc = " [ advanced preference ]" ] # [ doc = "" ] # [ doc = " An hash can be requested depicting the list status at a given time. An hash" ] # [ doc = " only depends on the elements and their order. By default, the hash of an" ] # [ doc = " element is only computed on its reference. With this function, the user can" ] # [ doc = " set a custom function computing the hash of an element. If such function is" ] # [ doc = " provided, the list_hash() function automatically computes the list hash using" ] # [ doc = " the custom function instead of simply referring to element references." ] # [ doc = "" ] # [ doc = " @param l             list to operate" ] # [ doc = " @param hash_computer_fun pointer to the actual hash computing function" ] # [ doc = " @return              0 if the attribute was successfully set; -1 otherwise" ] # [ doc = "" ] # [ doc = " @see element_hash_computer()" ] pub fn list_attributes_hash_computer ( l : * mut list_t , hash_computer_fun : element_hash_computer ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " set the element serializer function for the list elements." ] # [ doc = "" ] # [ doc = " [ advanced preference ]" ] # [ doc = "" ] # [ doc = " Serialize functions are used for dumping the list to some persistent" ] # [ doc = " storage.  The serializer function is called for each element; it is passed" ] # [ doc = " a reference to the element and a reference to a size_t object. It will" ] # [ doc = " provide (and return) the buffer with the serialization of the element and" ] # [ doc = " fill the size_t object with the length of this serialization data." ] # [ doc = "" ] # [ doc = " @param   l   list to operate" ] # [ doc = " @param   serializer_fun  pointer to the actual serializer function" ] # [ doc = " @return      0 if the attribute was successfully set; -1 otherwise" ] # [ doc = "" ] # [ doc = " @see     element_serializer()" ] # [ doc = " @see     list_dump_filedescriptor()" ] # [ doc = " @see     list_restore_filedescriptor()" ] pub fn list_attributes_serializer ( l : * mut list_t , serializer_fun : element_serializer ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " set the element unserializer function for the list elements." ] # [ doc = "" ] # [ doc = " [ advanced preference ]" ] # [ doc = "" ] # [ doc = " Unserialize functions are used for restoring the list from some persistent" ] # [ doc = " storage. The unserializer function is called for each element segment read" ] # [ doc = " from the storage; it is passed the segment and a reference to an integer." ] # [ doc = " It shall allocate and return a buffer compiled with the resumed memory" ] # [ doc = " representation of the element, and set the integer value to the length of" ] # [ doc = " this buffer." ] # [ doc = "" ] # [ doc = " @param   l       list to operate" ] # [ doc = " @param   unserializer_fun    pointer to the actual unserializer function" ] # [ doc = " @return      0 if the attribute was successfully set; -1 otherwise" ] # [ doc = "" ] # [ doc = " @see     element_unserializer()" ] # [ doc = " @see     list_dump_filedescriptor()" ] # [ doc = " @see     list_restore_filedescriptor()" ] pub fn list_attributes_unserializer ( l : * mut list_t , unserializer_fun : element_unserializer ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " append data at the end of the list." ] # [ doc = "" ] # [ doc = " This function is useful for adding elements with a FIFO/queue policy." ] # [ doc = "" ] # [ doc = " @param l     list to operate" ] # [ doc = " @param data  pointer to user data to append" ] # [ doc = "" ] # [ doc = " @return      1 for success. < 0 for failure" ] pub fn list_append ( l : * mut list_t , data : * const :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " insert data in the head of the list." ] # [ doc = "" ] # [ doc = " This function is useful for adding elements with a LIFO/Stack policy." ] # [ doc = "" ] # [ doc = " @param l     list to operate" ] # [ doc = " @param data  pointer to user data to append" ] # [ doc = "" ] # [ doc = " @return      1 for success. < 0 for failure" ] pub fn list_prepend ( l : * mut list_t , data : * const :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " extract the element in the top of the list." ] # [ doc = "" ] # [ doc = " This function is for using a list with a FIFO/queue policy." ] # [ doc = "" ] # [ doc = " @param l     list to operate" ] # [ doc = " @return      reference to user datum, or NULL on errors" ] pub fn list_fetch ( l : * mut list_t ) -> * mut :: std :: os :: raw :: c_void ; } extern "C" { # [ doc = " retrieve an element at a given position." ] # [ doc = "" ] # [ doc = " @param l     list to operate" ] # [ doc = " @param pos   [0,size-1] position index of the element wanted" ] # [ doc = " @return      reference to user datum, or NULL on errors" ] pub fn list_get_at ( l : * const list_t , pos : :: std :: os :: raw :: c_uint ) -> * mut :: std :: os :: raw :: c_void ; } extern "C" { # [ doc = " return the maximum element of the list." ] # [ doc = "" ] # [ doc = " @warning Requires a comparator function to be set for the list." ] # [ doc = "" ] # [ doc = " Returns the maximum element with respect to the comparator function output." ] # [ doc = "" ] # [ doc = " @see list_attributes_comparator()" ] # [ doc = "" ] # [ doc = " @param l     list to operate" ] # [ doc = " @return      the reference to the element, or NULL" ] pub fn list_get_max ( l : * const list_t ) -> * mut :: std :: os :: raw :: c_void ; } extern "C" { # [ doc = " return the minimum element of the list." ] # [ doc = "" ] # [ doc = " @warning Requires a comparator function to be set for the list." ] # [ doc = "" ] # [ doc = " Returns the minimum element with respect to the comparator function output." ] # [ doc = "" ] # [ doc = " @see list_attributes_comparator()" ] # [ doc = "" ] # [ doc = " @param l     list to operate" ] # [ doc = " @return      the reference to the element, or NULL" ] pub fn list_get_min ( l : * const list_t ) -> * mut :: std :: os :: raw :: c_void ; } extern "C" { # [ doc = " retrieve and remove from list an element at a given position." ] # [ doc = "" ] # [ doc = " @param l     list to operate" ] # [ doc = " @param pos   [0,size-1] position index of the element wanted" ] # [ doc = " @return      reference to user datum, or NULL on errors" ] pub fn list_extract_at ( l : * mut list_t , pos : :: std :: os :: raw :: c_uint ) -> * mut :: std :: os :: raw :: c_void ; } extern "C" { # [ doc = " insert an element at a given position." ] # [ doc = "" ] # [ doc = " @param l     list to operate" ] # [ doc = " @param data  reference to data to be inserted" ] # [ doc = " @param pos   [0,size-1] position index to insert the element at" ] # [ doc = " @return      positive value on success. Negative on failure" ] pub fn list_insert_at ( l : * mut list_t , data : * const :: std :: os :: raw :: c_void , pos : :: std :: os :: raw :: c_uint ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " expunge the first found given element from the list." ] # [ doc = "" ] # [ doc = " Inspects the given list looking for the given element; if the element" ] # [ doc = " is found, it is removed. Only the first occurrence is removed." ] # [ doc = " If a comparator function was not set, elements are compared by reference." ] # [ doc = " Otherwise, the comparator is used to match the element." ] # [ doc = "" ] # [ doc = " @param l     list to operate" ] # [ doc = " @param data  reference of the element to search for" ] # [ doc = " @return      0 on success. Negative value on failure" ] # [ doc = "" ] # [ doc = " @see list_attributes_comparator()" ] # [ doc = " @see list_delete_at()" ] pub fn list_delete ( l : * mut list_t , data : * const :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " expunge an element at a given position from the list." ] # [ doc = "" ] # [ doc = " @param l     list to operate" ] # [ doc = " @param pos   [0,size-1] position index of the element to be deleted" ] # [ doc = " @return      0 on success. Negative value on failure" ] pub fn list_delete_at ( l : * mut list_t , pos : :: std :: os :: raw :: c_uint ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " expunge an array of elements from the list, given their position range." ] # [ doc = "" ] # [ doc = " @param l     list to operate" ] # [ doc = " @param posstart  [0,size-1] position index of the first element to be deleted" ] # [ doc = " @param posend    [posstart,size-1] position of the last element to be deleted" ] # [ doc = " @return      the number of elements successfully removed" ] pub fn list_delete_range ( l : * mut list_t , posstart : :: std :: os :: raw :: c_uint , posend : :: std :: os :: raw :: c_uint ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " clear all the elements off of the list." ] # [ doc = "" ] # [ doc = " The element data will not be freed." ] # [ doc = "" ] # [ doc = " @see list_delete_range()" ] # [ doc = " @see list_size()" ] # [ doc = "" ] # [ doc = " @param l     list to operate" ] # [ doc = " @return      the number of elements in the list before cleaning" ] pub fn list_clear ( l : * mut list_t ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " inspect the number of elements in the list." ] # [ doc = "" ] # [ doc = " @param l     list to operate" ] # [ doc = " @return      number of elements currently held by the list" ] pub fn list_size ( l : * const list_t ) -> :: std :: os :: raw :: c_uint ; } extern "C" { # [ doc = " inspect whether the list is empty." ] # [ doc = "" ] # [ doc = " @param l     list to operate" ] # [ doc = " @return      0 iff the list is not empty" ] # [ doc = "" ] # [ doc = " @see list_size()" ] pub fn list_empty ( l : * const list_t ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " find the position of an element in a list." ] # [ doc = "" ] # [ doc = " @warning Requires a comparator function to be set for the list." ] # [ doc = "" ] # [ doc = " Inspects the given list looking for the given element; if the element" ] # [ doc = " is found, its position into the list is returned." ] # [ doc = " Elements are inspected comparing references if a comparator has not been" ] # [ doc = " set. Otherwise, the comparator is used to find the element." ] # [ doc = "" ] # [ doc = " @param l     list to operate" ] # [ doc = " @param data  reference of the element to search for" ] # [ doc = " @return      position of element in the list, or <0 if not found" ] # [ doc = "" ] # [ doc = " @see list_attributes_comparator()" ] # [ doc = " @see list_get_at()" ] pub fn list_locate ( l : * const list_t , data : * const :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " returns an element given an indicator." ] # [ doc = "" ] # [ doc = " @warning Requires a seeker function to be set for the list." ] # [ doc = "" ] # [ doc = " Inspect the given list looking with the seeker if an element matches" ] # [ doc = " an indicator. If such element is found, the reference to the element" ] # [ doc = " is returned." ] # [ doc = "" ] # [ doc = " @param l     list to operate" ] # [ doc = " @param indicator indicator data to pass to the seeker along with elements" ] # [ doc = " @return      reference to the element accepted by the seeker, or NULL if none found" ] pub fn list_seek ( l : * mut list_t , indicator : * const :: std :: os :: raw :: c_void ) -> * mut :: std :: os :: raw :: c_void ; } extern "C" { # [ doc = " inspect whether some data is member of the list." ] # [ doc = "" ] # [ doc = " @warning Requires a comparator function to be set for the list." ] # [ doc = "" ] # [ doc = " By default, a per-reference comparison is accomplished. That is," ] # [ doc = " the data is in list if any element of the list points to the same" ] # [ doc = " location of data." ] # [ doc = " A \"semantic\" comparison is accomplished, otherwise, if a comparator" ] # [ doc = " function has been set previously, with list_attributes_comparator();" ] # [ doc = " in which case, the given data reference is believed to be in list iff" ] # [ doc = " comparator_fun(elementdata, userdata) == 0 for any element in the list." ] # [ doc = "" ] # [ doc = " @param l     list to operate" ] # [ doc = " @param data  reference to the data to search" ] # [ doc = " @return      0 iff the list does not contain data as an element" ] # [ doc = "" ] # [ doc = " @see list_attributes_comparator()" ] pub fn list_contains ( l : * const list_t , data : * const :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " concatenate two lists" ] # [ doc = "" ] # [ doc = " Concatenates one list with another, and stores the result into a" ] # [ doc = " user-provided list object, which must be different from both the" ] # [ doc = " lists to concatenate. Attributes from the original lists are not" ] # [ doc = " cloned." ] # [ doc = " The destination list referred is treated as virgin room: if it" ] # [ doc = " is an existing list containing elements, memory leaks will happen." ] # [ doc = " It is OK to specify the same list twice as source, for \"doubling\"" ] # [ doc = " it in the destination." ] # [ doc = "" ] # [ doc = " @param l1    base list" ] # [ doc = " @param l2    list to append to the base" ] # [ doc = " @param dest  reference to the destination list" ] # [ doc = " @return      0 for success, -1 for errors" ] pub fn list_concat ( l1 : * const list_t , l2 : * const list_t , dest : * mut list_t ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " sort list elements." ] # [ doc = "" ] # [ doc = " @warning Requires a comparator function to be set for the list." ] # [ doc = "" ] # [ doc = " Sorts the list in ascending or descending order as specified by the versus" ] # [ doc = " flag. The algorithm chooses autonomously what algorithm is best suited for" ] # [ doc = " sorting the list wrt its current status." ] # [ doc = "" ] # [ doc = " @param l     list to operate" ] # [ doc = " @param versus positive: order small to big; negative: order big to small" ] # [ doc = " @return      0: sorting went OK      non-0: errors happened" ] # [ doc = "" ] # [ doc = " @see list_attributes_comparator()" ] pub fn list_sort ( l : * mut list_t , versus : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " start an iteration session." ] # [ doc = "" ] # [ doc = " This function prepares the list to be iterated." ] # [ doc = "" ] # [ doc = " @param l     list to operate" ] # [ doc = " @return \t\t0 if the list cannot be currently iterated. >0 otherwise" ] # [ doc = "" ] # [ doc = " @see list_iterator_stop()" ] pub fn list_iterator_start ( l : * mut list_t ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " return the next element in the iteration session." ] # [ doc = "" ] # [ doc = " @param l     list to operate" ] # [ doc = " @return\t\telement datum, or NULL on errors" ] pub fn list_iterator_next ( l : * mut list_t ) -> * mut :: std :: os :: raw :: c_void ; } extern "C" { # [ doc = " inspect whether more elements are available in the iteration session." ] # [ doc = "" ] # [ doc = " @param l     list to operate" ] # [ doc = " @return      0 iff no more elements are available." ] pub fn list_iterator_hasnext ( l : * const list_t ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " end an iteration session." ] # [ doc = "" ] # [ doc = " @param l     list to operate" ] # [ doc = " @return      0 iff the iteration session cannot be stopped" ] pub fn list_iterator_stop ( l : * mut list_t ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " return the hash of the current status of the list." ] # [ doc = "" ] # [ doc = " @param l     list to operate" ] # [ doc = " @param hash  where the resulting hash is put" ] # [ doc = "" ] # [ doc = " @return      0 for success; <0 for failure" ] pub fn list_hash ( l : * const list_t , hash : * mut list_hash_t ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " ready-made comparator for int8_t elements." ] # [ doc = " @see list_attributes_comparator()" ] pub fn list_comparator_int8_t ( a : * const :: std :: os :: raw :: c_void , b : * const :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " ready-made comparator for int16_t elements." ] # [ doc = " @see list_attributes_comparator()" ] pub fn list_comparator_int16_t ( a : * const :: std :: os :: raw :: c_void , b : * const :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " ready-made comparator for int32_t elements." ] # [ doc = " @see list_attributes_comparator()" ] pub fn list_comparator_int32_t ( a : * const :: std :: os :: raw :: c_void , b : * const :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " ready-made comparator for int64_t elements." ] # [ doc = " @see list_attributes_comparator()" ] pub fn list_comparator_int64_t ( a : * const :: std :: os :: raw :: c_void , b : * const :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " ready-made comparator for uint8_t elements." ] # [ doc = " @see list_attributes_comparator()" ] pub fn list_comparator_uint8_t ( a : * const :: std :: os :: raw :: c_void , b : * const :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " ready-made comparator for uint16_t elements." ] # [ doc = " @see list_attributes_comparator()" ] pub fn list_comparator_uint16_t ( a : * const :: std :: os :: raw :: c_void , b : * const :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " ready-made comparator for uint32_t elements." ] # [ doc = " @see list_attributes_comparator()" ] pub fn list_comparator_uint32_t ( a : * const :: std :: os :: raw :: c_void , b : * const :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " ready-made comparator for uint64_t elements." ] # [ doc = " @see list_attributes_comparator()" ] pub fn list_comparator_uint64_t ( a : * const :: std :: os :: raw :: c_void , b : * const :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " ready-made comparator for float elements." ] # [ doc = " @see list_attributes_comparator()" ] pub fn list_comparator_float ( a : * const :: std :: os :: raw :: c_void , b : * const :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " ready-made comparator for double elements." ] # [ doc = " @see list_attributes_comparator()" ] pub fn list_comparator_double ( a : * const :: std :: os :: raw :: c_void , b : * const :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " ready-made comparator for string elements." ] # [ doc = " @see list_attributes_comparator()" ] pub fn list_comparator_string ( a : * const :: std :: os :: raw :: c_void , b : * const :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " ready-made metric function for int8_t elements." ] # [ doc = " @see list_attributes_copy()" ] pub fn list_meter_int8_t ( el : * const :: std :: os :: raw :: c_void ) -> size_t ; } extern "C" { # [ doc = " ready-made metric function for int16_t elements." ] # [ doc = " @see list_attributes_copy()" ] pub fn list_meter_int16_t ( el : * const :: std :: os :: raw :: c_void ) -> size_t ; } extern "C" { # [ doc = " ready-made metric function for int32_t elements." ] # [ doc = " @see list_attributes_copy()" ] pub fn list_meter_int32_t ( el : * const :: std :: os :: raw :: c_void ) -> size_t ; } extern "C" { # [ doc = " ready-made metric function for int64_t elements." ] # [ doc = " @see list_attributes_copy()" ] pub fn list_meter_int64_t ( el : * const :: std :: os :: raw :: c_void ) -> size_t ; } extern "C" { # [ doc = " ready-made metric function for uint8_t elements." ] # [ doc = " @see list_attributes_copy()" ] pub fn list_meter_uint8_t ( el : * const :: std :: os :: raw :: c_void ) -> size_t ; } extern "C" { # [ doc = " ready-made metric function for uint16_t elements." ] # [ doc = " @see list_attributes_copy()" ] pub fn list_meter_uint16_t ( el : * const :: std :: os :: raw :: c_void ) -> size_t ; } extern "C" { # [ doc = " ready-made metric function for uint32_t elements." ] # [ doc = " @see list_attributes_copy()" ] pub fn list_meter_uint32_t ( el : * const :: std :: os :: raw :: c_void ) -> size_t ; } extern "C" { # [ doc = " ready-made metric function for uint64_t elements." ] # [ doc = " @see list_attributes_copy()" ] pub fn list_meter_uint64_t ( el : * const :: std :: os :: raw :: c_void ) -> size_t ; } extern "C" { # [ doc = " ready-made metric function for float elements." ] # [ doc = " @see list_attributes_copy()" ] pub fn list_meter_float ( el : * const :: std :: os :: raw :: c_void ) -> size_t ; } extern "C" { # [ doc = " ready-made metric function for double elements." ] # [ doc = " @see list_attributes_copy()" ] pub fn list_meter_double ( el : * const :: std :: os :: raw :: c_void ) -> size_t ; } extern "C" { # [ doc = " ready-made metric function for string elements." ] # [ doc = " @see list_attributes_copy()" ] pub fn list_meter_string ( el : * const :: std :: os :: raw :: c_void ) -> size_t ; } extern "C" { # [ doc = " ready-made hash function for int8_t elements." ] # [ doc = " @see list_attributes_hash_computer()" ] pub fn list_hashcomputer_int8_t ( el : * const :: std :: os :: raw :: c_void ) -> list_hash_t ; } extern "C" { # [ doc = " ready-made hash function for int16_t elements." ] # [ doc = " @see list_attributes_hash_computer()" ] pub fn list_hashcomputer_int16_t ( el : * const :: std :: os :: raw :: c_void ) -> list_hash_t ; } extern "C" { # [ doc = " ready-made hash function for int32_t elements." ] # [ doc = " @see list_attributes_hash_computer()" ] pub fn list_hashcomputer_int32_t ( el : * const :: std :: os :: raw :: c_void ) -> list_hash_t ; } extern "C" { # [ doc = " ready-made hash function for int64_t elements." ] # [ doc = " @see list_attributes_hash_computer()" ] pub fn list_hashcomputer_int64_t ( el : * const :: std :: os :: raw :: c_void ) -> list_hash_t ; } extern "C" { # [ doc = " ready-made hash function for uint8_t elements." ] # [ doc = " @see list_attributes_hash_computer()" ] pub fn list_hashcomputer_uint8_t ( el : * const :: std :: os :: raw :: c_void ) -> list_hash_t ; } extern "C" { # [ doc = " ready-made hash function for uint16_t elements." ] # [ doc = " @see list_attributes_hash_computer()" ] pub fn list_hashcomputer_uint16_t ( el : * const :: std :: os :: raw :: c_void ) -> list_hash_t ; } extern "C" { # [ doc = " ready-made hash function for uint32_t elements." ] # [ doc = " @see list_attributes_hash_computer()" ] pub fn list_hashcomputer_uint32_t ( el : * const :: std :: os :: raw :: c_void ) -> list_hash_t ; } extern "C" { # [ doc = " ready-made hash function for uint64_t elements." ] # [ doc = " @see list_attributes_hash_computer()" ] pub fn list_hashcomputer_uint64_t ( el : * const :: std :: os :: raw :: c_void ) -> list_hash_t ; } extern "C" { # [ doc = " ready-made hash function for float elements." ] # [ doc = " @see list_attributes_hash_computer()" ] pub fn list_hashcomputer_float ( el : * const :: std :: os :: raw :: c_void ) -> list_hash_t ; } extern "C" { # [ doc = " ready-made hash function for double elements." ] # [ doc = " @see list_attributes_hash_computer()" ] pub fn list_hashcomputer_double ( el : * const :: std :: os :: raw :: c_void ) -> list_hash_t ; } extern "C" { # [ doc = " ready-made hash function for string elements." ] # [ doc = " @see list_attributes_hash_computer()" ] pub fn list_hashcomputer_string ( el : * const :: std :: os :: raw :: c_void ) -> list_hash_t ; } pub type scconf_block = _scconf_block ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct _scconf_list { pub next : * mut _scconf_list , pub data : * mut :: std :: os :: raw :: c_char , } # [ test ] fn bindgen_test_layout__scconf_list ( ) { assert_eq ! ( :: std :: mem :: size_of :: < _scconf_list > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( _scconf_list ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < _scconf_list > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( _scconf_list ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _scconf_list > ( ) ) ) . next as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( _scconf_list ) , "::" , stringify ! ( next ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _scconf_list > ( ) ) ) . data as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( _scconf_list ) , "::" , stringify ! ( data ) ) ) ; } pub type scconf_list = _scconf_list ; # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct _scconf_item { pub next : * mut _scconf_item , pub type_ : :: std :: os :: raw :: c_int , pub key : * mut :: std :: os :: raw :: c_char , pub value : _scconf_item__bindgen_ty_1 , } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub union _scconf_item__bindgen_ty_1 { pub comment : * mut :: std :: os :: raw :: c_char , pub block : * mut scconf_block , pub list : * mut scconf_list , _bindgen_union_align : u64 , } # [ test ] fn bindgen_test_layout__scconf_item__bindgen_ty_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < _scconf_item__bindgen_ty_1 > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( _scconf_item__bindgen_ty_1 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < _scconf_item__bindgen_ty_1 > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( _scconf_item__bindgen_ty_1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _scconf_item__bindgen_ty_1 > ( ) ) ) . comment as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( _scconf_item__bindgen_ty_1 ) , "::" , stringify ! ( comment ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _scconf_item__bindgen_ty_1 > ( ) ) ) . block as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( _scconf_item__bindgen_ty_1 ) , "::" , stringify ! ( block ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _scconf_item__bindgen_ty_1 > ( ) ) ) . list as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( _scconf_item__bindgen_ty_1 ) , "::" , stringify ! ( list ) ) ) ; } # [ test ] fn bindgen_test_layout__scconf_item ( ) { assert_eq ! ( :: std :: mem :: size_of :: < _scconf_item > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( _scconf_item ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < _scconf_item > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( _scconf_item ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _scconf_item > ( ) ) ) . next as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( _scconf_item ) , "::" , stringify ! ( next ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _scconf_item > ( ) ) ) . type_ as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( _scconf_item ) , "::" , stringify ! ( type_ ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _scconf_item > ( ) ) ) . key as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( _scconf_item ) , "::" , stringify ! ( key ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _scconf_item > ( ) ) ) . value as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( _scconf_item ) , "::" , stringify ! ( value ) ) ) ; } pub type scconf_item = _scconf_item ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct _scconf_block { pub parent : * mut scconf_block , pub name : * mut scconf_list , pub items : * mut scconf_item , } # [ test ] fn bindgen_test_layout__scconf_block ( ) { assert_eq ! ( :: std :: mem :: size_of :: < _scconf_block > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( _scconf_block ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < _scconf_block > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( _scconf_block ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _scconf_block > ( ) ) ) . parent as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( _scconf_block ) , "::" , stringify ! ( parent ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _scconf_block > ( ) ) ) . name as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( _scconf_block ) , "::" , stringify ! ( name ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < _scconf_block > ( ) ) ) . items as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( _scconf_block ) , "::" , stringify ! ( items ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct scconf_context { pub filename : * mut :: std :: os :: raw :: c_char , pub debug : :: std :: os :: raw :: c_int , pub root : * mut scconf_block , pub errmsg : * mut :: std :: os :: raw :: c_char , } # [ test ] fn bindgen_test_layout_scconf_context ( ) { assert_eq ! ( :: std :: mem :: size_of :: < scconf_context > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( scconf_context ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < scconf_context > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( scconf_context ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < scconf_context > ( ) ) ) . filename as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( scconf_context ) , "::" , stringify ! ( filename ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < scconf_context > ( ) ) ) . debug as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( scconf_context ) , "::" , stringify ! ( debug ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < scconf_context > ( ) ) ) . root as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( scconf_context ) , "::" , stringify ! ( root ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < scconf_context > ( ) ) ) . errmsg as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( scconf_context ) , "::" , stringify ! ( errmsg ) ) ) ; } extern "C" { pub fn scconf_new ( filename : * const :: std :: os :: raw :: c_char ) -> * mut scconf_context ; } extern "C" { pub fn scconf_free ( config : * mut scconf_context ) ; } extern "C" { pub fn scconf_parse ( config : * mut scconf_context ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn scconf_parse_string ( config : * mut scconf_context , string : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn scconf_write ( config : * mut scconf_context , filename : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn scconf_find_block ( config : * const scconf_context , block : * const scconf_block , item_name : * const :: std :: os :: raw :: c_char ) -> * const scconf_block ; } extern "C" { pub fn scconf_find_blocks ( config : * const scconf_context , block : * const scconf_block , item_name : * const :: std :: os :: raw :: c_char , key : * const :: std :: os :: raw :: c_char ) -> * mut * mut scconf_block ; } extern "C" { pub fn scconf_find_list ( block : * const scconf_block , option : * const :: std :: os :: raw :: c_char ) -> * const scconf_list ; } extern "C" { pub fn scconf_get_str ( block : * const scconf_block , option : * const :: std :: os :: raw :: c_char , def : * const :: std :: os :: raw :: c_char ) -> * const :: std :: os :: raw :: c_char ; } extern "C" { pub fn scconf_get_int ( block : * const scconf_block , option : * const :: std :: os :: raw :: c_char , def : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn scconf_get_bool ( block : * const scconf_block , option : * const :: std :: os :: raw :: c_char , def : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn scconf_put_str ( block : * mut scconf_block , option : * const :: std :: os :: raw :: c_char , value : * const :: std :: os :: raw :: c_char ) -> * const :: std :: os :: raw :: c_char ; } extern "C" { pub fn scconf_put_int ( block : * mut scconf_block , option : * const :: std :: os :: raw :: c_char , value : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn scconf_put_bool ( block : * mut scconf_block , option : * const :: std :: os :: raw :: c_char , value : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn scconf_block_add ( config : * mut scconf_context , block : * mut scconf_block , key : * const :: std :: os :: raw :: c_char , name : * const scconf_list ) -> * mut scconf_block ; } extern "C" { pub fn scconf_block_copy ( src : * const scconf_block , dst : * mut * mut scconf_block ) -> * mut scconf_block ; } extern "C" { pub fn scconf_block_destroy ( block : * mut scconf_block ) ; } extern "C" { pub fn scconf_item_add ( config : * mut scconf_context , block : * mut scconf_block , item : * mut scconf_item , type_ : :: std :: os :: raw :: c_int , key : * const :: std :: os :: raw :: c_char , data : * const :: std :: os :: raw :: c_void ) -> * mut scconf_item ; } extern "C" { pub fn scconf_item_copy ( src : * const scconf_item , dst : * mut * mut scconf_item ) -> * mut scconf_item ; } extern "C" { pub fn scconf_item_destroy ( item : * mut scconf_item ) ; } extern "C" { pub fn scconf_list_add ( list : * mut * mut scconf_list , value : * const :: std :: os :: raw :: c_char ) -> * mut scconf_list ; } extern "C" { pub fn scconf_list_copy ( src : * const scconf_list , dst : * mut * mut scconf_list ) -> * mut scconf_list ; } extern "C" { pub fn scconf_list_destroy ( list : * mut scconf_list ) ; } extern "C" { pub fn scconf_list_array_length ( list : * const scconf_list ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn scconf_list_strings_length ( list : * const scconf_list ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn scconf_list_strdup ( list : * const scconf_list , filler : * const :: std :: os :: raw :: c_char ) -> * mut :: std :: os :: raw :: c_char ; } extern "C" { pub fn scconf_list_toarray ( list : * const scconf_list ) -> * mut * const :: std :: os :: raw :: c_char ; } extern "C" { pub fn sc_strerror ( sc_errno : :: std :: os :: raw :: c_int ) -> * const :: std :: os :: raw :: c_char ; } pub type u8 = :: std :: os :: raw :: c_uchar ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct sc_lv_data { pub value : * mut :: std :: os :: raw :: c_uchar , pub len : size_t , } # [ test ] fn bindgen_test_layout_sc_lv_data ( ) { assert_eq ! ( :: std :: mem :: size_of :: < sc_lv_data > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( sc_lv_data ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < sc_lv_data > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( sc_lv_data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_lv_data > ( ) ) ) . value as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( sc_lv_data ) , "::" , stringify ! ( value ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_lv_data > ( ) ) ) . len as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( sc_lv_data ) , "::" , stringify ! ( len ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct sc_tlv_data { pub tag : :: std :: os :: raw :: c_uint , pub value : * mut :: std :: os :: raw :: c_uchar , pub len : size_t , } # [ test ] fn bindgen_test_layout_sc_tlv_data ( ) { assert_eq ! ( :: std :: mem :: size_of :: < sc_tlv_data > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( sc_tlv_data ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < sc_tlv_data > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( sc_tlv_data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_tlv_data > ( ) ) ) . tag as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( sc_tlv_data ) , "::" , stringify ! ( tag ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_tlv_data > ( ) ) ) . value as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( sc_tlv_data ) , "::" , stringify ! ( value ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_tlv_data > ( ) ) ) . len as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( sc_tlv_data ) , "::" , stringify ! ( len ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct sc_object_id { pub value : [ :: std :: os :: raw :: c_int ; 16usize ] , } # [ test ] fn bindgen_test_layout_sc_object_id ( ) { assert_eq ! ( :: std :: mem :: size_of :: < sc_object_id > ( ) , 64usize , concat ! ( "Size of: " , stringify ! ( sc_object_id ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < sc_object_id > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( sc_object_id ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_object_id > ( ) ) ) . value as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( sc_object_id ) , "::" , stringify ! ( value ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct sc_aid { pub value : [ :: std :: os :: raw :: c_uchar ; 16usize ] , pub len : size_t , } # [ test ] fn bindgen_test_layout_sc_aid ( ) { assert_eq ! ( :: std :: mem :: size_of :: < sc_aid > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( sc_aid ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < sc_aid > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( sc_aid ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_aid > ( ) ) ) . value as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( sc_aid ) , "::" , stringify ! ( value ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_aid > ( ) ) ) . len as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( sc_aid ) , "::" , stringify ! ( len ) ) ) ; } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct sc_atr { pub value : [ :: std :: os :: raw :: c_uchar ; 33usize ] , pub len : size_t , } # [ test ] fn bindgen_test_layout_sc_atr ( ) { assert_eq ! ( :: std :: mem :: size_of :: < sc_atr > ( ) , 48usize , concat ! ( "Size of: " , stringify ! ( sc_atr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < sc_atr > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( sc_atr ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_atr > ( ) ) ) . value as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( sc_atr ) , "::" , stringify ! ( value ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_atr > ( ) ) ) . len as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( sc_atr ) , "::" , stringify ! ( len ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct sc_uid { pub value : [ :: std :: os :: raw :: c_uchar ; 10usize ] , pub len : size_t , } # [ test ] fn bindgen_test_layout_sc_uid ( ) { assert_eq ! ( :: std :: mem :: size_of :: < sc_uid > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( sc_uid ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < sc_uid > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( sc_uid ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_uid > ( ) ) ) . value as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( sc_uid ) , "::" , stringify ! ( value ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_uid > ( ) ) ) . len as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( sc_uid ) , "::" , stringify ! ( len ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct sc_iid { pub value : [ :: std :: os :: raw :: c_uchar ; 10usize ] , pub len : size_t , } # [ test ] fn bindgen_test_layout_sc_iid ( ) { assert_eq ! ( :: std :: mem :: size_of :: < sc_iid > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( sc_iid ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < sc_iid > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( sc_iid ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_iid > ( ) ) ) . value as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( sc_iid ) , "::" , stringify ! ( value ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_iid > ( ) ) ) . len as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( sc_iid ) , "::" , stringify ! ( len ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct sc_version { pub hw_major : :: std :: os :: raw :: c_uchar , pub hw_minor : :: std :: os :: raw :: c_uchar , pub fw_major : :: std :: os :: raw :: c_uchar , pub fw_minor : :: std :: os :: raw :: c_uchar , } # [ test ] fn bindgen_test_layout_sc_version ( ) { assert_eq ! ( :: std :: mem :: size_of :: < sc_version > ( ) , 4usize , concat ! ( "Size of: " , stringify ! ( sc_version ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < sc_version > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( sc_version ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_version > ( ) ) ) . hw_major as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( sc_version ) , "::" , stringify ! ( hw_major ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_version > ( ) ) ) . hw_minor as * const _ as usize } , 1usize , concat ! ( "Offset of field: " , stringify ! ( sc_version ) , "::" , stringify ! ( hw_minor ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_version > ( ) ) ) . fw_major as * const _ as usize } , 2usize , concat ! ( "Offset of field: " , stringify ! ( sc_version ) , "::" , stringify ! ( fw_major ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_version > ( ) ) ) . fw_minor as * const _ as usize } , 3usize , concat ! ( "Offset of field: " , stringify ! ( sc_version ) , "::" , stringify ! ( fw_minor ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct sc_ddo { pub aid : sc_aid , pub iid : sc_iid , pub oid : sc_object_id , pub len : size_t , pub value : * mut :: std :: os :: raw :: c_uchar , } # [ test ] fn bindgen_test_layout_sc_ddo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < sc_ddo > ( ) , 128usize , concat ! ( "Size of: " , stringify ! ( sc_ddo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < sc_ddo > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( sc_ddo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_ddo > ( ) ) ) . aid as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( sc_ddo ) , "::" , stringify ! ( aid ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_ddo > ( ) ) ) . iid as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( sc_ddo ) , "::" , stringify ! ( iid ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_ddo > ( ) ) ) . oid as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( sc_ddo ) , "::" , stringify ! ( oid ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_ddo > ( ) ) ) . len as * const _ as usize } , 112usize , concat ! ( "Offset of field: " , stringify ! ( sc_ddo ) , "::" , stringify ! ( len ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_ddo > ( ) ) ) . value as * const _ as usize } , 120usize , concat ! ( "Offset of field: " , stringify ! ( sc_ddo ) , "::" , stringify ! ( value ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct sc_path { pub value : [ u8 ; 16usize ] , pub len : size_t , pub index : :: std :: os :: raw :: c_int , pub count : :: std :: os :: raw :: c_int , pub type_ : :: std :: os :: raw :: c_int , pub aid : sc_aid , } # [ test ] fn bindgen_test_layout_sc_path ( ) { assert_eq ! ( :: std :: mem :: size_of :: < sc_path > ( ) , 64usize , concat ! ( "Size of: " , stringify ! ( sc_path ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < sc_path > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( sc_path ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_path > ( ) ) ) . value as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( sc_path ) , "::" , stringify ! ( value ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_path > ( ) ) ) . len as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( sc_path ) , "::" , stringify ! ( len ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_path > ( ) ) ) . index as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( sc_path ) , "::" , stringify ! ( index ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_path > ( ) ) ) . count as * const _ as usize } , 28usize , concat ! ( "Offset of field: " , stringify ! ( sc_path ) , "::" , stringify ! ( count ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_path > ( ) ) ) . type_ as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( sc_path ) , "::" , stringify ! ( type_ ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_path > ( ) ) ) . aid as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( sc_path ) , "::" , stringify ! ( aid ) ) ) ; } pub type sc_path_t = sc_path ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct sc_crt { pub tag : :: std :: os :: raw :: c_uint , pub usage : :: std :: os :: raw :: c_uint , pub algo : :: std :: os :: raw :: c_uint , pub refs : [ :: std :: os :: raw :: c_uint ; 8usize ] , } # [ test ] fn bindgen_test_layout_sc_crt ( ) { assert_eq ! ( :: std :: mem :: size_of :: < sc_crt > ( ) , 44usize , concat ! ( "Size of: " , stringify ! ( sc_crt ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < sc_crt > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( sc_crt ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_crt > ( ) ) ) . tag as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( sc_crt ) , "::" , stringify ! ( tag ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_crt > ( ) ) ) . usage as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( sc_crt ) , "::" , stringify ! ( usage ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_crt > ( ) ) ) . algo as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( sc_crt ) , "::" , stringify ! ( algo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_crt > ( ) ) ) . refs as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( sc_crt ) , "::" , stringify ! ( refs ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct sc_acl_entry { pub method : :: std :: os :: raw :: c_uint , pub key_ref : :: std :: os :: raw :: c_uint , pub crts : [ sc_crt ; 12usize ] , pub next : * mut sc_acl_entry , } # [ test ] fn bindgen_test_layout_sc_acl_entry ( ) { assert_eq ! ( :: std :: mem :: size_of :: < sc_acl_entry > ( ) , 544usize , concat ! ( "Size of: " , stringify ! ( sc_acl_entry ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < sc_acl_entry > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( sc_acl_entry ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_acl_entry > ( ) ) ) . method as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( sc_acl_entry ) , "::" , stringify ! ( method ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_acl_entry > ( ) ) ) . key_ref as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( sc_acl_entry ) , "::" , stringify ! ( key_ref ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_acl_entry > ( ) ) ) . crts as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( sc_acl_entry ) , "::" , stringify ! ( crts ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_acl_entry > ( ) ) ) . next as * const _ as usize } , 536usize , concat ! ( "Offset of field: " , stringify ! ( sc_acl_entry ) , "::" , stringify ! ( next ) ) ) ; } pub type sc_acl_entry_t = sc_acl_entry ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct sc_file { pub path : sc_path , pub name : [ :: std :: os :: raw :: c_uchar ; 16usize ] , pub namelen : size_t , pub type_ : :: std :: os :: raw :: c_uint , pub ef_structure : :: std :: os :: raw :: c_uint , pub status : :: std :: os :: raw :: c_uint , pub shareable : :: std :: os :: raw :: c_uint , pub size : size_t , pub id : :: std :: os :: raw :: c_int , pub sid : :: std :: os :: raw :: c_int , pub acl : [ * mut sc_acl_entry ; 31usize ] , pub record_length : size_t , pub record_count : size_t , pub sec_attr : * mut :: std :: os :: raw :: c_uchar , pub sec_attr_len : size_t , pub prop_attr : * mut :: std :: os :: raw :: c_uchar , pub prop_attr_len : size_t , pub type_attr : * mut :: std :: os :: raw :: c_uchar , pub type_attr_len : size_t , pub encoded_content : * mut :: std :: os :: raw :: c_uchar , pub encoded_content_len : size_t , pub magic : :: std :: os :: raw :: c_uint , } # [ test ] fn bindgen_test_layout_sc_file ( ) { assert_eq ! ( :: std :: mem :: size_of :: < sc_file > ( ) , 456usize , concat ! ( "Size of: " , stringify ! ( sc_file ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < sc_file > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( sc_file ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_file > ( ) ) ) . path as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( sc_file ) , "::" , stringify ! ( path ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_file > ( ) ) ) . name as * const _ as usize } , 64usize , concat ! ( "Offset of field: " , stringify ! ( sc_file ) , "::" , stringify ! ( name ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_file > ( ) ) ) . namelen as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( sc_file ) , "::" , stringify ! ( namelen ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_file > ( ) ) ) . type_ as * const _ as usize } , 88usize , concat ! ( "Offset of field: " , stringify ! ( sc_file ) , "::" , stringify ! ( type_ ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_file > ( ) ) ) . ef_structure as * const _ as usize } , 92usize , concat ! ( "Offset of field: " , stringify ! ( sc_file ) , "::" , stringify ! ( ef_structure ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_file > ( ) ) ) . status as * const _ as usize } , 96usize , concat ! ( "Offset of field: " , stringify ! ( sc_file ) , "::" , stringify ! ( status ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_file > ( ) ) ) . shareable as * const _ as usize } , 100usize , concat ! ( "Offset of field: " , stringify ! ( sc_file ) , "::" , stringify ! ( shareable ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_file > ( ) ) ) . size as * const _ as usize } , 104usize , concat ! ( "Offset of field: " , stringify ! ( sc_file ) , "::" , stringify ! ( size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_file > ( ) ) ) . id as * const _ as usize } , 112usize , concat ! ( "Offset of field: " , stringify ! ( sc_file ) , "::" , stringify ! ( id ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_file > ( ) ) ) . sid as * const _ as usize } , 116usize , concat ! ( "Offset of field: " , stringify ! ( sc_file ) , "::" , stringify ! ( sid ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_file > ( ) ) ) . acl as * const _ as usize } , 120usize , concat ! ( "Offset of field: " , stringify ! ( sc_file ) , "::" , stringify ! ( acl ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_file > ( ) ) ) . record_length as * const _ as usize } , 368usize , concat ! ( "Offset of field: " , stringify ! ( sc_file ) , "::" , stringify ! ( record_length ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_file > ( ) ) ) . record_count as * const _ as usize } , 376usize , concat ! ( "Offset of field: " , stringify ! ( sc_file ) , "::" , stringify ! ( record_count ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_file > ( ) ) ) . sec_attr as * const _ as usize } , 384usize , concat ! ( "Offset of field: " , stringify ! ( sc_file ) , "::" , stringify ! ( sec_attr ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_file > ( ) ) ) . sec_attr_len as * const _ as usize } , 392usize , concat ! ( "Offset of field: " , stringify ! ( sc_file ) , "::" , stringify ! ( sec_attr_len ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_file > ( ) ) ) . prop_attr as * const _ as usize } , 400usize , concat ! ( "Offset of field: " , stringify ! ( sc_file ) , "::" , stringify ! ( prop_attr ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_file > ( ) ) ) . prop_attr_len as * const _ as usize } , 408usize , concat ! ( "Offset of field: " , stringify ! ( sc_file ) , "::" , stringify ! ( prop_attr_len ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_file > ( ) ) ) . type_attr as * const _ as usize } , 416usize , concat ! ( "Offset of field: " , stringify ! ( sc_file ) , "::" , stringify ! ( type_attr ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_file > ( ) ) ) . type_attr_len as * const _ as usize } , 424usize , concat ! ( "Offset of field: " , stringify ! ( sc_file ) , "::" , stringify ! ( type_attr_len ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_file > ( ) ) ) . encoded_content as * const _ as usize } , 432usize , concat ! ( "Offset of field: " , stringify ! ( sc_file ) , "::" , stringify ! ( encoded_content ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_file > ( ) ) ) . encoded_content_len as * const _ as usize } , 440usize , concat ! ( "Offset of field: " , stringify ! ( sc_file ) , "::" , stringify ! ( encoded_content_len ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_file > ( ) ) ) . magic as * const _ as usize } , 448usize , concat ! ( "Offset of field: " , stringify ! ( sc_file ) , "::" , stringify ! ( magic ) ) ) ; } pub type sc_file_t = sc_file ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct sc_apdu { pub cse : :: std :: os :: raw :: c_int , pub cla : :: std :: os :: raw :: c_uchar , pub ins : :: std :: os :: raw :: c_uchar , pub p1 : :: std :: os :: raw :: c_uchar , pub p2 : :: std :: os :: raw :: c_uchar , pub lc : size_t , pub le : size_t , pub data : * const :: std :: os :: raw :: c_uchar , pub datalen : size_t , pub resp : * mut :: std :: os :: raw :: c_uchar , pub resplen : size_t , pub control : :: std :: os :: raw :: c_uchar , pub allocation_flags : :: std :: os :: raw :: c_uint , pub sw1 : :: std :: os :: raw :: c_uint , pub sw2 : :: std :: os :: raw :: c_uint , pub mac : [ :: std :: os :: raw :: c_uchar ; 8usize ] , pub mac_len : size_t , pub flags : :: std :: os :: raw :: c_ulong , pub next : * mut sc_apdu , } # [ test ] fn bindgen_test_layout_sc_apdu ( ) { assert_eq ! ( :: std :: mem :: size_of :: < sc_apdu > ( ) , 104usize , concat ! ( "Size of: " , stringify ! ( sc_apdu ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < sc_apdu > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( sc_apdu ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_apdu > ( ) ) ) . cse as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( sc_apdu ) , "::" , stringify ! ( cse ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_apdu > ( ) ) ) . cla as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( sc_apdu ) , "::" , stringify ! ( cla ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_apdu > ( ) ) ) . ins as * const _ as usize } , 5usize , concat ! ( "Offset of field: " , stringify ! ( sc_apdu ) , "::" , stringify ! ( ins ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_apdu > ( ) ) ) . p1 as * const _ as usize } , 6usize , concat ! ( "Offset of field: " , stringify ! ( sc_apdu ) , "::" , stringify ! ( p1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_apdu > ( ) ) ) . p2 as * const _ as usize } , 7usize , concat ! ( "Offset of field: " , stringify ! ( sc_apdu ) , "::" , stringify ! ( p2 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_apdu > ( ) ) ) . lc as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( sc_apdu ) , "::" , stringify ! ( lc ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_apdu > ( ) ) ) . le as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( sc_apdu ) , "::" , stringify ! ( le ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_apdu > ( ) ) ) . data as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( sc_apdu ) , "::" , stringify ! ( data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_apdu > ( ) ) ) . datalen as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( sc_apdu ) , "::" , stringify ! ( datalen ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_apdu > ( ) ) ) . resp as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( sc_apdu ) , "::" , stringify ! ( resp ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_apdu > ( ) ) ) . resplen as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( sc_apdu ) , "::" , stringify ! ( resplen ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_apdu > ( ) ) ) . control as * const _ as usize } , 56usize , concat ! ( "Offset of field: " , stringify ! ( sc_apdu ) , "::" , stringify ! ( control ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_apdu > ( ) ) ) . allocation_flags as * const _ as usize } , 60usize , concat ! ( "Offset of field: " , stringify ! ( sc_apdu ) , "::" , stringify ! ( allocation_flags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_apdu > ( ) ) ) . sw1 as * const _ as usize } , 64usize , concat ! ( "Offset of field: " , stringify ! ( sc_apdu ) , "::" , stringify ! ( sw1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_apdu > ( ) ) ) . sw2 as * const _ as usize } , 68usize , concat ! ( "Offset of field: " , stringify ! ( sc_apdu ) , "::" , stringify ! ( sw2 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_apdu > ( ) ) ) . mac as * const _ as usize } , 72usize , concat ! ( "Offset of field: " , stringify ! ( sc_apdu ) , "::" , stringify ! ( mac ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_apdu > ( ) ) ) . mac_len as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( sc_apdu ) , "::" , stringify ! ( mac_len ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_apdu > ( ) ) ) . flags as * const _ as usize } , 88usize , concat ! ( "Offset of field: " , stringify ! ( sc_apdu ) , "::" , stringify ! ( flags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_apdu > ( ) ) ) . next as * const _ as usize } , 96usize , concat ! ( "Offset of field: " , stringify ! ( sc_apdu ) , "::" , stringify ! ( next ) ) ) ; } pub type sc_apdu_t = sc_apdu ; # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct sc_cplc { pub ic_fabricator : [ :: std :: os :: raw :: c_uchar ; 2usize ] , pub ic_type : [ :: std :: os :: raw :: c_uchar ; 2usize ] , pub os_data : [ :: std :: os :: raw :: c_uchar ; 6usize ] , pub ic_date : [ :: std :: os :: raw :: c_uchar ; 2usize ] , pub ic_serial : [ :: std :: os :: raw :: c_uchar ; 4usize ] , pub ic_batch_id : [ :: std :: os :: raw :: c_uchar ; 2usize ] , pub ic_module_data : [ :: std :: os :: raw :: c_uchar ; 4usize ] , pub icc_manufacturer : [ :: std :: os :: raw :: c_uchar ; 2usize ] , pub ic_embed_date : [ :: std :: os :: raw :: c_uchar ; 2usize ] , pub pre_perso_data : [ :: std :: os :: raw :: c_uchar ; 6usize ] , pub personalizer_data : [ :: std :: os :: raw :: c_uchar ; 6usize ] , pub value : [ :: std :: os :: raw :: c_uchar ; 45usize ] , pub len : size_t , } # [ test ] fn bindgen_test_layout_sc_cplc ( ) { assert_eq ! ( :: std :: mem :: size_of :: < sc_cplc > ( ) , 96usize , concat ! ( "Size of: " , stringify ! ( sc_cplc ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < sc_cplc > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( sc_cplc ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_cplc > ( ) ) ) . ic_fabricator as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( sc_cplc ) , "::" , stringify ! ( ic_fabricator ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_cplc > ( ) ) ) . ic_type as * const _ as usize } , 2usize , concat ! ( "Offset of field: " , stringify ! ( sc_cplc ) , "::" , stringify ! ( ic_type ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_cplc > ( ) ) ) . os_data as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( sc_cplc ) , "::" , stringify ! ( os_data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_cplc > ( ) ) ) . ic_date as * const _ as usize } , 10usize , concat ! ( "Offset of field: " , stringify ! ( sc_cplc ) , "::" , stringify ! ( ic_date ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_cplc > ( ) ) ) . ic_serial as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( sc_cplc ) , "::" , stringify ! ( ic_serial ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_cplc > ( ) ) ) . ic_batch_id as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( sc_cplc ) , "::" , stringify ! ( ic_batch_id ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_cplc > ( ) ) ) . ic_module_data as * const _ as usize } , 18usize , concat ! ( "Offset of field: " , stringify ! ( sc_cplc ) , "::" , stringify ! ( ic_module_data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_cplc > ( ) ) ) . icc_manufacturer as * const _ as usize } , 22usize , concat ! ( "Offset of field: " , stringify ! ( sc_cplc ) , "::" , stringify ! ( icc_manufacturer ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_cplc > ( ) ) ) . ic_embed_date as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( sc_cplc ) , "::" , stringify ! ( ic_embed_date ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_cplc > ( ) ) ) . pre_perso_data as * const _ as usize } , 26usize , concat ! ( "Offset of field: " , stringify ! ( sc_cplc ) , "::" , stringify ! ( pre_perso_data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_cplc > ( ) ) ) . personalizer_data as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( sc_cplc ) , "::" , stringify ! ( personalizer_data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_cplc > ( ) ) ) . value as * const _ as usize } , 38usize , concat ! ( "Offset of field: " , stringify ! ( sc_cplc ) , "::" , stringify ! ( value ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_cplc > ( ) ) ) . len as * const _ as usize } , 88usize , concat ! ( "Offset of field: " , stringify ! ( sc_cplc ) , "::" , stringify ! ( len ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct sc_iin { pub mii : :: std :: os :: raw :: c_uchar , pub country : :: std :: os :: raw :: c_uint , pub issuer_id : :: std :: os :: raw :: c_ulong , } # [ test ] fn bindgen_test_layout_sc_iin ( ) { assert_eq ! ( :: std :: mem :: size_of :: < sc_iin > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( sc_iin ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < sc_iin > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( sc_iin ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_iin > ( ) ) ) . mii as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( sc_iin ) , "::" , stringify ! ( mii ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_iin > ( ) ) ) . country as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( sc_iin ) , "::" , stringify ! ( country ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_iin > ( ) ) ) . issuer_id as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( sc_iin ) , "::" , stringify ! ( issuer_id ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct sc_serial_number { pub value : [ :: std :: os :: raw :: c_uchar ; 32usize ] , pub len : size_t , pub iin : sc_iin , } # [ test ] fn bindgen_test_layout_sc_serial_number ( ) { assert_eq ! ( :: std :: mem :: size_of :: < sc_serial_number > ( ) , 56usize , concat ! ( "Size of: " , stringify ! ( sc_serial_number ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < sc_serial_number > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( sc_serial_number ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_serial_number > ( ) ) ) . value as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( sc_serial_number ) , "::" , stringify ! ( value ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_serial_number > ( ) ) ) . len as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( sc_serial_number ) , "::" , stringify ! ( len ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_serial_number > ( ) ) ) . iin as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( sc_serial_number ) , "::" , stringify ! ( iin ) ) ) ; } pub type sc_serial_number_t = sc_serial_number ; # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct sc_remote_apdu { pub sbuf : [ :: std :: os :: raw :: c_uchar ; 522usize ] , pub rbuf : [ :: std :: os :: raw :: c_uchar ; 522usize ] , pub apdu : sc_apdu , pub flags : :: std :: os :: raw :: c_uint , pub next : * mut sc_remote_apdu , } # [ test ] fn bindgen_test_layout_sc_remote_apdu ( ) { assert_eq ! ( :: std :: mem :: size_of :: < sc_remote_apdu > ( ) , 1168usize , concat ! ( "Size of: " , stringify ! ( sc_remote_apdu ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < sc_remote_apdu > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( sc_remote_apdu ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_remote_apdu > ( ) ) ) . sbuf as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( sc_remote_apdu ) , "::" , stringify ! ( sbuf ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_remote_apdu > ( ) ) ) . rbuf as * const _ as usize } , 522usize , concat ! ( "Offset of field: " , stringify ! ( sc_remote_apdu ) , "::" , stringify ! ( rbuf ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_remote_apdu > ( ) ) ) . apdu as * const _ as usize } , 1048usize , concat ! ( "Offset of field: " , stringify ! ( sc_remote_apdu ) , "::" , stringify ! ( apdu ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_remote_apdu > ( ) ) ) . flags as * const _ as usize } , 1152usize , concat ! ( "Offset of field: " , stringify ! ( sc_remote_apdu ) , "::" , stringify ! ( flags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_remote_apdu > ( ) ) ) . next as * const _ as usize } , 1160usize , concat ! ( "Offset of field: " , stringify ! ( sc_remote_apdu ) , "::" , stringify ! ( next ) ) ) ; } # [ doc = " @struct sc_remote_data" ] # [ doc = " Frame for the list of the @c sc_remote_apdu data with" ] # [ doc = " the handlers to allocate and free." ] # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct sc_remote_data { pub data : * mut sc_remote_apdu , pub length : :: std :: os :: raw :: c_int , # [ doc = " Handler to allocate a new @c sc_remote_apdu data and add it to the list." ] # [ doc = " @param rdata Self pointer to the @c sc_remote_data" ] # [ doc = " @param out Pointer to newle allocated member" ] pub alloc : :: std :: option :: Option < unsafe extern "C" fn ( rdata : * mut sc_remote_data , out : * mut * mut sc_remote_apdu ) -> :: std :: os :: raw :: c_int > , # [ doc = " Handler to free the list of @c sc_remote_apdu data" ] # [ doc = " @param rdata Self pointer to the @c sc_remote_data" ] pub free : :: std :: option :: Option < unsafe extern "C" fn ( rdata : * mut sc_remote_data ) > , } # [ test ] fn bindgen_test_layout_sc_remote_data ( ) { assert_eq ! ( :: std :: mem :: size_of :: < sc_remote_data > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( sc_remote_data ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < sc_remote_data > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( sc_remote_data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_remote_data > ( ) ) ) . data as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( sc_remote_data ) , "::" , stringify ! ( data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_remote_data > ( ) ) ) . length as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( sc_remote_data ) , "::" , stringify ! ( length ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_remote_data > ( ) ) ) . alloc as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( sc_remote_data ) , "::" , stringify ! ( alloc ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_remote_data > ( ) ) ) . free as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( sc_remote_data ) , "::" , stringify ! ( free ) ) ) ; } extern "C" { pub fn sc_dlopen ( filename : * const :: std :: os :: raw :: c_char ) -> * mut :: std :: os :: raw :: c_void ; } extern "C" { pub fn sc_dlsym ( handle : * mut :: std :: os :: raw :: c_void , symbol : * const :: std :: os :: raw :: c_char ) -> * mut :: std :: os :: raw :: c_void ; } extern "C" { pub fn sc_dlclose ( handle : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn sc_dlerror ( ) -> * const :: std :: os :: raw :: c_char ; } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct sm_type_params_gp { pub level : :: std :: os :: raw :: c_uint , pub index : :: std :: os :: raw :: c_uint , pub version : :: std :: os :: raw :: c_uint , pub cplc : sc_cplc , } # [ test ] fn bindgen_test_layout_sm_type_params_gp ( ) { assert_eq ! ( :: std :: mem :: size_of :: < sm_type_params_gp > ( ) , 112usize , concat ! ( "Size of: " , stringify ! ( sm_type_params_gp ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < sm_type_params_gp > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( sm_type_params_gp ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_type_params_gp > ( ) ) ) . level as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( sm_type_params_gp ) , "::" , stringify ! ( level ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_type_params_gp > ( ) ) ) . index as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( sm_type_params_gp ) , "::" , stringify ! ( index ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_type_params_gp > ( ) ) ) . version as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( sm_type_params_gp ) , "::" , stringify ! ( version ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_type_params_gp > ( ) ) ) . cplc as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( sm_type_params_gp ) , "::" , stringify ! ( cplc ) ) ) ; } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct sm_gp_keyset { pub version : :: std :: os :: raw :: c_int , pub index : :: std :: os :: raw :: c_int , pub enc : [ :: std :: os :: raw :: c_uchar ; 16usize ] , pub mac : [ :: std :: os :: raw :: c_uchar ; 16usize ] , pub kek : [ :: std :: os :: raw :: c_uchar ; 16usize ] , pub kmc : [ :: std :: os :: raw :: c_uchar ; 48usize ] , pub kmc_len : :: std :: os :: raw :: c_uint , } # [ test ] fn bindgen_test_layout_sm_gp_keyset ( ) { assert_eq ! ( :: std :: mem :: size_of :: < sm_gp_keyset > ( ) , 108usize , concat ! ( "Size of: " , stringify ! ( sm_gp_keyset ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < sm_gp_keyset > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( sm_gp_keyset ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_gp_keyset > ( ) ) ) . version as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( sm_gp_keyset ) , "::" , stringify ! ( version ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_gp_keyset > ( ) ) ) . index as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( sm_gp_keyset ) , "::" , stringify ! ( index ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_gp_keyset > ( ) ) ) . enc as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( sm_gp_keyset ) , "::" , stringify ! ( enc ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_gp_keyset > ( ) ) ) . mac as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( sm_gp_keyset ) , "::" , stringify ! ( mac ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_gp_keyset > ( ) ) ) . kek as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( sm_gp_keyset ) , "::" , stringify ! ( kek ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_gp_keyset > ( ) ) ) . kmc as * const _ as usize } , 56usize , concat ! ( "Offset of field: " , stringify ! ( sm_gp_keyset ) , "::" , stringify ! ( kmc ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_gp_keyset > ( ) ) ) . kmc_len as * const _ as usize } , 104usize , concat ! ( "Offset of field: " , stringify ! ( sm_gp_keyset ) , "::" , stringify ! ( kmc_len ) ) ) ; } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct sm_gp_session { pub gp_keyset : sm_gp_keyset , pub params : sm_type_params_gp , pub host_challenge : [ :: std :: os :: raw :: c_uchar ; 8usize ] , pub card_challenge : [ :: std :: os :: raw :: c_uchar ; 8usize ] , pub session_enc : * mut :: std :: os :: raw :: c_uchar , pub session_mac : * mut :: std :: os :: raw :: c_uchar , pub session_kek : * mut :: std :: os :: raw :: c_uchar , pub mac_icv : [ :: std :: os :: raw :: c_uchar ; 8usize ] , } # [ test ] fn bindgen_test_layout_sm_gp_session ( ) { assert_eq ! ( :: std :: mem :: size_of :: < sm_gp_session > ( ) , 272usize , concat ! ( "Size of: " , stringify ! ( sm_gp_session ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < sm_gp_session > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( sm_gp_session ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_gp_session > ( ) ) ) . gp_keyset as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( sm_gp_session ) , "::" , stringify ! ( gp_keyset ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_gp_session > ( ) ) ) . params as * const _ as usize } , 112usize , concat ! ( "Offset of field: " , stringify ! ( sm_gp_session ) , "::" , stringify ! ( params ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_gp_session > ( ) ) ) . host_challenge as * const _ as usize } , 224usize , concat ! ( "Offset of field: " , stringify ! ( sm_gp_session ) , "::" , stringify ! ( host_challenge ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_gp_session > ( ) ) ) . card_challenge as * const _ as usize } , 232usize , concat ! ( "Offset of field: " , stringify ! ( sm_gp_session ) , "::" , stringify ! ( card_challenge ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_gp_session > ( ) ) ) . session_enc as * const _ as usize } , 240usize , concat ! ( "Offset of field: " , stringify ! ( sm_gp_session ) , "::" , stringify ! ( session_enc ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_gp_session > ( ) ) ) . session_mac as * const _ as usize } , 248usize , concat ! ( "Offset of field: " , stringify ! ( sm_gp_session ) , "::" , stringify ! ( session_mac ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_gp_session > ( ) ) ) . session_kek as * const _ as usize } , 256usize , concat ! ( "Offset of field: " , stringify ! ( sm_gp_session ) , "::" , stringify ! ( session_kek ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_gp_session > ( ) ) ) . mac_icv as * const _ as usize } , 264usize , concat ! ( "Offset of field: " , stringify ! ( sm_gp_session ) , "::" , stringify ! ( mac_icv ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct sm_type_params_cwa { pub crt_at : sc_crt , } # [ test ] fn bindgen_test_layout_sm_type_params_cwa ( ) { assert_eq ! ( :: std :: mem :: size_of :: < sm_type_params_cwa > ( ) , 44usize , concat ! ( "Size of: " , stringify ! ( sm_type_params_cwa ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < sm_type_params_cwa > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( sm_type_params_cwa ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_type_params_cwa > ( ) ) ) . crt_at as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( sm_type_params_cwa ) , "::" , stringify ! ( crt_at ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct sm_cwa_keyset { pub sdo_reference : :: std :: os :: raw :: c_uint , pub enc : [ :: std :: os :: raw :: c_uchar ; 16usize ] , pub mac : [ :: std :: os :: raw :: c_uchar ; 16usize ] , } # [ test ] fn bindgen_test_layout_sm_cwa_keyset ( ) { assert_eq ! ( :: std :: mem :: size_of :: < sm_cwa_keyset > ( ) , 36usize , concat ! ( "Size of: " , stringify ! ( sm_cwa_keyset ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < sm_cwa_keyset > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( sm_cwa_keyset ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_cwa_keyset > ( ) ) ) . sdo_reference as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( sm_cwa_keyset ) , "::" , stringify ! ( sdo_reference ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_cwa_keyset > ( ) ) ) . enc as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( sm_cwa_keyset ) , "::" , stringify ! ( enc ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_cwa_keyset > ( ) ) ) . mac as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( sm_cwa_keyset ) , "::" , stringify ! ( mac ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct sm_cwa_token_data { pub sn : [ :: std :: os :: raw :: c_uchar ; 8usize ] , pub rnd : [ :: std :: os :: raw :: c_uchar ; 8usize ] , pub k : [ :: std :: os :: raw :: c_uchar ; 32usize ] , } # [ test ] fn bindgen_test_layout_sm_cwa_token_data ( ) { assert_eq ! ( :: std :: mem :: size_of :: < sm_cwa_token_data > ( ) , 48usize , concat ! ( "Size of: " , stringify ! ( sm_cwa_token_data ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < sm_cwa_token_data > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( sm_cwa_token_data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_cwa_token_data > ( ) ) ) . sn as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( sm_cwa_token_data ) , "::" , stringify ! ( sn ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_cwa_token_data > ( ) ) ) . rnd as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( sm_cwa_token_data ) , "::" , stringify ! ( rnd ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_cwa_token_data > ( ) ) ) . k as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( sm_cwa_token_data ) , "::" , stringify ! ( k ) ) ) ; } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct sm_cwa_session { pub cwa_keyset : sm_cwa_keyset , pub params : sm_type_params_cwa , pub icc : sm_cwa_token_data , pub ifd : sm_cwa_token_data , pub session_enc : [ :: std :: os :: raw :: c_uchar ; 16usize ] , pub session_mac : [ :: std :: os :: raw :: c_uchar ; 16usize ] , pub ssc : [ :: std :: os :: raw :: c_uchar ; 8usize ] , pub host_challenge : [ :: std :: os :: raw :: c_uchar ; 8usize ] , pub card_challenge : [ :: std :: os :: raw :: c_uchar ; 8usize ] , pub mdata : [ :: std :: os :: raw :: c_uchar ; 72usize ] , pub mdata_len : size_t , } # [ test ] fn bindgen_test_layout_sm_cwa_session ( ) { assert_eq ! ( :: std :: mem :: size_of :: < sm_cwa_session > ( ) , 312usize , concat ! ( "Size of: " , stringify ! ( sm_cwa_session ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < sm_cwa_session > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( sm_cwa_session ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_cwa_session > ( ) ) ) . cwa_keyset as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( sm_cwa_session ) , "::" , stringify ! ( cwa_keyset ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_cwa_session > ( ) ) ) . params as * const _ as usize } , 36usize , concat ! ( "Offset of field: " , stringify ! ( sm_cwa_session ) , "::" , stringify ! ( params ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_cwa_session > ( ) ) ) . icc as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( sm_cwa_session ) , "::" , stringify ! ( icc ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_cwa_session > ( ) ) ) . ifd as * const _ as usize } , 128usize , concat ! ( "Offset of field: " , stringify ! ( sm_cwa_session ) , "::" , stringify ! ( ifd ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_cwa_session > ( ) ) ) . session_enc as * const _ as usize } , 176usize , concat ! ( "Offset of field: " , stringify ! ( sm_cwa_session ) , "::" , stringify ! ( session_enc ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_cwa_session > ( ) ) ) . session_mac as * const _ as usize } , 192usize , concat ! ( "Offset of field: " , stringify ! ( sm_cwa_session ) , "::" , stringify ! ( session_mac ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_cwa_session > ( ) ) ) . ssc as * const _ as usize } , 208usize , concat ! ( "Offset of field: " , stringify ! ( sm_cwa_session ) , "::" , stringify ! ( ssc ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_cwa_session > ( ) ) ) . host_challenge as * const _ as usize } , 216usize , concat ! ( "Offset of field: " , stringify ! ( sm_cwa_session ) , "::" , stringify ! ( host_challenge ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_cwa_session > ( ) ) ) . card_challenge as * const _ as usize } , 224usize , concat ! ( "Offset of field: " , stringify ! ( sm_cwa_session ) , "::" , stringify ! ( card_challenge ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_cwa_session > ( ) ) ) . mdata as * const _ as usize } , 232usize , concat ! ( "Offset of field: " , stringify ! ( sm_cwa_session ) , "::" , stringify ! ( mdata ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_cwa_session > ( ) ) ) . mdata_len as * const _ as usize } , 304usize , concat ! ( "Offset of field: " , stringify ! ( sm_cwa_session ) , "::" , stringify ! ( mdata_len ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct sm_dh_session { pub g : sc_tlv_data , pub N : sc_tlv_data , pub ifd_p : sc_tlv_data , pub ifd_y : sc_tlv_data , pub icc_p : sc_tlv_data , pub shared_secret : sc_tlv_data , pub session_enc : [ :: std :: os :: raw :: c_uchar ; 16usize ] , pub session_mac : [ :: std :: os :: raw :: c_uchar ; 16usize ] , pub card_challenge : [ :: std :: os :: raw :: c_uchar ; 32usize ] , pub ssc : [ :: std :: os :: raw :: c_uchar ; 8usize ] , } # [ test ] fn bindgen_test_layout_sm_dh_session ( ) { assert_eq ! ( :: std :: mem :: size_of :: < sm_dh_session > ( ) , 216usize , concat ! ( "Size of: " , stringify ! ( sm_dh_session ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < sm_dh_session > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( sm_dh_session ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_dh_session > ( ) ) ) . g as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( sm_dh_session ) , "::" , stringify ! ( g ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_dh_session > ( ) ) ) . N as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( sm_dh_session ) , "::" , stringify ! ( N ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_dh_session > ( ) ) ) . ifd_p as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( sm_dh_session ) , "::" , stringify ! ( ifd_p ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_dh_session > ( ) ) ) . ifd_y as * const _ as usize } , 72usize , concat ! ( "Offset of field: " , stringify ! ( sm_dh_session ) , "::" , stringify ! ( ifd_y ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_dh_session > ( ) ) ) . icc_p as * const _ as usize } , 96usize , concat ! ( "Offset of field: " , stringify ! ( sm_dh_session ) , "::" , stringify ! ( icc_p ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_dh_session > ( ) ) ) . shared_secret as * const _ as usize } , 120usize , concat ! ( "Offset of field: " , stringify ! ( sm_dh_session ) , "::" , stringify ! ( shared_secret ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_dh_session > ( ) ) ) . session_enc as * const _ as usize } , 144usize , concat ! ( "Offset of field: " , stringify ! ( sm_dh_session ) , "::" , stringify ! ( session_enc ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_dh_session > ( ) ) ) . session_mac as * const _ as usize } , 160usize , concat ! ( "Offset of field: " , stringify ! ( sm_dh_session ) , "::" , stringify ! ( session_mac ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_dh_session > ( ) ) ) . card_challenge as * const _ as usize } , 176usize , concat ! ( "Offset of field: " , stringify ! ( sm_dh_session ) , "::" , stringify ! ( card_challenge ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_dh_session > ( ) ) ) . ssc as * const _ as usize } , 208usize , concat ! ( "Offset of field: " , stringify ! ( sm_dh_session ) , "::" , stringify ! ( ssc ) ) ) ; } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct sm_info { pub config_section : [ :: std :: os :: raw :: c_char ; 64usize ] , pub card_type : :: std :: os :: raw :: c_uint , pub cmd : :: std :: os :: raw :: c_uint , pub cmd_data : * mut :: std :: os :: raw :: c_void , pub sm_type : :: std :: os :: raw :: c_uint , pub session : sm_info__bindgen_ty_1 , pub serialnr : sc_serial_number , pub security_condition : :: std :: os :: raw :: c_uint , pub current_path_df : sc_path , pub current_path_ef : sc_path , pub current_aid : sc_aid , pub rdata : * mut :: std :: os :: raw :: c_uchar , pub rdata_len : size_t , } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub union sm_info__bindgen_ty_1 { pub gp : sm_gp_session , pub cwa : sm_cwa_session , pub dh : sm_dh_session , _bindgen_union_align : [ u64 ; 39usize ] , } # [ test ] fn bindgen_test_layout_sm_info__bindgen_ty_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < sm_info__bindgen_ty_1 > ( ) , 312usize , concat ! ( "Size of: " , stringify ! ( sm_info__bindgen_ty_1 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < sm_info__bindgen_ty_1 > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( sm_info__bindgen_ty_1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_info__bindgen_ty_1 > ( ) ) ) . gp as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( sm_info__bindgen_ty_1 ) , "::" , stringify ! ( gp ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_info__bindgen_ty_1 > ( ) ) ) . cwa as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( sm_info__bindgen_ty_1 ) , "::" , stringify ! ( cwa ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_info__bindgen_ty_1 > ( ) ) ) . dh as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( sm_info__bindgen_ty_1 ) , "::" , stringify ! ( dh ) ) ) ; } # [ test ] fn bindgen_test_layout_sm_info ( ) { assert_eq ! ( :: std :: mem :: size_of :: < sm_info > ( ) , 632usize , concat ! ( "Size of: " , stringify ! ( sm_info ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < sm_info > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( sm_info ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_info > ( ) ) ) . config_section as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( sm_info ) , "::" , stringify ! ( config_section ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_info > ( ) ) ) . card_type as * const _ as usize } , 64usize , concat ! ( "Offset of field: " , stringify ! ( sm_info ) , "::" , stringify ! ( card_type ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_info > ( ) ) ) . cmd as * const _ as usize } , 68usize , concat ! ( "Offset of field: " , stringify ! ( sm_info ) , "::" , stringify ! ( cmd ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_info > ( ) ) ) . cmd_data as * const _ as usize } , 72usize , concat ! ( "Offset of field: " , stringify ! ( sm_info ) , "::" , stringify ! ( cmd_data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_info > ( ) ) ) . sm_type as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( sm_info ) , "::" , stringify ! ( sm_type ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_info > ( ) ) ) . session as * const _ as usize } , 88usize , concat ! ( "Offset of field: " , stringify ! ( sm_info ) , "::" , stringify ! ( session ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_info > ( ) ) ) . serialnr as * const _ as usize } , 400usize , concat ! ( "Offset of field: " , stringify ! ( sm_info ) , "::" , stringify ! ( serialnr ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_info > ( ) ) ) . security_condition as * const _ as usize } , 456usize , concat ! ( "Offset of field: " , stringify ! ( sm_info ) , "::" , stringify ! ( security_condition ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_info > ( ) ) ) . current_path_df as * const _ as usize } , 464usize , concat ! ( "Offset of field: " , stringify ! ( sm_info ) , "::" , stringify ! ( current_path_df ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_info > ( ) ) ) . current_path_ef as * const _ as usize } , 528usize , concat ! ( "Offset of field: " , stringify ! ( sm_info ) , "::" , stringify ! ( current_path_ef ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_info > ( ) ) ) . current_aid as * const _ as usize } , 592usize , concat ! ( "Offset of field: " , stringify ! ( sm_info ) , "::" , stringify ! ( current_aid ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_info > ( ) ) ) . rdata as * const _ as usize } , 616usize , concat ! ( "Offset of field: " , stringify ! ( sm_info ) , "::" , stringify ! ( rdata ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_info > ( ) ) ) . rdata_len as * const _ as usize } , 624usize , concat ! ( "Offset of field: " , stringify ! ( sm_info ) , "::" , stringify ! ( rdata_len ) ) ) ; } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct sm_card_response { pub num : :: std :: os :: raw :: c_int , pub data : [ :: std :: os :: raw :: c_uchar ; 261usize ] , pub data_len : size_t , pub mac : [ :: std :: os :: raw :: c_uchar ; 8usize ] , pub mac_len : size_t , pub sw1 : :: std :: os :: raw :: c_uchar , pub sw2 : :: std :: os :: raw :: c_uchar , pub next : * mut sm_card_response , pub prev : * mut sm_card_response , } # [ test ] fn bindgen_test_layout_sm_card_response ( ) { assert_eq ! ( :: std :: mem :: size_of :: < sm_card_response > ( ) , 320usize , concat ! ( "Size of: " , stringify ! ( sm_card_response ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < sm_card_response > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( sm_card_response ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_card_response > ( ) ) ) . num as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( sm_card_response ) , "::" , stringify ! ( num ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_card_response > ( ) ) ) . data as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( sm_card_response ) , "::" , stringify ! ( data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_card_response > ( ) ) ) . data_len as * const _ as usize } , 272usize , concat ! ( "Offset of field: " , stringify ! ( sm_card_response ) , "::" , stringify ! ( data_len ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_card_response > ( ) ) ) . mac as * const _ as usize } , 280usize , concat ! ( "Offset of field: " , stringify ! ( sm_card_response ) , "::" , stringify ! ( mac ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_card_response > ( ) ) ) . mac_len as * const _ as usize } , 288usize , concat ! ( "Offset of field: " , stringify ! ( sm_card_response ) , "::" , stringify ! ( mac_len ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_card_response > ( ) ) ) . sw1 as * const _ as usize } , 296usize , concat ! ( "Offset of field: " , stringify ! ( sm_card_response ) , "::" , stringify ! ( sw1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_card_response > ( ) ) ) . sw2 as * const _ as usize } , 297usize , concat ! ( "Offset of field: " , stringify ! ( sm_card_response ) , "::" , stringify ! ( sw2 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_card_response > ( ) ) ) . next as * const _ as usize } , 304usize , concat ! ( "Offset of field: " , stringify ! ( sm_card_response ) , "::" , stringify ! ( next ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_card_response > ( ) ) ) . prev as * const _ as usize } , 312usize , concat ! ( "Offset of field: " , stringify ! ( sm_card_response ) , "::" , stringify ! ( prev ) ) ) ; } pub type sm_card_response_t = sm_card_response ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct sm_card_operations { pub open : :: std :: option :: Option < unsafe extern "C" fn ( card : * mut sc_card ) -> :: std :: os :: raw :: c_int > , pub get_sm_apdu : :: std :: option :: Option < unsafe extern "C" fn ( card : * mut sc_card , apdu : * mut sc_apdu , sm_apdu : * mut * mut sc_apdu ) -> :: std :: os :: raw :: c_int > , pub free_sm_apdu : :: std :: option :: Option < unsafe extern "C" fn ( card : * mut sc_card , apdu : * mut sc_apdu , sm_apdu : * mut * mut sc_apdu ) -> :: std :: os :: raw :: c_int > , pub close : :: std :: option :: Option < unsafe extern "C" fn ( card : * mut sc_card ) -> :: std :: os :: raw :: c_int > , pub read_binary : :: std :: option :: Option < unsafe extern "C" fn ( card : * mut sc_card , idx : :: std :: os :: raw :: c_uint , buf : * mut :: std :: os :: raw :: c_uchar , count : size_t ) -> :: std :: os :: raw :: c_int > , pub update_binary : :: std :: option :: Option < unsafe extern "C" fn ( card : * mut sc_card , idx : :: std :: os :: raw :: c_uint , buf : * const :: std :: os :: raw :: c_uchar , count : size_t ) -> :: std :: os :: raw :: c_int > , } # [ test ] fn bindgen_test_layout_sm_card_operations ( ) { assert_eq ! ( :: std :: mem :: size_of :: < sm_card_operations > ( ) , 48usize , concat ! ( "Size of: " , stringify ! ( sm_card_operations ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < sm_card_operations > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( sm_card_operations ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_card_operations > ( ) ) ) . open as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( sm_card_operations ) , "::" , stringify ! ( open ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_card_operations > ( ) ) ) . get_sm_apdu as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( sm_card_operations ) , "::" , stringify ! ( get_sm_apdu ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_card_operations > ( ) ) ) . free_sm_apdu as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( sm_card_operations ) , "::" , stringify ! ( free_sm_apdu ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_card_operations > ( ) ) ) . close as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( sm_card_operations ) , "::" , stringify ! ( close ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_card_operations > ( ) ) ) . read_binary as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( sm_card_operations ) , "::" , stringify ! ( read_binary ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_card_operations > ( ) ) ) . update_binary as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( sm_card_operations ) , "::" , stringify ! ( update_binary ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct sm_module_operations { pub initialize : :: std :: option :: Option < unsafe extern "C" fn ( ctx : * mut sc_context , info : * mut sm_info , out : * mut sc_remote_data ) -> :: std :: os :: raw :: c_int > , pub get_apdus : :: std :: option :: Option < unsafe extern "C" fn ( ctx : * mut sc_context , sm_info : * mut sm_info , init_data : * mut :: std :: os :: raw :: c_uchar , init_len : size_t , out : * mut sc_remote_data ) -> :: std :: os :: raw :: c_int > , pub finalize : :: std :: option :: Option < unsafe extern "C" fn ( ctx : * mut sc_context , info : * mut sm_info , rdata : * mut sc_remote_data , out : * mut :: std :: os :: raw :: c_uchar , out_len : size_t ) -> :: std :: os :: raw :: c_int > , pub module_init : :: std :: option :: Option < unsafe extern "C" fn ( ctx : * mut sc_context , data : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int > , pub module_cleanup : :: std :: option :: Option < unsafe extern "C" fn ( ctx : * mut sc_context ) -> :: std :: os :: raw :: c_int > , pub test : :: std :: option :: Option < unsafe extern "C" fn ( ctx : * mut sc_context , info : * mut sm_info , out : * mut :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int > , } # [ test ] fn bindgen_test_layout_sm_module_operations ( ) { assert_eq ! ( :: std :: mem :: size_of :: < sm_module_operations > ( ) , 48usize , concat ! ( "Size of: " , stringify ! ( sm_module_operations ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < sm_module_operations > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( sm_module_operations ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_module_operations > ( ) ) ) . initialize as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( sm_module_operations ) , "::" , stringify ! ( initialize ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_module_operations > ( ) ) ) . get_apdus as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( sm_module_operations ) , "::" , stringify ! ( get_apdus ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_module_operations > ( ) ) ) . finalize as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( sm_module_operations ) , "::" , stringify ! ( finalize ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_module_operations > ( ) ) ) . module_init as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( sm_module_operations ) , "::" , stringify ! ( module_init ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_module_operations > ( ) ) ) . module_cleanup as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( sm_module_operations ) , "::" , stringify ! ( module_cleanup ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_module_operations > ( ) ) ) . test as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( sm_module_operations ) , "::" , stringify ! ( test ) ) ) ; } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct sm_module { pub filename : [ :: std :: os :: raw :: c_char ; 128usize ] , pub handle : * mut :: std :: os :: raw :: c_void , pub ops : sm_module_operations , } # [ test ] fn bindgen_test_layout_sm_module ( ) { assert_eq ! ( :: std :: mem :: size_of :: < sm_module > ( ) , 184usize , concat ! ( "Size of: " , stringify ! ( sm_module ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < sm_module > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( sm_module ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_module > ( ) ) ) . filename as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( sm_module ) , "::" , stringify ! ( filename ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_module > ( ) ) ) . handle as * const _ as usize } , 128usize , concat ! ( "Offset of field: " , stringify ! ( sm_module ) , "::" , stringify ! ( handle ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_module > ( ) ) ) . ops as * const _ as usize } , 136usize , concat ! ( "Offset of field: " , stringify ! ( sm_module ) , "::" , stringify ! ( ops ) ) ) ; } pub type sm_module_t = sm_module ; # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct sm_context { pub config_section : [ :: std :: os :: raw :: c_char ; 64usize ] , pub sm_mode : :: std :: os :: raw :: c_uint , pub sm_flags : :: std :: os :: raw :: c_uint , pub info : sm_info , pub ops : sm_card_operations , pub module : sm_module , pub app_lock : :: std :: option :: Option < unsafe extern "C" fn ( ) -> :: std :: os :: raw :: c_ulong > , pub app_unlock : :: std :: option :: Option < unsafe extern "C" fn ( ) > , } # [ test ] fn bindgen_test_layout_sm_context ( ) { assert_eq ! ( :: std :: mem :: size_of :: < sm_context > ( ) , 952usize , concat ! ( "Size of: " , stringify ! ( sm_context ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < sm_context > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( sm_context ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_context > ( ) ) ) . config_section as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( sm_context ) , "::" , stringify ! ( config_section ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_context > ( ) ) ) . sm_mode as * const _ as usize } , 64usize , concat ! ( "Offset of field: " , stringify ! ( sm_context ) , "::" , stringify ! ( sm_mode ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_context > ( ) ) ) . sm_flags as * const _ as usize } , 68usize , concat ! ( "Offset of field: " , stringify ! ( sm_context ) , "::" , stringify ! ( sm_flags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_context > ( ) ) ) . info as * const _ as usize } , 72usize , concat ! ( "Offset of field: " , stringify ! ( sm_context ) , "::" , stringify ! ( info ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_context > ( ) ) ) . ops as * const _ as usize } , 704usize , concat ! ( "Offset of field: " , stringify ! ( sm_context ) , "::" , stringify ! ( ops ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_context > ( ) ) ) . module as * const _ as usize } , 752usize , concat ! ( "Offset of field: " , stringify ! ( sm_context ) , "::" , stringify ! ( module ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_context > ( ) ) ) . app_lock as * const _ as usize } , 936usize , concat ! ( "Offset of field: " , stringify ! ( sm_context ) , "::" , stringify ! ( app_lock ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sm_context > ( ) ) ) . app_unlock as * const _ as usize } , 944usize , concat ! ( "Offset of field: " , stringify ! ( sm_context ) , "::" , stringify ! ( app_unlock ) ) ) ; } pub type sm_context_t = sm_context ; extern "C" { pub fn sc_sm_parse_answer ( arg1 : * mut sc_card , arg2 : * mut :: std :: os :: raw :: c_uchar , arg3 : size_t , arg4 : * mut sm_card_response ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn sc_sm_update_apdu_response ( arg1 : * mut sc_card , arg2 : * mut :: std :: os :: raw :: c_uchar , arg3 : size_t , arg4 : :: std :: os :: raw :: c_int , arg5 : * mut sc_apdu ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn sc_sm_single_transmit ( arg1 : * mut sc_card , arg2 : * mut sc_apdu ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " @brief Stops SM and frees allocated resources." ] # [ doc = "" ] # [ doc = " Calls \\a card->sm_ctx.ops.close() if available and \\c card->sm_ctx.sm_mode" ] # [ doc = " is \\c SM_MODE_TRANSMIT" ] # [ doc = "" ] # [ doc = " @param[in] card card" ] # [ doc = "" ] # [ doc = " @return \\c SC_SUCCESS or error code if an error occurred" ] pub fn sc_sm_stop ( card : * mut sc_card ) -> :: std :: os :: raw :: c_int ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct sc_supported_algo_info { pub reference : :: std :: os :: raw :: c_uint , pub mechanism : :: std :: os :: raw :: c_uint , pub parameters : * mut sc_object_id , pub operations : :: std :: os :: raw :: c_uint , pub algo_id : sc_object_id , pub algo_ref : :: std :: os :: raw :: c_uint , } # [ test ] fn bindgen_test_layout_sc_supported_algo_info ( ) { assert_eq ! ( :: std :: mem :: size_of :: < sc_supported_algo_info > ( ) , 88usize , concat ! ( "Size of: " , stringify ! ( sc_supported_algo_info ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < sc_supported_algo_info > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( sc_supported_algo_info ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_supported_algo_info > ( ) ) ) . reference as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( sc_supported_algo_info ) , "::" , stringify ! ( reference ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_supported_algo_info > ( ) ) ) . mechanism as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( sc_supported_algo_info ) , "::" , stringify ! ( mechanism ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_supported_algo_info > ( ) ) ) . parameters as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( sc_supported_algo_info ) , "::" , stringify ! ( parameters ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_supported_algo_info > ( ) ) ) . operations as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( sc_supported_algo_info ) , "::" , stringify ! ( operations ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_supported_algo_info > ( ) ) ) . algo_id as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( sc_supported_algo_info ) , "::" , stringify ! ( algo_id ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_supported_algo_info > ( ) ) ) . algo_ref as * const _ as usize } , 84usize , concat ! ( "Offset of field: " , stringify ! ( sc_supported_algo_info ) , "::" , stringify ! ( algo_ref ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct sc_sec_env_param { pub param_type : :: std :: os :: raw :: c_uint , pub value : * mut :: std :: os :: raw :: c_void , pub value_len : :: std :: os :: raw :: c_uint , } # [ test ] fn bindgen_test_layout_sc_sec_env_param ( ) { assert_eq ! ( :: std :: mem :: size_of :: < sc_sec_env_param > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( sc_sec_env_param ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < sc_sec_env_param > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( sc_sec_env_param ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_sec_env_param > ( ) ) ) . param_type as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( sc_sec_env_param ) , "::" , stringify ! ( param_type ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_sec_env_param > ( ) ) ) . value as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( sc_sec_env_param ) , "::" , stringify ! ( value ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_sec_env_param > ( ) ) ) . value_len as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( sc_sec_env_param ) , "::" , stringify ! ( value_len ) ) ) ; } pub type sc_sec_env_param_t = sc_sec_env_param ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct sc_security_env { pub flags : :: std :: os :: raw :: c_ulong , pub operation : :: std :: os :: raw :: c_int , pub algorithm : :: std :: os :: raw :: c_uint , pub algorithm_flags : :: std :: os :: raw :: c_uint , pub algorithm_ref : :: std :: os :: raw :: c_uint , pub file_ref : sc_path , pub key_ref : [ :: std :: os :: raw :: c_uchar ; 8usize ] , pub key_ref_len : size_t , pub target_file_ref : sc_path , pub supported_algos : [ sc_supported_algo_info ; 8usize ] , pub params : [ sc_sec_env_param ; 10usize ] , } # [ test ] fn bindgen_test_layout_sc_security_env ( ) { assert_eq ! ( :: std :: mem :: size_of :: < sc_security_env > ( ) , 1112usize , concat ! ( "Size of: " , stringify ! ( sc_security_env ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < sc_security_env > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( sc_security_env ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_security_env > ( ) ) ) . flags as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( sc_security_env ) , "::" , stringify ! ( flags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_security_env > ( ) ) ) . operation as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( sc_security_env ) , "::" , stringify ! ( operation ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_security_env > ( ) ) ) . algorithm as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( sc_security_env ) , "::" , stringify ! ( algorithm ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_security_env > ( ) ) ) . algorithm_flags as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( sc_security_env ) , "::" , stringify ! ( algorithm_flags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_security_env > ( ) ) ) . algorithm_ref as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( sc_security_env ) , "::" , stringify ! ( algorithm_ref ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_security_env > ( ) ) ) . file_ref as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( sc_security_env ) , "::" , stringify ! ( file_ref ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_security_env > ( ) ) ) . key_ref as * const _ as usize } , 88usize , concat ! ( "Offset of field: " , stringify ! ( sc_security_env ) , "::" , stringify ! ( key_ref ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_security_env > ( ) ) ) . key_ref_len as * const _ as usize } , 96usize , concat ! ( "Offset of field: " , stringify ! ( sc_security_env ) , "::" , stringify ! ( key_ref_len ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_security_env > ( ) ) ) . target_file_ref as * const _ as usize } , 104usize , concat ! ( "Offset of field: " , stringify ! ( sc_security_env ) , "::" , stringify ! ( target_file_ref ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_security_env > ( ) ) ) . supported_algos as * const _ as usize } , 168usize , concat ! ( "Offset of field: " , stringify ! ( sc_security_env ) , "::" , stringify ! ( supported_algos ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_security_env > ( ) ) ) . params as * const _ as usize } , 872usize , concat ! ( "Offset of field: " , stringify ! ( sc_security_env ) , "::" , stringify ! ( params ) ) ) ; } pub type sc_security_env_t = sc_security_env ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct sc_algorithm_id { pub algorithm : :: std :: os :: raw :: c_uint , pub oid : sc_object_id , pub params : * mut :: std :: os :: raw :: c_void , } # [ test ] fn bindgen_test_layout_sc_algorithm_id ( ) { assert_eq ! ( :: std :: mem :: size_of :: < sc_algorithm_id > ( ) , 80usize , concat ! ( "Size of: " , stringify ! ( sc_algorithm_id ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < sc_algorithm_id > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( sc_algorithm_id ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_algorithm_id > ( ) ) ) . algorithm as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( sc_algorithm_id ) , "::" , stringify ! ( algorithm ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_algorithm_id > ( ) ) ) . oid as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( sc_algorithm_id ) , "::" , stringify ! ( oid ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_algorithm_id > ( ) ) ) . params as * const _ as usize } , 72usize , concat ! ( "Offset of field: " , stringify ! ( sc_algorithm_id ) , "::" , stringify ! ( params ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct sc_pbkdf2_params { pub salt : [ u8 ; 16usize ] , pub salt_len : size_t , pub iterations : :: std :: os :: raw :: c_int , pub key_length : size_t , pub hash_alg : sc_algorithm_id , } # [ test ] fn bindgen_test_layout_sc_pbkdf2_params ( ) { assert_eq ! ( :: std :: mem :: size_of :: < sc_pbkdf2_params > ( ) , 120usize , concat ! ( "Size of: " , stringify ! ( sc_pbkdf2_params ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < sc_pbkdf2_params > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( sc_pbkdf2_params ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_pbkdf2_params > ( ) ) ) . salt as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( sc_pbkdf2_params ) , "::" , stringify ! ( salt ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_pbkdf2_params > ( ) ) ) . salt_len as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( sc_pbkdf2_params ) , "::" , stringify ! ( salt_len ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_pbkdf2_params > ( ) ) ) . iterations as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( sc_pbkdf2_params ) , "::" , stringify ! ( iterations ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_pbkdf2_params > ( ) ) ) . key_length as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( sc_pbkdf2_params ) , "::" , stringify ! ( key_length ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_pbkdf2_params > ( ) ) ) . hash_alg as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( sc_pbkdf2_params ) , "::" , stringify ! ( hash_alg ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct sc_pbes2_params { pub derivation_alg : sc_algorithm_id , pub key_encr_alg : sc_algorithm_id , } # [ test ] fn bindgen_test_layout_sc_pbes2_params ( ) { assert_eq ! ( :: std :: mem :: size_of :: < sc_pbes2_params > ( ) , 160usize , concat ! ( "Size of: " , stringify ! ( sc_pbes2_params ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < sc_pbes2_params > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( sc_pbes2_params ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_pbes2_params > ( ) ) ) . derivation_alg as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( sc_pbes2_params ) , "::" , stringify ! ( derivation_alg ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_pbes2_params > ( ) ) ) . key_encr_alg as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( sc_pbes2_params ) , "::" , stringify ! ( key_encr_alg ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct sc_ec_parameters { pub named_curve : * mut :: std :: os :: raw :: c_char , pub id : sc_object_id , pub der : sc_lv_data , pub type_ : :: std :: os :: raw :: c_int , pub field_length : size_t , } # [ test ] fn bindgen_test_layout_sc_ec_parameters ( ) { assert_eq ! ( :: std :: mem :: size_of :: < sc_ec_parameters > ( ) , 104usize , concat ! ( "Size of: " , stringify ! ( sc_ec_parameters ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < sc_ec_parameters > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( sc_ec_parameters ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_ec_parameters > ( ) ) ) . named_curve as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( sc_ec_parameters ) , "::" , stringify ! ( named_curve ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_ec_parameters > ( ) ) ) . id as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( sc_ec_parameters ) , "::" , stringify ! ( id ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_ec_parameters > ( ) ) ) . der as * const _ as usize } , 72usize , concat ! ( "Offset of field: " , stringify ! ( sc_ec_parameters ) , "::" , stringify ! ( der ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_ec_parameters > ( ) ) ) . type_ as * const _ as usize } , 88usize , concat ! ( "Offset of field: " , stringify ! ( sc_ec_parameters ) , "::" , stringify ! ( type_ ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_ec_parameters > ( ) ) ) . field_length as * const _ as usize } , 96usize , concat ! ( "Offset of field: " , stringify ! ( sc_ec_parameters ) , "::" , stringify ! ( field_length ) ) ) ; } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct sc_algorithm_info { pub algorithm : :: std :: os :: raw :: c_uint , pub key_length : :: std :: os :: raw :: c_uint , pub flags : :: std :: os :: raw :: c_uint , pub u : sc_algorithm_info__bindgen_ty_1 , } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub union sc_algorithm_info__bindgen_ty_1 { pub _rsa : sc_algorithm_info__bindgen_ty_1_sc_rsa_info , pub _ec : sc_algorithm_info__bindgen_ty_1_sc_ec_info , _bindgen_union_align : [ u64 ; 14usize ] , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct sc_algorithm_info__bindgen_ty_1_sc_rsa_info { pub exponent : :: std :: os :: raw :: c_ulong , } # [ test ] fn bindgen_test_layout_sc_algorithm_info__bindgen_ty_1_sc_rsa_info ( ) { assert_eq ! ( :: std :: mem :: size_of :: < sc_algorithm_info__bindgen_ty_1_sc_rsa_info > ( ) , 8usize , concat ! ( "Size of: " , stringify ! ( sc_algorithm_info__bindgen_ty_1_sc_rsa_info ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < sc_algorithm_info__bindgen_ty_1_sc_rsa_info > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( sc_algorithm_info__bindgen_ty_1_sc_rsa_info ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_algorithm_info__bindgen_ty_1_sc_rsa_info > ( ) ) ) . exponent as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( sc_algorithm_info__bindgen_ty_1_sc_rsa_info ) , "::" , stringify ! ( exponent ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct sc_algorithm_info__bindgen_ty_1_sc_ec_info { pub ext_flags : :: std :: os :: raw :: c_uint , pub params : sc_ec_parameters , } # [ test ] fn bindgen_test_layout_sc_algorithm_info__bindgen_ty_1_sc_ec_info ( ) { assert_eq ! ( :: std :: mem :: size_of :: < sc_algorithm_info__bindgen_ty_1_sc_ec_info > ( ) , 112usize , concat ! ( "Size of: " , stringify ! ( sc_algorithm_info__bindgen_ty_1_sc_ec_info ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < sc_algorithm_info__bindgen_ty_1_sc_ec_info > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( sc_algorithm_info__bindgen_ty_1_sc_ec_info ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_algorithm_info__bindgen_ty_1_sc_ec_info > ( ) ) ) . ext_flags as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( sc_algorithm_info__bindgen_ty_1_sc_ec_info ) , "::" , stringify ! ( ext_flags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_algorithm_info__bindgen_ty_1_sc_ec_info > ( ) ) ) . params as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( sc_algorithm_info__bindgen_ty_1_sc_ec_info ) , "::" , stringify ! ( params ) ) ) ; } # [ test ] fn bindgen_test_layout_sc_algorithm_info__bindgen_ty_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < sc_algorithm_info__bindgen_ty_1 > ( ) , 112usize , concat ! ( "Size of: " , stringify ! ( sc_algorithm_info__bindgen_ty_1 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < sc_algorithm_info__bindgen_ty_1 > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( sc_algorithm_info__bindgen_ty_1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_algorithm_info__bindgen_ty_1 > ( ) ) ) . _rsa as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( sc_algorithm_info__bindgen_ty_1 ) , "::" , stringify ! ( _rsa ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_algorithm_info__bindgen_ty_1 > ( ) ) ) . _ec as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( sc_algorithm_info__bindgen_ty_1 ) , "::" , stringify ! ( _ec ) ) ) ; } # [ test ] fn bindgen_test_layout_sc_algorithm_info ( ) { assert_eq ! ( :: std :: mem :: size_of :: < sc_algorithm_info > ( ) , 128usize , concat ! ( "Size of: " , stringify ! ( sc_algorithm_info ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < sc_algorithm_info > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( sc_algorithm_info ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_algorithm_info > ( ) ) ) . algorithm as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( sc_algorithm_info ) , "::" , stringify ! ( algorithm ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_algorithm_info > ( ) ) ) . key_length as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( sc_algorithm_info ) , "::" , stringify ! ( key_length ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_algorithm_info > ( ) ) ) . flags as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( sc_algorithm_info ) , "::" , stringify ! ( flags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_algorithm_info > ( ) ) ) . u as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( sc_algorithm_info ) , "::" , stringify ! ( u ) ) ) ; } pub type sc_algorithm_info_t = sc_algorithm_info ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct sc_app_info { pub label : * mut :: std :: os :: raw :: c_char , pub aid : sc_aid , pub ddo : sc_ddo , pub path : sc_path , pub rec_nr : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_sc_app_info ( ) { assert_eq ! ( :: std :: mem :: size_of :: < sc_app_info > ( ) , 232usize , concat ! ( "Size of: " , stringify ! ( sc_app_info ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < sc_app_info > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( sc_app_info ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_app_info > ( ) ) ) . label as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( sc_app_info ) , "::" , stringify ! ( label ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_app_info > ( ) ) ) . aid as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( sc_app_info ) , "::" , stringify ! ( aid ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_app_info > ( ) ) ) . ddo as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( sc_app_info ) , "::" , stringify ! ( ddo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_app_info > ( ) ) ) . path as * const _ as usize } , 160usize , concat ! ( "Offset of field: " , stringify ! ( sc_app_info ) , "::" , stringify ! ( path ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_app_info > ( ) ) ) . rec_nr as * const _ as usize } , 224usize , concat ! ( "Offset of field: " , stringify ! ( sc_app_info ) , "::" , stringify ! ( rec_nr ) ) ) ; } pub type sc_app_info_t = sc_app_info ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct sc_ef_atr { pub card_service : :: std :: os :: raw :: c_uchar , pub df_selection : :: std :: os :: raw :: c_uchar , pub unit_size : size_t , pub card_capabilities : :: std :: os :: raw :: c_uchar , pub max_command_apdu : size_t , pub max_response_apdu : size_t , pub aid : sc_aid , pub pre_issuing : [ :: std :: os :: raw :: c_uchar ; 6usize ] , pub pre_issuing_len : size_t , pub issuer_data : [ :: std :: os :: raw :: c_uchar ; 16usize ] , pub issuer_data_len : size_t , pub allocation_oid : sc_object_id , pub status : :: std :: os :: raw :: c_uint , } # [ test ] fn bindgen_test_layout_sc_ef_atr ( ) { assert_eq ! ( :: std :: mem :: size_of :: < sc_ef_atr > ( ) , 176usize , concat ! ( "Size of: " , stringify ! ( sc_ef_atr ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < sc_ef_atr > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( sc_ef_atr ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_ef_atr > ( ) ) ) . card_service as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( sc_ef_atr ) , "::" , stringify ! ( card_service ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_ef_atr > ( ) ) ) . df_selection as * const _ as usize } , 1usize , concat ! ( "Offset of field: " , stringify ! ( sc_ef_atr ) , "::" , stringify ! ( df_selection ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_ef_atr > ( ) ) ) . unit_size as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( sc_ef_atr ) , "::" , stringify ! ( unit_size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_ef_atr > ( ) ) ) . card_capabilities as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( sc_ef_atr ) , "::" , stringify ! ( card_capabilities ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_ef_atr > ( ) ) ) . max_command_apdu as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( sc_ef_atr ) , "::" , stringify ! ( max_command_apdu ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_ef_atr > ( ) ) ) . max_response_apdu as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( sc_ef_atr ) , "::" , stringify ! ( max_response_apdu ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_ef_atr > ( ) ) ) . aid as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( sc_ef_atr ) , "::" , stringify ! ( aid ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_ef_atr > ( ) ) ) . pre_issuing as * const _ as usize } , 64usize , concat ! ( "Offset of field: " , stringify ! ( sc_ef_atr ) , "::" , stringify ! ( pre_issuing ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_ef_atr > ( ) ) ) . pre_issuing_len as * const _ as usize } , 72usize , concat ! ( "Offset of field: " , stringify ! ( sc_ef_atr ) , "::" , stringify ! ( pre_issuing_len ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_ef_atr > ( ) ) ) . issuer_data as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( sc_ef_atr ) , "::" , stringify ! ( issuer_data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_ef_atr > ( ) ) ) . issuer_data_len as * const _ as usize } , 96usize , concat ! ( "Offset of field: " , stringify ! ( sc_ef_atr ) , "::" , stringify ! ( issuer_data_len ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_ef_atr > ( ) ) ) . allocation_oid as * const _ as usize } , 104usize , concat ! ( "Offset of field: " , stringify ! ( sc_ef_atr ) , "::" , stringify ! ( allocation_oid ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_ef_atr > ( ) ) ) . status as * const _ as usize } , 168usize , concat ! ( "Offset of field: " , stringify ! ( sc_ef_atr ) , "::" , stringify ! ( status ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct sc_card_cache { pub current_path : sc_path , pub current_ef : * mut sc_file , pub current_df : * mut sc_file , pub valid : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_sc_card_cache ( ) { assert_eq ! ( :: std :: mem :: size_of :: < sc_card_cache > ( ) , 88usize , concat ! ( "Size of: " , stringify ! ( sc_card_cache ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < sc_card_cache > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( sc_card_cache ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card_cache > ( ) ) ) . current_path as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( sc_card_cache ) , "::" , stringify ! ( current_path ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card_cache > ( ) ) ) . current_ef as * const _ as usize } , 64usize , concat ! ( "Offset of field: " , stringify ! ( sc_card_cache ) , "::" , stringify ! ( current_ef ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card_cache > ( ) ) ) . current_df as * const _ as usize } , 72usize , concat ! ( "Offset of field: " , stringify ! ( sc_card_cache ) , "::" , stringify ! ( current_df ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card_cache > ( ) ) ) . valid as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( sc_card_cache ) , "::" , stringify ! ( valid ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct sc_reader_driver { pub name : * const :: std :: os :: raw :: c_char , pub short_name : * const :: std :: os :: raw :: c_char , pub ops : * mut sc_reader_operations , pub dll : * mut :: std :: os :: raw :: c_void , } # [ test ] fn bindgen_test_layout_sc_reader_driver ( ) { assert_eq ! ( :: std :: mem :: size_of :: < sc_reader_driver > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( sc_reader_driver ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < sc_reader_driver > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( sc_reader_driver ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_reader_driver > ( ) ) ) . name as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( sc_reader_driver ) , "::" , stringify ! ( name ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_reader_driver > ( ) ) ) . short_name as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( sc_reader_driver ) , "::" , stringify ! ( short_name ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_reader_driver > ( ) ) ) . ops as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( sc_reader_driver ) , "::" , stringify ! ( ops ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_reader_driver > ( ) ) ) . dll as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( sc_reader_driver ) , "::" , stringify ! ( dll ) ) ) ; } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct sc_reader { pub ctx : * mut sc_context , pub driver : * const sc_reader_driver , pub ops : * const sc_reader_operations , pub drv_data : * mut :: std :: os :: raw :: c_void , pub name : * mut :: std :: os :: raw :: c_char , pub vendor : * mut :: std :: os :: raw :: c_char , pub version_major : :: std :: os :: raw :: c_uchar , pub version_minor : :: std :: os :: raw :: c_uchar , pub flags : :: std :: os :: raw :: c_ulong , pub capabilities : :: std :: os :: raw :: c_ulong , pub supported_protocols : :: std :: os :: raw :: c_uint , pub active_protocol : :: std :: os :: raw :: c_uint , pub max_send_size : size_t , pub max_recv_size : size_t , pub atr : sc_atr , pub uid : sc_uid , pub atr_info : sc_reader__atr_info , } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct sc_reader__atr_info { pub hist_bytes : * mut u8 , pub hist_bytes_len : size_t , pub Fi : :: std :: os :: raw :: c_int , pub f : :: std :: os :: raw :: c_int , pub Di : :: std :: os :: raw :: c_int , pub N : :: std :: os :: raw :: c_int , pub FI : u8 , pub DI : u8 , } # [ test ] fn bindgen_test_layout_sc_reader__atr_info ( ) { assert_eq ! ( :: std :: mem :: size_of :: < sc_reader__atr_info > ( ) , 40usize , concat ! ( "Size of: " , stringify ! ( sc_reader__atr_info ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < sc_reader__atr_info > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( sc_reader__atr_info ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_reader__atr_info > ( ) ) ) . hist_bytes as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( sc_reader__atr_info ) , "::" , stringify ! ( hist_bytes ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_reader__atr_info > ( ) ) ) . hist_bytes_len as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( sc_reader__atr_info ) , "::" , stringify ! ( hist_bytes_len ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_reader__atr_info > ( ) ) ) . Fi as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( sc_reader__atr_info ) , "::" , stringify ! ( Fi ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_reader__atr_info > ( ) ) ) . f as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( sc_reader__atr_info ) , "::" , stringify ! ( f ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_reader__atr_info > ( ) ) ) . Di as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( sc_reader__atr_info ) , "::" , stringify ! ( Di ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_reader__atr_info > ( ) ) ) . N as * const _ as usize } , 28usize , concat ! ( "Offset of field: " , stringify ! ( sc_reader__atr_info ) , "::" , stringify ! ( N ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_reader__atr_info > ( ) ) ) . FI as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( sc_reader__atr_info ) , "::" , stringify ! ( FI ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_reader__atr_info > ( ) ) ) . DI as * const _ as usize } , 33usize , concat ! ( "Offset of field: " , stringify ! ( sc_reader__atr_info ) , "::" , stringify ! ( DI ) ) ) ; } # [ test ] fn bindgen_test_layout_sc_reader ( ) { assert_eq ! ( :: std :: mem :: size_of :: < sc_reader > ( ) , 208usize , concat ! ( "Size of: " , stringify ! ( sc_reader ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < sc_reader > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( sc_reader ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_reader > ( ) ) ) . ctx as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( sc_reader ) , "::" , stringify ! ( ctx ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_reader > ( ) ) ) . driver as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( sc_reader ) , "::" , stringify ! ( driver ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_reader > ( ) ) ) . ops as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( sc_reader ) , "::" , stringify ! ( ops ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_reader > ( ) ) ) . drv_data as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( sc_reader ) , "::" , stringify ! ( drv_data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_reader > ( ) ) ) . name as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( sc_reader ) , "::" , stringify ! ( name ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_reader > ( ) ) ) . vendor as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( sc_reader ) , "::" , stringify ! ( vendor ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_reader > ( ) ) ) . version_major as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( sc_reader ) , "::" , stringify ! ( version_major ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_reader > ( ) ) ) . version_minor as * const _ as usize } , 49usize , concat ! ( "Offset of field: " , stringify ! ( sc_reader ) , "::" , stringify ! ( version_minor ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_reader > ( ) ) ) . flags as * const _ as usize } , 56usize , concat ! ( "Offset of field: " , stringify ! ( sc_reader ) , "::" , stringify ! ( flags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_reader > ( ) ) ) . capabilities as * const _ as usize } , 64usize , concat ! ( "Offset of field: " , stringify ! ( sc_reader ) , "::" , stringify ! ( capabilities ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_reader > ( ) ) ) . supported_protocols as * const _ as usize } , 72usize , concat ! ( "Offset of field: " , stringify ! ( sc_reader ) , "::" , stringify ! ( supported_protocols ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_reader > ( ) ) ) . active_protocol as * const _ as usize } , 76usize , concat ! ( "Offset of field: " , stringify ! ( sc_reader ) , "::" , stringify ! ( active_protocol ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_reader > ( ) ) ) . max_send_size as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( sc_reader ) , "::" , stringify ! ( max_send_size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_reader > ( ) ) ) . max_recv_size as * const _ as usize } , 88usize , concat ! ( "Offset of field: " , stringify ! ( sc_reader ) , "::" , stringify ! ( max_recv_size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_reader > ( ) ) ) . atr as * const _ as usize } , 96usize , concat ! ( "Offset of field: " , stringify ! ( sc_reader ) , "::" , stringify ! ( atr ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_reader > ( ) ) ) . uid as * const _ as usize } , 144usize , concat ! ( "Offset of field: " , stringify ! ( sc_reader ) , "::" , stringify ! ( uid ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_reader > ( ) ) ) . atr_info as * const _ as usize } , 168usize , concat ! ( "Offset of field: " , stringify ! ( sc_reader ) , "::" , stringify ! ( atr_info ) ) ) ; } pub type sc_reader_t = sc_reader ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct sc_pin_cmd_pin { pub prompt : * const :: std :: os :: raw :: c_char , pub data : * const :: std :: os :: raw :: c_uchar , pub len : :: std :: os :: raw :: c_int , pub min_length : size_t , pub max_length : size_t , pub stored_length : size_t , pub encoding : :: std :: os :: raw :: c_uint , pub pad_length : size_t , pub pad_char : :: std :: os :: raw :: c_uchar , pub offset : size_t , pub length_offset : size_t , pub max_tries : :: std :: os :: raw :: c_int , pub tries_left : :: std :: os :: raw :: c_int , pub logged_in : :: std :: os :: raw :: c_int , pub acls : [ sc_acl_entry ; 8usize ] , } # [ test ] fn bindgen_test_layout_sc_pin_cmd_pin ( ) { assert_eq ! ( :: std :: mem :: size_of :: < sc_pin_cmd_pin > ( ) , 4456usize , concat ! ( "Size of: " , stringify ! ( sc_pin_cmd_pin ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < sc_pin_cmd_pin > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( sc_pin_cmd_pin ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_pin_cmd_pin > ( ) ) ) . prompt as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( sc_pin_cmd_pin ) , "::" , stringify ! ( prompt ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_pin_cmd_pin > ( ) ) ) . data as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( sc_pin_cmd_pin ) , "::" , stringify ! ( data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_pin_cmd_pin > ( ) ) ) . len as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( sc_pin_cmd_pin ) , "::" , stringify ! ( len ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_pin_cmd_pin > ( ) ) ) . min_length as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( sc_pin_cmd_pin ) , "::" , stringify ! ( min_length ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_pin_cmd_pin > ( ) ) ) . max_length as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( sc_pin_cmd_pin ) , "::" , stringify ! ( max_length ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_pin_cmd_pin > ( ) ) ) . stored_length as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( sc_pin_cmd_pin ) , "::" , stringify ! ( stored_length ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_pin_cmd_pin > ( ) ) ) . encoding as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( sc_pin_cmd_pin ) , "::" , stringify ! ( encoding ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_pin_cmd_pin > ( ) ) ) . pad_length as * const _ as usize } , 56usize , concat ! ( "Offset of field: " , stringify ! ( sc_pin_cmd_pin ) , "::" , stringify ! ( pad_length ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_pin_cmd_pin > ( ) ) ) . pad_char as * const _ as usize } , 64usize , concat ! ( "Offset of field: " , stringify ! ( sc_pin_cmd_pin ) , "::" , stringify ! ( pad_char ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_pin_cmd_pin > ( ) ) ) . offset as * const _ as usize } , 72usize , concat ! ( "Offset of field: " , stringify ! ( sc_pin_cmd_pin ) , "::" , stringify ! ( offset ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_pin_cmd_pin > ( ) ) ) . length_offset as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( sc_pin_cmd_pin ) , "::" , stringify ! ( length_offset ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_pin_cmd_pin > ( ) ) ) . max_tries as * const _ as usize } , 88usize , concat ! ( "Offset of field: " , stringify ! ( sc_pin_cmd_pin ) , "::" , stringify ! ( max_tries ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_pin_cmd_pin > ( ) ) ) . tries_left as * const _ as usize } , 92usize , concat ! ( "Offset of field: " , stringify ! ( sc_pin_cmd_pin ) , "::" , stringify ! ( tries_left ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_pin_cmd_pin > ( ) ) ) . logged_in as * const _ as usize } , 96usize , concat ! ( "Offset of field: " , stringify ! ( sc_pin_cmd_pin ) , "::" , stringify ! ( logged_in ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_pin_cmd_pin > ( ) ) ) . acls as * const _ as usize } , 104usize , concat ! ( "Offset of field: " , stringify ! ( sc_pin_cmd_pin ) , "::" , stringify ! ( acls ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct sc_pin_cmd_data { pub cmd : :: std :: os :: raw :: c_uint , pub flags : :: std :: os :: raw :: c_uint , pub pin_type : :: std :: os :: raw :: c_uint , pub pin_reference : :: std :: os :: raw :: c_int , pub pin1 : sc_pin_cmd_pin , pub pin2 : sc_pin_cmd_pin , pub apdu : * mut sc_apdu , } # [ test ] fn bindgen_test_layout_sc_pin_cmd_data ( ) { assert_eq ! ( :: std :: mem :: size_of :: < sc_pin_cmd_data > ( ) , 8936usize , concat ! ( "Size of: " , stringify ! ( sc_pin_cmd_data ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < sc_pin_cmd_data > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( sc_pin_cmd_data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_pin_cmd_data > ( ) ) ) . cmd as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( sc_pin_cmd_data ) , "::" , stringify ! ( cmd ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_pin_cmd_data > ( ) ) ) . flags as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( sc_pin_cmd_data ) , "::" , stringify ! ( flags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_pin_cmd_data > ( ) ) ) . pin_type as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( sc_pin_cmd_data ) , "::" , stringify ! ( pin_type ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_pin_cmd_data > ( ) ) ) . pin_reference as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( sc_pin_cmd_data ) , "::" , stringify ! ( pin_reference ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_pin_cmd_data > ( ) ) ) . pin1 as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( sc_pin_cmd_data ) , "::" , stringify ! ( pin1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_pin_cmd_data > ( ) ) ) . pin2 as * const _ as usize } , 4472usize , concat ! ( "Offset of field: " , stringify ! ( sc_pin_cmd_data ) , "::" , stringify ! ( pin2 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_pin_cmd_data > ( ) ) ) . apdu as * const _ as usize } , 8928usize , concat ! ( "Offset of field: " , stringify ! ( sc_pin_cmd_data ) , "::" , stringify ! ( apdu ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct sc_reader_operations { pub init : :: std :: option :: Option < unsafe extern "C" fn ( ctx : * mut sc_context ) -> :: std :: os :: raw :: c_int > , pub finish : :: std :: option :: Option < unsafe extern "C" fn ( ctx : * mut sc_context ) -> :: std :: os :: raw :: c_int > , pub detect_readers : :: std :: option :: Option < unsafe extern "C" fn ( ctx : * mut sc_context ) -> :: std :: os :: raw :: c_int > , pub cancel : :: std :: option :: Option < unsafe extern "C" fn ( ctx : * mut sc_context ) -> :: std :: os :: raw :: c_int > , pub release : :: std :: option :: Option < unsafe extern "C" fn ( reader : * mut sc_reader ) -> :: std :: os :: raw :: c_int > , pub detect_card_presence : :: std :: option :: Option < unsafe extern "C" fn ( reader : * mut sc_reader ) -> :: std :: os :: raw :: c_int > , pub connect : :: std :: option :: Option < unsafe extern "C" fn ( reader : * mut sc_reader ) -> :: std :: os :: raw :: c_int > , pub disconnect : :: std :: option :: Option < unsafe extern "C" fn ( reader : * mut sc_reader ) -> :: std :: os :: raw :: c_int > , pub transmit : :: std :: option :: Option < unsafe extern "C" fn ( reader : * mut sc_reader , apdu : * mut sc_apdu_t ) -> :: std :: os :: raw :: c_int > , pub lock : :: std :: option :: Option < unsafe extern "C" fn ( reader : * mut sc_reader ) -> :: std :: os :: raw :: c_int > , pub unlock : :: std :: option :: Option < unsafe extern "C" fn ( reader : * mut sc_reader ) -> :: std :: os :: raw :: c_int > , pub set_protocol : :: std :: option :: Option < unsafe extern "C" fn ( reader : * mut sc_reader , proto : :: std :: os :: raw :: c_uint ) -> :: std :: os :: raw :: c_int > , pub display_message : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut sc_reader , arg2 : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int > , pub perform_verify : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut sc_reader , arg2 : * mut sc_pin_cmd_data ) -> :: std :: os :: raw :: c_int > , pub perform_pace : :: std :: option :: Option < unsafe extern "C" fn ( reader : * mut sc_reader , establish_pace_channel_input : * mut :: std :: os :: raw :: c_void , establish_pace_channel_output : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int > , pub wait_for_event : :: std :: option :: Option < unsafe extern "C" fn ( ctx : * mut sc_context , event_mask : :: std :: os :: raw :: c_uint , event_reader : * mut * mut sc_reader_t , event : * mut :: std :: os :: raw :: c_uint , timeout : :: std :: os :: raw :: c_int , reader_states : * mut * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int > , pub reset : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut sc_reader , arg2 : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int > , pub use_reader : :: std :: option :: Option < unsafe extern "C" fn ( ctx : * mut sc_context , pcsc_context_handle : * mut :: std :: os :: raw :: c_void , pcsc_card_handle : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int > , } # [ test ] fn bindgen_test_layout_sc_reader_operations ( ) { assert_eq ! ( :: std :: mem :: size_of :: < sc_reader_operations > ( ) , 144usize , concat ! ( "Size of: " , stringify ! ( sc_reader_operations ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < sc_reader_operations > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( sc_reader_operations ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_reader_operations > ( ) ) ) . init as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( sc_reader_operations ) , "::" , stringify ! ( init ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_reader_operations > ( ) ) ) . finish as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( sc_reader_operations ) , "::" , stringify ! ( finish ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_reader_operations > ( ) ) ) . detect_readers as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( sc_reader_operations ) , "::" , stringify ! ( detect_readers ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_reader_operations > ( ) ) ) . cancel as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( sc_reader_operations ) , "::" , stringify ! ( cancel ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_reader_operations > ( ) ) ) . release as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( sc_reader_operations ) , "::" , stringify ! ( release ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_reader_operations > ( ) ) ) . detect_card_presence as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( sc_reader_operations ) , "::" , stringify ! ( detect_card_presence ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_reader_operations > ( ) ) ) . connect as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( sc_reader_operations ) , "::" , stringify ! ( connect ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_reader_operations > ( ) ) ) . disconnect as * const _ as usize } , 56usize , concat ! ( "Offset of field: " , stringify ! ( sc_reader_operations ) , "::" , stringify ! ( disconnect ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_reader_operations > ( ) ) ) . transmit as * const _ as usize } , 64usize , concat ! ( "Offset of field: " , stringify ! ( sc_reader_operations ) , "::" , stringify ! ( transmit ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_reader_operations > ( ) ) ) . lock as * const _ as usize } , 72usize , concat ! ( "Offset of field: " , stringify ! ( sc_reader_operations ) , "::" , stringify ! ( lock ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_reader_operations > ( ) ) ) . unlock as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( sc_reader_operations ) , "::" , stringify ! ( unlock ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_reader_operations > ( ) ) ) . set_protocol as * const _ as usize } , 88usize , concat ! ( "Offset of field: " , stringify ! ( sc_reader_operations ) , "::" , stringify ! ( set_protocol ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_reader_operations > ( ) ) ) . display_message as * const _ as usize } , 96usize , concat ! ( "Offset of field: " , stringify ! ( sc_reader_operations ) , "::" , stringify ! ( display_message ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_reader_operations > ( ) ) ) . perform_verify as * const _ as usize } , 104usize , concat ! ( "Offset of field: " , stringify ! ( sc_reader_operations ) , "::" , stringify ! ( perform_verify ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_reader_operations > ( ) ) ) . perform_pace as * const _ as usize } , 112usize , concat ! ( "Offset of field: " , stringify ! ( sc_reader_operations ) , "::" , stringify ! ( perform_pace ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_reader_operations > ( ) ) ) . wait_for_event as * const _ as usize } , 120usize , concat ! ( "Offset of field: " , stringify ! ( sc_reader_operations ) , "::" , stringify ! ( wait_for_event ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_reader_operations > ( ) ) ) . reset as * const _ as usize } , 128usize , concat ! ( "Offset of field: " , stringify ! ( sc_reader_operations ) , "::" , stringify ! ( reset ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_reader_operations > ( ) ) ) . use_reader as * const _ as usize } , 136usize , concat ! ( "Offset of field: " , stringify ! ( sc_reader_operations ) , "::" , stringify ! ( use_reader ) ) ) ; } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct sc_card { pub ctx : * mut sc_context , pub reader : * mut sc_reader , pub atr : sc_atr , pub uid : sc_uid , pub type_ : :: std :: os :: raw :: c_int , pub caps : :: std :: os :: raw :: c_ulong , pub flags : :: std :: os :: raw :: c_ulong , pub cla : :: std :: os :: raw :: c_int , pub max_send_size : size_t , pub max_recv_size : size_t , pub app : [ * mut sc_app_info ; 8usize ] , pub app_count : :: std :: os :: raw :: c_int , pub ef_atr : * mut sc_ef_atr , pub algorithms : * mut sc_algorithm_info , pub algorithm_count : :: std :: os :: raw :: c_int , pub lock_count : :: std :: os :: raw :: c_int , pub driver : * mut sc_card_driver , pub ops : * mut sc_card_operations , pub name : * const :: std :: os :: raw :: c_char , pub drv_data : * mut :: std :: os :: raw :: c_void , pub max_pin_len : :: std :: os :: raw :: c_int , pub cache : sc_card_cache , pub serialnr : sc_serial_number , pub version : sc_version , pub mutex : * mut :: std :: os :: raw :: c_void , pub sm_ctx : sm_context , pub magic : :: std :: os :: raw :: c_uint , } # [ test ] fn bindgen_test_layout_sc_card ( ) { assert_eq ! ( :: std :: mem :: size_of :: < sc_card > ( ) , 1392usize , concat ! ( "Size of: " , stringify ! ( sc_card ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < sc_card > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( sc_card ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card > ( ) ) ) . ctx as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( sc_card ) , "::" , stringify ! ( ctx ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card > ( ) ) ) . reader as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( sc_card ) , "::" , stringify ! ( reader ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card > ( ) ) ) . atr as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( sc_card ) , "::" , stringify ! ( atr ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card > ( ) ) ) . uid as * const _ as usize } , 64usize , concat ! ( "Offset of field: " , stringify ! ( sc_card ) , "::" , stringify ! ( uid ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card > ( ) ) ) . type_ as * const _ as usize } , 88usize , concat ! ( "Offset of field: " , stringify ! ( sc_card ) , "::" , stringify ! ( type_ ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card > ( ) ) ) . caps as * const _ as usize } , 96usize , concat ! ( "Offset of field: " , stringify ! ( sc_card ) , "::" , stringify ! ( caps ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card > ( ) ) ) . flags as * const _ as usize } , 104usize , concat ! ( "Offset of field: " , stringify ! ( sc_card ) , "::" , stringify ! ( flags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card > ( ) ) ) . cla as * const _ as usize } , 112usize , concat ! ( "Offset of field: " , stringify ! ( sc_card ) , "::" , stringify ! ( cla ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card > ( ) ) ) . max_send_size as * const _ as usize } , 120usize , concat ! ( "Offset of field: " , stringify ! ( sc_card ) , "::" , stringify ! ( max_send_size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card > ( ) ) ) . max_recv_size as * const _ as usize } , 128usize , concat ! ( "Offset of field: " , stringify ! ( sc_card ) , "::" , stringify ! ( max_recv_size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card > ( ) ) ) . app as * const _ as usize } , 136usize , concat ! ( "Offset of field: " , stringify ! ( sc_card ) , "::" , stringify ! ( app ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card > ( ) ) ) . app_count as * const _ as usize } , 200usize , concat ! ( "Offset of field: " , stringify ! ( sc_card ) , "::" , stringify ! ( app_count ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card > ( ) ) ) . ef_atr as * const _ as usize } , 208usize , concat ! ( "Offset of field: " , stringify ! ( sc_card ) , "::" , stringify ! ( ef_atr ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card > ( ) ) ) . algorithms as * const _ as usize } , 216usize , concat ! ( "Offset of field: " , stringify ! ( sc_card ) , "::" , stringify ! ( algorithms ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card > ( ) ) ) . algorithm_count as * const _ as usize } , 224usize , concat ! ( "Offset of field: " , stringify ! ( sc_card ) , "::" , stringify ! ( algorithm_count ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card > ( ) ) ) . lock_count as * const _ as usize } , 228usize , concat ! ( "Offset of field: " , stringify ! ( sc_card ) , "::" , stringify ! ( lock_count ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card > ( ) ) ) . driver as * const _ as usize } , 232usize , concat ! ( "Offset of field: " , stringify ! ( sc_card ) , "::" , stringify ! ( driver ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card > ( ) ) ) . ops as * const _ as usize } , 240usize , concat ! ( "Offset of field: " , stringify ! ( sc_card ) , "::" , stringify ! ( ops ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card > ( ) ) ) . name as * const _ as usize } , 248usize , concat ! ( "Offset of field: " , stringify ! ( sc_card ) , "::" , stringify ! ( name ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card > ( ) ) ) . drv_data as * const _ as usize } , 256usize , concat ! ( "Offset of field: " , stringify ! ( sc_card ) , "::" , stringify ! ( drv_data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card > ( ) ) ) . max_pin_len as * const _ as usize } , 264usize , concat ! ( "Offset of field: " , stringify ! ( sc_card ) , "::" , stringify ! ( max_pin_len ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card > ( ) ) ) . cache as * const _ as usize } , 272usize , concat ! ( "Offset of field: " , stringify ! ( sc_card ) , "::" , stringify ! ( cache ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card > ( ) ) ) . serialnr as * const _ as usize } , 360usize , concat ! ( "Offset of field: " , stringify ! ( sc_card ) , "::" , stringify ! ( serialnr ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card > ( ) ) ) . version as * const _ as usize } , 416usize , concat ! ( "Offset of field: " , stringify ! ( sc_card ) , "::" , stringify ! ( version ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card > ( ) ) ) . mutex as * const _ as usize } , 424usize , concat ! ( "Offset of field: " , stringify ! ( sc_card ) , "::" , stringify ! ( mutex ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card > ( ) ) ) . sm_ctx as * const _ as usize } , 432usize , concat ! ( "Offset of field: " , stringify ! ( sc_card ) , "::" , stringify ! ( sm_ctx ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card > ( ) ) ) . magic as * const _ as usize } , 1384usize , concat ! ( "Offset of field: " , stringify ! ( sc_card ) , "::" , stringify ! ( magic ) ) ) ; } pub type sc_card_t = sc_card ; # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct sc_card_operations { pub match_card : :: std :: option :: Option < unsafe extern "C" fn ( card : * mut sc_card ) -> :: std :: os :: raw :: c_int > , pub init : :: std :: option :: Option < unsafe extern "C" fn ( card : * mut sc_card ) -> :: std :: os :: raw :: c_int > , pub finish : :: std :: option :: Option < unsafe extern "C" fn ( card : * mut sc_card ) -> :: std :: os :: raw :: c_int > , pub read_binary : :: std :: option :: Option < unsafe extern "C" fn ( card : * mut sc_card , idx : :: std :: os :: raw :: c_uint , buf : * mut u8 , count : size_t , flags : :: std :: os :: raw :: c_ulong ) -> :: std :: os :: raw :: c_int > , pub write_binary : :: std :: option :: Option < unsafe extern "C" fn ( card : * mut sc_card , idx : :: std :: os :: raw :: c_uint , buf : * const u8 , count : size_t , flags : :: std :: os :: raw :: c_ulong ) -> :: std :: os :: raw :: c_int > , pub update_binary : :: std :: option :: Option < unsafe extern "C" fn ( card : * mut sc_card , idx : :: std :: os :: raw :: c_uint , buf : * const u8 , count : size_t , flags : :: std :: os :: raw :: c_ulong ) -> :: std :: os :: raw :: c_int > , pub erase_binary : :: std :: option :: Option < unsafe extern "C" fn ( card : * mut sc_card , idx : :: std :: os :: raw :: c_uint , count : size_t , flags : :: std :: os :: raw :: c_ulong ) -> :: std :: os :: raw :: c_int > , pub read_record : :: std :: option :: Option < unsafe extern "C" fn ( card : * mut sc_card , rec_nr : :: std :: os :: raw :: c_uint , buf : * mut u8 , count : size_t , flags : :: std :: os :: raw :: c_ulong ) -> :: std :: os :: raw :: c_int > , pub write_record : :: std :: option :: Option < unsafe extern "C" fn ( card : * mut sc_card , rec_nr : :: std :: os :: raw :: c_uint , buf : * const u8 , count : size_t , flags : :: std :: os :: raw :: c_ulong ) -> :: std :: os :: raw :: c_int > , pub append_record : :: std :: option :: Option < unsafe extern "C" fn ( card : * mut sc_card , buf : * const u8 , count : size_t , flags : :: std :: os :: raw :: c_ulong ) -> :: std :: os :: raw :: c_int > , pub update_record : :: std :: option :: Option < unsafe extern "C" fn ( card : * mut sc_card , rec_nr : :: std :: os :: raw :: c_uint , buf : * const u8 , count : size_t , flags : :: std :: os :: raw :: c_ulong ) -> :: std :: os :: raw :: c_int > , pub select_file : :: std :: option :: Option < unsafe extern "C" fn ( card : * mut sc_card , path : * const sc_path , file_out : * mut * mut sc_file ) -> :: std :: os :: raw :: c_int > , pub get_response : :: std :: option :: Option < unsafe extern "C" fn ( card : * mut sc_card , count : * mut size_t , buf : * mut u8 ) -> :: std :: os :: raw :: c_int > , pub get_challenge : :: std :: option :: Option < unsafe extern "C" fn ( card : * mut sc_card , buf : * mut u8 , count : size_t ) -> :: std :: os :: raw :: c_int > , pub verify : :: std :: option :: Option < unsafe extern "C" fn ( card : * mut sc_card , type_ : :: std :: os :: raw :: c_uint , ref_qualifier : :: std :: os :: raw :: c_int , data : * const u8 , data_len : size_t , tries_left : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int > , pub logout : :: std :: option :: Option < unsafe extern "C" fn ( card : * mut sc_card ) -> :: std :: os :: raw :: c_int > , pub restore_security_env : :: std :: option :: Option < unsafe extern "C" fn ( card : * mut sc_card , se_num : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int > , pub set_security_env : :: std :: option :: Option < unsafe extern "C" fn ( card : * mut sc_card , env : * const sc_security_env , se_num : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int > , pub decipher : :: std :: option :: Option < unsafe extern "C" fn ( card : * mut sc_card , crgram : * const u8 , crgram_len : size_t , out : * mut u8 , outlen : size_t ) -> :: std :: os :: raw :: c_int > , pub compute_signature : :: std :: option :: Option < unsafe extern "C" fn ( card : * mut sc_card , data : * const u8 , data_len : size_t , out : * mut u8 , outlen : size_t ) -> :: std :: os :: raw :: c_int > , pub change_reference_data : :: std :: option :: Option < unsafe extern "C" fn ( card : * mut sc_card , type_ : :: std :: os :: raw :: c_uint , ref_qualifier : :: std :: os :: raw :: c_int , old : * const u8 , oldlen : size_t , newref : * const u8 , newlen : size_t , tries_left : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int > , pub reset_retry_counter : :: std :: option :: Option < unsafe extern "C" fn ( card : * mut sc_card , type_ : :: std :: os :: raw :: c_uint , ref_qualifier : :: std :: os :: raw :: c_int , puk : * const u8 , puklen : size_t , newref : * const u8 , newlen : size_t ) -> :: std :: os :: raw :: c_int > , pub create_file : :: std :: option :: Option < unsafe extern "C" fn ( card : * mut sc_card , file : * mut sc_file ) -> :: std :: os :: raw :: c_int > , pub delete_file : :: std :: option :: Option < unsafe extern "C" fn ( card : * mut sc_card , path : * const sc_path ) -> :: std :: os :: raw :: c_int > , pub list_files : :: std :: option :: Option < unsafe extern "C" fn ( card : * mut sc_card , buf : * mut u8 , buflen : size_t ) -> :: std :: os :: raw :: c_int > , pub check_sw : :: std :: option :: Option < unsafe extern "C" fn ( card : * mut sc_card , sw1 : :: std :: os :: raw :: c_uint , sw2 : :: std :: os :: raw :: c_uint ) -> :: std :: os :: raw :: c_int > , pub card_ctl : :: std :: option :: Option < unsafe extern "C" fn ( card : * mut sc_card , request : :: std :: os :: raw :: c_ulong , data : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int > , pub process_fci : :: std :: option :: Option < unsafe extern "C" fn ( card : * mut sc_card , file : * mut sc_file , buf : * const u8 , buflen : size_t ) -> :: std :: os :: raw :: c_int > , pub construct_fci : :: std :: option :: Option < unsafe extern "C" fn ( card : * mut sc_card , file : * const sc_file , out : * mut u8 , outlen : * mut size_t ) -> :: std :: os :: raw :: c_int > , pub pin_cmd : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut sc_card , arg2 : * mut sc_pin_cmd_data , tries_left : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int > , pub get_data : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut sc_card , arg2 : :: std :: os :: raw :: c_uint , arg3 : * mut u8 , arg4 : size_t ) -> :: std :: os :: raw :: c_int > , pub put_data : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut sc_card , arg2 : :: std :: os :: raw :: c_uint , arg3 : * const u8 , arg4 : size_t ) -> :: std :: os :: raw :: c_int > , pub delete_record : :: std :: option :: Option < unsafe extern "C" fn ( card : * mut sc_card , rec_nr : :: std :: os :: raw :: c_uint ) -> :: std :: os :: raw :: c_int > , pub read_public_key : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut sc_card , arg2 : :: std :: os :: raw :: c_uint , arg3 : * mut sc_path , arg4 : :: std :: os :: raw :: c_uint , arg5 : :: std :: os :: raw :: c_uint , arg6 : * mut * mut :: std :: os :: raw :: c_uchar , arg7 : * mut size_t ) -> :: std :: os :: raw :: c_int > , pub card_reader_lock_obtained : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut sc_card , was_reset : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int > , pub wrap : :: std :: option :: Option < unsafe extern "C" fn ( card : * mut sc_card , out : * mut u8 , outlen : size_t ) -> :: std :: os :: raw :: c_int > , pub unwrap : :: std :: option :: Option < unsafe extern "C" fn ( card : * mut sc_card , crgram : * const u8 , crgram_len : size_t ) -> :: std :: os :: raw :: c_int > , } # [ test ] fn bindgen_test_layout_sc_card_operations ( ) { assert_eq ! ( :: std :: mem :: size_of :: < sc_card_operations > ( ) , 296usize , concat ! ( "Size of: " , stringify ! ( sc_card_operations ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < sc_card_operations > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( sc_card_operations ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card_operations > ( ) ) ) . match_card as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( sc_card_operations ) , "::" , stringify ! ( match_card ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card_operations > ( ) ) ) . init as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( sc_card_operations ) , "::" , stringify ! ( init ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card_operations > ( ) ) ) . finish as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( sc_card_operations ) , "::" , stringify ! ( finish ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card_operations > ( ) ) ) . read_binary as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( sc_card_operations ) , "::" , stringify ! ( read_binary ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card_operations > ( ) ) ) . write_binary as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( sc_card_operations ) , "::" , stringify ! ( write_binary ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card_operations > ( ) ) ) . update_binary as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( sc_card_operations ) , "::" , stringify ! ( update_binary ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card_operations > ( ) ) ) . erase_binary as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( sc_card_operations ) , "::" , stringify ! ( erase_binary ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card_operations > ( ) ) ) . read_record as * const _ as usize } , 56usize , concat ! ( "Offset of field: " , stringify ! ( sc_card_operations ) , "::" , stringify ! ( read_record ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card_operations > ( ) ) ) . write_record as * const _ as usize } , 64usize , concat ! ( "Offset of field: " , stringify ! ( sc_card_operations ) , "::" , stringify ! ( write_record ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card_operations > ( ) ) ) . append_record as * const _ as usize } , 72usize , concat ! ( "Offset of field: " , stringify ! ( sc_card_operations ) , "::" , stringify ! ( append_record ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card_operations > ( ) ) ) . update_record as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( sc_card_operations ) , "::" , stringify ! ( update_record ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card_operations > ( ) ) ) . select_file as * const _ as usize } , 88usize , concat ! ( "Offset of field: " , stringify ! ( sc_card_operations ) , "::" , stringify ! ( select_file ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card_operations > ( ) ) ) . get_response as * const _ as usize } , 96usize , concat ! ( "Offset of field: " , stringify ! ( sc_card_operations ) , "::" , stringify ! ( get_response ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card_operations > ( ) ) ) . get_challenge as * const _ as usize } , 104usize , concat ! ( "Offset of field: " , stringify ! ( sc_card_operations ) , "::" , stringify ! ( get_challenge ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card_operations > ( ) ) ) . verify as * const _ as usize } , 112usize , concat ! ( "Offset of field: " , stringify ! ( sc_card_operations ) , "::" , stringify ! ( verify ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card_operations > ( ) ) ) . logout as * const _ as usize } , 120usize , concat ! ( "Offset of field: " , stringify ! ( sc_card_operations ) , "::" , stringify ! ( logout ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card_operations > ( ) ) ) . restore_security_env as * const _ as usize } , 128usize , concat ! ( "Offset of field: " , stringify ! ( sc_card_operations ) , "::" , stringify ! ( restore_security_env ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card_operations > ( ) ) ) . set_security_env as * const _ as usize } , 136usize , concat ! ( "Offset of field: " , stringify ! ( sc_card_operations ) , "::" , stringify ! ( set_security_env ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card_operations > ( ) ) ) . decipher as * const _ as usize } , 144usize , concat ! ( "Offset of field: " , stringify ! ( sc_card_operations ) , "::" , stringify ! ( decipher ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card_operations > ( ) ) ) . compute_signature as * const _ as usize } , 152usize , concat ! ( "Offset of field: " , stringify ! ( sc_card_operations ) , "::" , stringify ! ( compute_signature ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card_operations > ( ) ) ) . change_reference_data as * const _ as usize } , 160usize , concat ! ( "Offset of field: " , stringify ! ( sc_card_operations ) , "::" , stringify ! ( change_reference_data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card_operations > ( ) ) ) . reset_retry_counter as * const _ as usize } , 168usize , concat ! ( "Offset of field: " , stringify ! ( sc_card_operations ) , "::" , stringify ! ( reset_retry_counter ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card_operations > ( ) ) ) . create_file as * const _ as usize } , 176usize , concat ! ( "Offset of field: " , stringify ! ( sc_card_operations ) , "::" , stringify ! ( create_file ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card_operations > ( ) ) ) . delete_file as * const _ as usize } , 184usize , concat ! ( "Offset of field: " , stringify ! ( sc_card_operations ) , "::" , stringify ! ( delete_file ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card_operations > ( ) ) ) . list_files as * const _ as usize } , 192usize , concat ! ( "Offset of field: " , stringify ! ( sc_card_operations ) , "::" , stringify ! ( list_files ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card_operations > ( ) ) ) . check_sw as * const _ as usize } , 200usize , concat ! ( "Offset of field: " , stringify ! ( sc_card_operations ) , "::" , stringify ! ( check_sw ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card_operations > ( ) ) ) . card_ctl as * const _ as usize } , 208usize , concat ! ( "Offset of field: " , stringify ! ( sc_card_operations ) , "::" , stringify ! ( card_ctl ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card_operations > ( ) ) ) . process_fci as * const _ as usize } , 216usize , concat ! ( "Offset of field: " , stringify ! ( sc_card_operations ) , "::" , stringify ! ( process_fci ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card_operations > ( ) ) ) . construct_fci as * const _ as usize } , 224usize , concat ! ( "Offset of field: " , stringify ! ( sc_card_operations ) , "::" , stringify ! ( construct_fci ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card_operations > ( ) ) ) . pin_cmd as * const _ as usize } , 232usize , concat ! ( "Offset of field: " , stringify ! ( sc_card_operations ) , "::" , stringify ! ( pin_cmd ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card_operations > ( ) ) ) . get_data as * const _ as usize } , 240usize , concat ! ( "Offset of field: " , stringify ! ( sc_card_operations ) , "::" , stringify ! ( get_data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card_operations > ( ) ) ) . put_data as * const _ as usize } , 248usize , concat ! ( "Offset of field: " , stringify ! ( sc_card_operations ) , "::" , stringify ! ( put_data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card_operations > ( ) ) ) . delete_record as * const _ as usize } , 256usize , concat ! ( "Offset of field: " , stringify ! ( sc_card_operations ) , "::" , stringify ! ( delete_record ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card_operations > ( ) ) ) . read_public_key as * const _ as usize } , 264usize , concat ! ( "Offset of field: " , stringify ! ( sc_card_operations ) , "::" , stringify ! ( read_public_key ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card_operations > ( ) ) ) . card_reader_lock_obtained as * const _ as usize } , 272usize , concat ! ( "Offset of field: " , stringify ! ( sc_card_operations ) , "::" , stringify ! ( card_reader_lock_obtained ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card_operations > ( ) ) ) . wrap as * const _ as usize } , 280usize , concat ! ( "Offset of field: " , stringify ! ( sc_card_operations ) , "::" , stringify ! ( wrap ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card_operations > ( ) ) ) . unwrap as * const _ as usize } , 288usize , concat ! ( "Offset of field: " , stringify ! ( sc_card_operations ) , "::" , stringify ! ( unwrap ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct sc_card_driver { pub name : * const :: std :: os :: raw :: c_char , pub short_name : * const :: std :: os :: raw :: c_char , pub ops : * mut sc_card_operations , pub atr_map : * mut sc_atr_table , pub natrs : :: std :: os :: raw :: c_uint , pub dll : * mut :: std :: os :: raw :: c_void , } # [ test ] fn bindgen_test_layout_sc_card_driver ( ) { assert_eq ! ( :: std :: mem :: size_of :: < sc_card_driver > ( ) , 48usize , concat ! ( "Size of: " , stringify ! ( sc_card_driver ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < sc_card_driver > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( sc_card_driver ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card_driver > ( ) ) ) . name as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( sc_card_driver ) , "::" , stringify ! ( name ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card_driver > ( ) ) ) . short_name as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( sc_card_driver ) , "::" , stringify ! ( short_name ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card_driver > ( ) ) ) . ops as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( sc_card_driver ) , "::" , stringify ! ( ops ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card_driver > ( ) ) ) . atr_map as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( sc_card_driver ) , "::" , stringify ! ( atr_map ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card_driver > ( ) ) ) . natrs as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( sc_card_driver ) , "::" , stringify ! ( natrs ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card_driver > ( ) ) ) . dll as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( sc_card_driver ) , "::" , stringify ! ( dll ) ) ) ; } pub type sc_card_driver_t = sc_card_driver ; # [ doc = " @struct sc_thread_context_t" ] # [ doc = " Structure for the locking function to use when using libopensc" ] # [ doc = " in a multi-threaded application." ] # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct sc_thread_context_t { # [ doc = " the version number of this structure (0 for this version)" ] pub ver : :: std :: os :: raw :: c_uint , # [ doc = " creates a mutex object" ] pub create_mutex : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int > , # [ doc = " locks a mutex object (blocks until the lock has been acquired)" ] pub lock_mutex : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int > , # [ doc = " unlocks a mutex object" ] pub unlock_mutex : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int > , # [ doc = " destroys a mutex object" ] pub destroy_mutex : :: std :: option :: Option < unsafe extern "C" fn ( arg1 : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int > , # [ doc = " returns unique identifier for the thread (can be NULL)" ] pub thread_id : :: std :: option :: Option < unsafe extern "C" fn ( ) -> :: std :: os :: raw :: c_ulong > , } # [ test ] fn bindgen_test_layout_sc_thread_context_t ( ) { assert_eq ! ( :: std :: mem :: size_of :: < sc_thread_context_t > ( ) , 48usize , concat ! ( "Size of: " , stringify ! ( sc_thread_context_t ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < sc_thread_context_t > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( sc_thread_context_t ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_thread_context_t > ( ) ) ) . ver as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( sc_thread_context_t ) , "::" , stringify ! ( ver ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_thread_context_t > ( ) ) ) . create_mutex as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( sc_thread_context_t ) , "::" , stringify ! ( create_mutex ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_thread_context_t > ( ) ) ) . lock_mutex as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( sc_thread_context_t ) , "::" , stringify ! ( lock_mutex ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_thread_context_t > ( ) ) ) . unlock_mutex as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( sc_thread_context_t ) , "::" , stringify ! ( unlock_mutex ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_thread_context_t > ( ) ) ) . destroy_mutex as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( sc_thread_context_t ) , "::" , stringify ! ( destroy_mutex ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_thread_context_t > ( ) ) ) . thread_id as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( sc_thread_context_t ) , "::" , stringify ! ( thread_id ) ) ) ; } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct sc_context { pub conf : * mut scconf_context , pub conf_blocks : [ * mut scconf_block ; 3usize ] , pub app_name : * mut :: std :: os :: raw :: c_char , pub debug : :: std :: os :: raw :: c_int , pub flags : :: std :: os :: raw :: c_ulong , pub debug_file : * mut FILE , pub debug_filename : * mut :: std :: os :: raw :: c_char , pub preferred_language : * mut :: std :: os :: raw :: c_char , pub readers : list_t , pub reader_driver : * mut sc_reader_driver , pub reader_drv_data : * mut :: std :: os :: raw :: c_void , pub card_drivers : [ * mut sc_card_driver ; 48usize ] , pub forced_driver : * mut sc_card_driver , pub thread_ctx : * mut sc_thread_context_t , pub mutex : * mut :: std :: os :: raw :: c_void , pub magic : :: std :: os :: raw :: c_uint , } # [ test ] fn bindgen_test_layout_sc_context ( ) { assert_eq ! ( :: std :: mem :: size_of :: < sc_context > ( ) , 632usize , concat ! ( "Size of: " , stringify ! ( sc_context ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < sc_context > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( sc_context ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_context > ( ) ) ) . conf as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( sc_context ) , "::" , stringify ! ( conf ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_context > ( ) ) ) . conf_blocks as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( sc_context ) , "::" , stringify ! ( conf_blocks ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_context > ( ) ) ) . app_name as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( sc_context ) , "::" , stringify ! ( app_name ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_context > ( ) ) ) . debug as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( sc_context ) , "::" , stringify ! ( debug ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_context > ( ) ) ) . flags as * const _ as usize } , 48usize , concat ! ( "Offset of field: " , stringify ! ( sc_context ) , "::" , stringify ! ( flags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_context > ( ) ) ) . debug_file as * const _ as usize } , 56usize , concat ! ( "Offset of field: " , stringify ! ( sc_context ) , "::" , stringify ! ( debug_file ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_context > ( ) ) ) . debug_filename as * const _ as usize } , 64usize , concat ! ( "Offset of field: " , stringify ! ( sc_context ) , "::" , stringify ! ( debug_filename ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_context > ( ) ) ) . preferred_language as * const _ as usize } , 72usize , concat ! ( "Offset of field: " , stringify ! ( sc_context ) , "::" , stringify ! ( preferred_language ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_context > ( ) ) ) . readers as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( sc_context ) , "::" , stringify ! ( readers ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_context > ( ) ) ) . reader_driver as * const _ as usize } , 200usize , concat ! ( "Offset of field: " , stringify ! ( sc_context ) , "::" , stringify ! ( reader_driver ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_context > ( ) ) ) . reader_drv_data as * const _ as usize } , 208usize , concat ! ( "Offset of field: " , stringify ! ( sc_context ) , "::" , stringify ! ( reader_drv_data ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_context > ( ) ) ) . card_drivers as * const _ as usize } , 216usize , concat ! ( "Offset of field: " , stringify ! ( sc_context ) , "::" , stringify ! ( card_drivers ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_context > ( ) ) ) . forced_driver as * const _ as usize } , 600usize , concat ! ( "Offset of field: " , stringify ! ( sc_context ) , "::" , stringify ! ( forced_driver ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_context > ( ) ) ) . thread_ctx as * const _ as usize } , 608usize , concat ! ( "Offset of field: " , stringify ! ( sc_context ) , "::" , stringify ! ( thread_ctx ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_context > ( ) ) ) . mutex as * const _ as usize } , 616usize , concat ! ( "Offset of field: " , stringify ! ( sc_context ) , "::" , stringify ! ( mutex ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_context > ( ) ) ) . magic as * const _ as usize } , 624usize , concat ! ( "Offset of field: " , stringify ! ( sc_context ) , "::" , stringify ! ( magic ) ) ) ; } pub type sc_context_t = sc_context ; extern "C" { # [ doc = " Sends a APDU to the card" ] # [ doc = "  @param  card  struct sc_card object to which the APDU should be send" ] # [ doc = "  @param  apdu  sc_apdu_t object of the APDU to be send" ] # [ doc = "  @return SC_SUCCESS on success and an error code otherwise" ] pub fn sc_transmit_apdu ( card : * mut sc_card , apdu : * mut sc_apdu ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn sc_format_apdu ( card : * mut sc_card , apdu : * mut sc_apdu , cse : :: std :: os :: raw :: c_int , ins : :: std :: os :: raw :: c_int , p1 : :: std :: os :: raw :: c_int , p2 : :: std :: os :: raw :: c_int ) ; } extern "C" { # [ doc = " Format an APDU based on the data to be sent and received." ] # [ doc = "" ] # [ doc = " Calls \\a sc_transmit_apdu() by determining the APDU case based on \\a datalen" ] # [ doc = " and \\a resplen. As result, no chaining or GET RESPONSE will be performed in" ] # [ doc = " sc_format_apdu()." ] pub fn sc_format_apdu_ex ( apdu : * mut sc_apdu , cla : u8 , ins : u8 , p1 : u8 , p2 : u8 , data : * const u8 , datalen : size_t , resp : * mut u8 , resplen : size_t ) ; } extern "C" { pub fn sc_check_apdu ( arg1 : * mut sc_card , arg2 : * const sc_apdu ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " Transforms an APDU from binary to its @c sc_apdu_t representation" ] # [ doc = "  @param  ctx     sc_context_t object (used for logging)" ] # [ doc = "  @param  buf     APDU to be encoded as an @c sc_apdu_t object" ] # [ doc = "  @param  len     length of @a buf" ] # [ doc = "  @param  apdu    @c sc_apdu_t object to initialize" ] # [ doc = "  @return SC_SUCCESS on success and an error code otherwise" ] # [ doc = "  @note On successful initialization apdu->data will point to @a buf with an" ] # [ doc = "  appropriate offset. Only free() @a buf, when apdu->data is not needed any" ] # [ doc = "  longer." ] # [ doc = "  @note On successful initialization @a apdu->resp and apdu->resplen will be" ] # [ doc = "  0. You should modify both if you are expecting data in the response APDU." ] pub fn sc_bytes2apdu ( ctx : * mut sc_context_t , buf : * const u8 , len : size_t , apdu : * mut sc_apdu_t ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " Encodes a APDU as an octet string" ] # [ doc = "  @param  ctx     sc_context_t object (used for logging)" ] # [ doc = "  @param  apdu    APDU to be encoded as an octet string" ] # [ doc = "  @param  proto   protocol version to be used" ] # [ doc = "  @param  out     output buffer of size outlen." ] # [ doc = "  @param  outlen  size of hte output buffer" ] # [ doc = "  @return SC_SUCCESS on success and an error code otherwise" ] pub fn sc_apdu2bytes ( ctx : * mut sc_context_t , apdu : * const sc_apdu_t , proto : :: std :: os :: raw :: c_uint , out : * mut u8 , outlen : size_t ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " Calculates the length of the encoded APDU in octets." ] # [ doc = "  @param  apdu   the APDU" ] # [ doc = "  @param  proto  the desired protocol" ] # [ doc = "  @return length of the encoded APDU" ] pub fn sc_apdu_get_length ( apdu : * const sc_apdu_t , proto : :: std :: os :: raw :: c_uint ) -> size_t ; } extern "C" { pub fn sc_check_sw ( card : * mut sc_card , sw1 : :: std :: os :: raw :: c_uint , sw2 : :: std :: os :: raw :: c_uint ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " Establishes an OpenSC context. Note: this function is deprecated," ] # [ doc = " please use sc_context_create() instead." ] # [ doc = " @param ctx A pointer to a pointer that will receive the allocated context" ] # [ doc = " @param app_name A string that identifies the application, used primarily" ] # [ doc = "\tin finding application-specific configuration data. Can be NULL." ] pub fn sc_establish_context ( ctx : * mut * mut sc_context_t , app_name : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int ; } # [ doc = " @struct sc_context_t initialization parameters" ] # [ doc = " Structure to supply additional parameters, for example" ] # [ doc = " mutex information, to the sc_context_t creation." ] # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct sc_context_param_t { # [ doc = " version number of this structure (0 for this version)" ] pub ver : :: std :: os :: raw :: c_uint , # [ doc = " name of the application (used for finding application" ] # [ doc = "  dependent configuration data). If NULL the name \"default\"" ] # [ doc = "  will be used." ] pub app_name : * const :: std :: os :: raw :: c_char , # [ doc = " context flags" ] pub flags : :: std :: os :: raw :: c_ulong , # [ doc = " mutex functions to use (optional)" ] pub thread_ctx : * mut sc_thread_context_t , } # [ test ] fn bindgen_test_layout_sc_context_param_t ( ) { assert_eq ! ( :: std :: mem :: size_of :: < sc_context_param_t > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( sc_context_param_t ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < sc_context_param_t > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( sc_context_param_t ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_context_param_t > ( ) ) ) . ver as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( sc_context_param_t ) , "::" , stringify ! ( ver ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_context_param_t > ( ) ) ) . app_name as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( sc_context_param_t ) , "::" , stringify ! ( app_name ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_context_param_t > ( ) ) ) . flags as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( sc_context_param_t ) , "::" , stringify ! ( flags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_context_param_t > ( ) ) ) . thread_ctx as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( sc_context_param_t ) , "::" , stringify ! ( thread_ctx ) ) ) ; } extern "C" { # [ doc = " Repairs an already existing sc_context_t object. This may occur if" ] # [ doc = " multithreaded issues mean that another context in the same heap is deleted." ] # [ doc = " @param  ctx   pointer to a sc_context_t pointer containing the (partial)" ] # [ doc = "               context." ] # [ doc = " @return SC_SUCCESS or an error value if an error occurred." ] pub fn sc_context_repair ( ctx : * mut * mut sc_context_t ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " Creates a new sc_context_t object." ] # [ doc = " @param  ctx   pointer to a sc_context_t pointer for the newly" ] # [ doc = "               created sc_context_t object." ] # [ doc = " @param  parm  parameters for the sc_context_t creation (see" ] # [ doc = "               sc_context_param_t for a description of the supported" ] # [ doc = "               options).." ] # [ doc = " @return SC_SUCCESS on success and an error code otherwise." ] pub fn sc_context_create ( ctx : * mut * mut sc_context_t , parm : * const sc_context_param_t ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " Releases an established OpenSC context" ] # [ doc = " @param ctx A pointer to the context structure to be released" ] pub fn sc_release_context ( ctx : * mut sc_context_t ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " Detect new readers available on system." ] # [ doc = " @param  ctx  OpenSC context" ] # [ doc = " @return SC_SUCCESS on success and an error code otherwise." ] pub fn sc_ctx_detect_readers ( ctx : * mut sc_context_t ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " In windows: get configuration option from environment or from registers." ] # [ doc = " @param env name of environment variable" ] # [ doc = " @param reg name of register value" ] # [ doc = " @param key path of register key" ] # [ doc = " @return SC_SUCCESS on success and an error code otherwise." ] pub fn sc_ctx_win32_get_config_value ( env : * const :: std :: os :: raw :: c_char , reg : * const :: std :: os :: raw :: c_char , key : * const :: std :: os :: raw :: c_char , out : * mut :: std :: os :: raw :: c_void , out_size : * mut size_t ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " Returns a pointer to the specified sc_reader_t object" ] # [ doc = " @param  ctx  OpenSC context" ] # [ doc = " @param  i    number of the reader structure to return (starting with 0)" ] # [ doc = " @return the requested sc_reader object or NULL if the index is" ] # [ doc = "         not available" ] pub fn sc_ctx_get_reader ( ctx : * mut sc_context_t , i : :: std :: os :: raw :: c_uint ) -> * mut sc_reader_t ; } extern "C" { # [ doc = " Pass in pointers to handles to be used for the pcsc reader." ] # [ doc = " This is used by cardmod to pass in handles provided by BaseCSP" ] # [ doc = "" ] # [ doc = " @param  ctx   pointer to a sc_context_t" ] # [ doc = " @param  pcsc_context_handle pointer to the  new context_handle to use" ] # [ doc = " @param  pcsc_card_handle pointer to the new card_handle to use" ] # [ doc = " @return SC_SUCCESS on success and an error code otherwise." ] pub fn sc_ctx_use_reader ( ctx : * mut sc_context_t , pcsc_context_handle : * mut :: std :: os :: raw :: c_void , pcsc_card_handle : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " Returns a pointer to the specified sc_reader_t object" ] # [ doc = " @param  ctx  OpenSC context" ] # [ doc = " @param  name name of the reader to look for" ] # [ doc = " @return the requested sc_reader object or NULL if the reader is" ] # [ doc = "         not available" ] pub fn sc_ctx_get_reader_by_name ( ctx : * mut sc_context_t , name : * const :: std :: os :: raw :: c_char ) -> * mut sc_reader_t ; } extern "C" { # [ doc = " Returns a pointer to the specified sc_reader_t object" ] # [ doc = " @param  ctx  OpenSC context" ] # [ doc = " @param  id id of the reader (starting from 0)" ] # [ doc = " @return the requested sc_reader object or NULL if the reader is" ] # [ doc = "         not available" ] pub fn sc_ctx_get_reader_by_id ( ctx : * mut sc_context_t , id : :: std :: os :: raw :: c_uint ) -> * mut sc_reader_t ; } extern "C" { # [ doc = " Returns the number a available sc_reader objects" ] # [ doc = " @param  ctx  OpenSC context" ] # [ doc = " @return the number of available reader objects" ] pub fn sc_ctx_get_reader_count ( ctx : * mut sc_context_t ) -> :: std :: os :: raw :: c_uint ; } extern "C" { pub fn _sc_delete_reader ( ctx : * mut sc_context_t , reader : * mut sc_reader_t ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " Redirects OpenSC debug log to the specified file" ] # [ doc = " @param  ctx existing OpenSC context" ] # [ doc = " @param  filename path to the file or \"stderr\" or \"stdout\"" ] # [ doc = " @return SC_SUCCESS on success and an error code otherwise" ] pub fn sc_ctx_log_to_file ( ctx : * mut sc_context_t , filename : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " Forces the use of a specified card driver" ] # [ doc = " @param ctx OpenSC context" ] # [ doc = " @param short_name The short name of the driver to use (e.g. 'cardos')" ] pub fn sc_set_card_driver ( ctx : * mut sc_context_t , short_name : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " Connects to a card in a reader and auto-detects the card driver." ] # [ doc = " The ATR (Answer to Reset) string of the card is also retrieved." ] # [ doc = " @param reader Reader structure" ] # [ doc = " @param card The allocated card object will go here" ] pub fn sc_connect_card ( reader : * mut sc_reader_t , card : * mut * mut sc_card ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " Disconnects from a card, and frees the card structure. Any locks" ] # [ doc = " made by the application must be released before calling this function." ] # [ doc = " NOTE: The card is not reset nor powered down after the operation." ] # [ doc = " @param  card  The card to disconnect" ] # [ doc = " @return SC_SUCCESS on success and an error code otherwise" ] pub fn sc_disconnect_card ( card : * mut sc_card ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " Checks if a card is present in a reader" ] # [ doc = " @param reader Reader structure" ] # [ doc = " @retval If an error occurred, the return value is a (negative)" ] # [ doc = "\tOpenSC error code. If no card is present, 0 is returned." ] # [ doc = "\tOtherwise, a positive value is returned, which is a" ] # [ doc = "\tcombination of flags. The flag SC_READER_CARD_PRESENT is" ] # [ doc = "\talways set. In addition, if the card was exchanged," ] # [ doc = "\tthe SC_READER_CARD_CHANGED flag is set." ] pub fn sc_detect_card_presence ( reader : * mut sc_reader_t ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " Waits for an event on readers. Note: only the event is detected," ] # [ doc = " there is no update of any card or other info." ] # [ doc = " NOTE: Only PC/SC backend implements this." ] # [ doc = " @param ctx  pointer to a Context structure" ] # [ doc = " @param event_mask The types of events to wait for; this should" ] # [ doc = "   be ORed from one of the following" ] # [ doc = "   \tSC_EVENT_CARD_REMOVED" ] # [ doc = "   \tSC_EVENT_CARD_INSERTED" ] # [ doc = "\tSC_EVENT_READER_ATTACHED" ] # [ doc = " @param event_reader (OUT) the reader on which the event was detected, or NULL if new reader" ] # [ doc = " @param event (OUT) the events that occurred. This is also ORed" ] # [ doc = "   from the SC_EVENT_CARD_* constants listed above." ] # [ doc = " @param timeout Amount of millisecs to wait; -1 means forever" ] # [ doc = " @retval < 0 if an error occurred" ] # [ doc = " @retval = 0 if a an event happened" ] # [ doc = " @retval = 1 if the timeout occurred" ] pub fn sc_wait_for_event ( ctx : * mut sc_context_t , event_mask : :: std :: os :: raw :: c_uint , event_reader : * mut * mut sc_reader_t , event : * mut :: std :: os :: raw :: c_uint , timeout : :: std :: os :: raw :: c_int , reader_states : * mut * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " Resets the card." ] # [ doc = " NOTE: only PC/SC backend implements this function at this moment." ] # [ doc = " @param card The card to reset." ] # [ doc = " @param do_cold_reset 0 for a warm reset, 1 for a cold reset (unpower)" ] # [ doc = " @retval SC_SUCCESS on success" ] pub fn sc_reset ( card : * mut sc_card , do_cold_reset : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " Cancel all pending PC/SC calls" ] # [ doc = " NOTE: only PC/SC backend implements this function." ] # [ doc = " @param ctx pointer to application context" ] # [ doc = " @retval SC_SUCCESS on success" ] pub fn sc_cancel ( ctx : * mut sc_context_t ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " Tries acquire the reader lock." ] # [ doc = " @param  card  The card to lock" ] # [ doc = " @retval SC_SUCCESS on success" ] pub fn sc_lock ( card : * mut sc_card ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " Unlocks a previously acquired reader lock." ] # [ doc = " @param  card  The card to unlock" ] # [ doc = " @retval SC_SUCCESS on success" ] pub fn sc_unlock ( card : * mut sc_card ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " @brief Calculate the maximum size of R-APDU payload (Ne)." ] # [ doc = "" ] # [ doc = " Takes card limitations into account such as extended length support as well" ] # [ doc = " as the reader's limitation for data transfer." ] # [ doc = "" ] # [ doc = " @param card Initialized card object with its reader" ] # [ doc = "" ] # [ doc = " @return maximum Ne" ] pub fn sc_get_max_recv_size ( card : * const sc_card_t ) -> size_t ; } extern "C" { # [ doc = " @brief Calculate the maximum size of C-APDU payload (Nc)." ] # [ doc = "" ] # [ doc = " Takes card limitations into account such as extended length support as well" ] # [ doc = " as the reader's limitation for data transfer." ] # [ doc = "" ] # [ doc = " @param card card" ] # [ doc = "" ] # [ doc = " @return maximum Nc" ] pub fn sc_get_max_send_size ( card : * const sc_card_t ) -> size_t ; } extern "C" { # [ doc = " Does the equivalent of ISO 7816-4 command SELECT FILE." ] # [ doc = " @param  card  struct sc_card object on which to issue the command" ] # [ doc = " @param  path  The path, file id or name of the desired file" ] # [ doc = " @param  file  If not NULL, will receive a pointer to a new structure" ] # [ doc = " @return SC_SUCCESS on success and an error code otherwise" ] pub fn sc_select_file ( card : * mut sc_card , path : * const sc_path_t , file : * mut * mut sc_file_t ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " List file ids within a DF" ] # [ doc = " @param  card    struct sc_card object on which to issue the command" ] # [ doc = " @param  buf     buffer for the read file ids (the filed ids are" ] # [ doc = "                 stored in the buffer as a sequence of 2 byte values)" ] # [ doc = " @param  buflen  length of the supplied buffer" ] # [ doc = " @return number of files ids read or an error code" ] pub fn sc_list_files ( card : * mut sc_card , buf : * mut u8 , buflen : size_t ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " Read data from a binary EF" ] # [ doc = " @param  card   struct sc_card object on which to issue the command" ] # [ doc = " @param  idx    index within the file with the data to read" ] # [ doc = " @param  buf    buffer to the read data" ] # [ doc = " @param  count  number of bytes to read" ] # [ doc = " @param  flags  flags for the READ BINARY command (currently not used)" ] # [ doc = " @return number of bytes read or an error code" ] pub fn sc_read_binary ( card : * mut sc_card , idx : :: std :: os :: raw :: c_uint , buf : * mut u8 , count : size_t , flags : :: std :: os :: raw :: c_ulong ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " Write data to a binary EF" ] # [ doc = " @param  card   struct sc_card object on which to issue the command" ] # [ doc = " @param  idx    index within the file for the data to be written" ] # [ doc = " @param  buf    buffer with the data" ] # [ doc = " @param  count  number of bytes to write" ] # [ doc = " @param  flags  flags for the WRITE BINARY command (currently not used)" ] # [ doc = " @return number of bytes written or an error code" ] pub fn sc_write_binary ( card : * mut sc_card , idx : :: std :: os :: raw :: c_uint , buf : * const u8 , count : size_t , flags : :: std :: os :: raw :: c_ulong ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " Updates the content of a binary EF" ] # [ doc = " @param  card   struct sc_card object on which to issue the command" ] # [ doc = " @param  idx    index within the file for the data to be updated" ] # [ doc = " @param  buf    buffer with the new data" ] # [ doc = " @param  count  number of bytes to update" ] # [ doc = " @param  flags  flags for the UPDATE BINARY command (currently not used)" ] # [ doc = " @return number of bytes written or an error code" ] pub fn sc_update_binary ( card : * mut sc_card , idx : :: std :: os :: raw :: c_uint , buf : * const u8 , count : size_t , flags : :: std :: os :: raw :: c_ulong ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " Sets (part of) the content fo an EF to its logical erased state" ] # [ doc = " @param  card   struct sc_card object on which to issue the command" ] # [ doc = " @param  idx    index within the file for the data to be erased" ] # [ doc = " @param  count  number of bytes to erase" ] # [ doc = " @param  flags  flags for the ERASE BINARY command (currently not used)" ] # [ doc = " @return number of bytes written or an error code" ] pub fn sc_erase_binary ( card : * mut sc_card , idx : :: std :: os :: raw :: c_uint , count : size_t , flags : :: std :: os :: raw :: c_ulong ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " Reads a record from the current (i.e. selected) file." ] # [ doc = " @param  card    struct sc_card object on which to issue the command" ] # [ doc = " @param  rec_nr  SC_READ_RECORD_CURRENT or a record number starting from 1" ] # [ doc = " @param  buf     Pointer to a buffer for storing the data" ] # [ doc = " @param  count   Number of bytes to read" ] # [ doc = " @param  flags   flags (may contain a short file id of a file to select)" ] # [ doc = " @retval number of bytes read or an error value" ] pub fn sc_read_record ( card : * mut sc_card , rec_nr : :: std :: os :: raw :: c_uint , buf : * mut u8 , count : size_t , flags : :: std :: os :: raw :: c_ulong ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " Writes data to a record from the current (i.e. selected) file." ] # [ doc = " @param  card    struct sc_card object on which to issue the command" ] # [ doc = " @param  rec_nr  SC_READ_RECORD_CURRENT or a record number starting from 1" ] # [ doc = " @param  buf     buffer with to the data to be written" ] # [ doc = " @param  count   number of bytes to write" ] # [ doc = " @param  flags   flags (may contain a short file id of a file to select)" ] # [ doc = " @retval number of bytes written or an error value" ] pub fn sc_write_record ( card : * mut sc_card , rec_nr : :: std :: os :: raw :: c_uint , buf : * const u8 , count : size_t , flags : :: std :: os :: raw :: c_ulong ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " Appends a record to the current (i.e. selected) file." ] # [ doc = " @param  card    struct sc_card object on which to issue the command" ] # [ doc = " @param  buf     buffer with to the data for the new record" ] # [ doc = " @param  count   length of the data" ] # [ doc = " @param  flags   flags (may contain a short file id of a file to select)" ] # [ doc = " @retval number of bytes written or an error value" ] pub fn sc_append_record ( card : * mut sc_card , buf : * const u8 , count : size_t , flags : :: std :: os :: raw :: c_ulong ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " Updates the data of a record from the current (i.e. selected) file." ] # [ doc = " @param  card    struct sc_card object on which to issue the command" ] # [ doc = " @param  rec_nr  SC_READ_RECORD_CURRENT or a record number starting from 1" ] # [ doc = " @param  buf     buffer with to the new data to be written" ] # [ doc = " @param  count   number of bytes to update" ] # [ doc = " @param  flags   flags (may contain a short file id of a file to select)" ] # [ doc = " @retval number of bytes written or an error value" ] pub fn sc_update_record ( card : * mut sc_card , rec_nr : :: std :: os :: raw :: c_uint , buf : * const u8 , count : size_t , flags : :: std :: os :: raw :: c_ulong ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn sc_delete_record ( card : * mut sc_card , rec_nr : :: std :: os :: raw :: c_uint ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn sc_get_data ( arg1 : * mut sc_card , arg2 : :: std :: os :: raw :: c_uint , arg3 : * mut u8 , arg4 : size_t ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn sc_put_data ( arg1 : * mut sc_card , arg2 : :: std :: os :: raw :: c_uint , arg3 : * const u8 , arg4 : size_t ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " Gets challenge from the card (normally random data)." ] # [ doc = " @param  card    struct sc_card object on which to issue the command" ] # [ doc = " @param  rndout  buffer for the returned random challenge" ] # [ doc = " @param  len     length of the challenge" ] # [ doc = " @return SC_SUCCESS on success and an error code otherwise" ] pub fn sc_get_challenge ( card : * mut sc_card , rndout : * mut u8 , len : size_t ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn sc_restore_security_env ( card : * mut sc_card , se_num : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn sc_set_security_env ( card : * mut sc_card , env : * const sc_security_env , se_num : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn sc_decipher ( card : * mut sc_card , crgram : * const u8 , crgram_len : size_t , out : * mut u8 , outlen : size_t ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn sc_compute_signature ( card : * mut sc_card , data : * const u8 , data_len : size_t , out : * mut u8 , outlen : size_t ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn sc_verify ( card : * mut sc_card , type_ : :: std :: os :: raw :: c_uint , ref_ : :: std :: os :: raw :: c_int , buf : * const u8 , buflen : size_t , tries_left : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " Resets the security status of the card (i.e. withdraw all granted" ] # [ doc = " access rights). Note: not all card operating systems support a logout" ] # [ doc = " command and in this case SC_ERROR_NOT_SUPPORTED is returned." ] # [ doc = " @param  card  struct sc_card object" ] # [ doc = " @return SC_SUCCESS on success, SC_ERROR_NOT_SUPPORTED if the card" ] # [ doc = "         doesn't support a logout command and an error code otherwise" ] pub fn sc_logout ( card : * mut sc_card ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn sc_pin_cmd ( card : * mut sc_card , arg1 : * mut sc_pin_cmd_data , tries_left : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn sc_change_reference_data ( card : * mut sc_card , type_ : :: std :: os :: raw :: c_uint , ref_ : :: std :: os :: raw :: c_int , old : * const u8 , oldlen : size_t , newref : * const u8 , newlen : size_t , tries_left : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn sc_reset_retry_counter ( card : * mut sc_card , type_ : :: std :: os :: raw :: c_uint , ref_ : :: std :: os :: raw :: c_int , puk : * const u8 , puklen : size_t , newref : * const u8 , newlen : size_t ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn sc_build_pin ( buf : * mut u8 , buflen : size_t , pin : * mut sc_pin_cmd_pin , pad : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn sc_create_file ( card : * mut sc_card , file : * mut sc_file_t ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn sc_delete_file ( card : * mut sc_card , path : * const sc_path_t ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn sc_card_ctl ( card : * mut sc_card , command : :: std :: os :: raw :: c_ulong , arg : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn sc_file_valid ( file : * const sc_file_t ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn sc_file_new ( ) -> * mut sc_file_t ; } extern "C" { pub fn sc_file_free ( file : * mut sc_file_t ) ; } extern "C" { pub fn sc_file_dup ( dest : * mut * mut sc_file_t , src : * const sc_file_t ) ; } extern "C" { pub fn sc_file_add_acl_entry ( file : * mut sc_file_t , operation : :: std :: os :: raw :: c_uint , method : :: std :: os :: raw :: c_uint , key_ref : :: std :: os :: raw :: c_ulong ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn sc_file_get_acl_entry ( file : * const sc_file_t , operation : :: std :: os :: raw :: c_uint ) -> * const sc_acl_entry ; } extern "C" { pub fn sc_file_clear_acl_entries ( file : * mut sc_file_t , operation : :: std :: os :: raw :: c_uint ) ; } extern "C" { pub fn sc_file_set_sec_attr ( file : * mut sc_file_t , sec_attr : * const u8 , sec_attr_len : size_t ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn sc_file_set_prop_attr ( file : * mut sc_file_t , prop_attr : * const u8 , prop_attr_len : size_t ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn sc_file_set_type_attr ( file : * mut sc_file_t , type_attr : * const u8 , type_attr_len : size_t ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn sc_file_set_content ( file : * mut sc_file_t , content : * const u8 , content_len : size_t ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn sc_unwrap ( card : * mut sc_card , data : * const u8 , data_len : size_t , out : * mut u8 , outlen : size_t ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn sc_wrap ( card : * mut sc_card , data : * const u8 , data_len : size_t , out : * mut u8 , outlen : size_t ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " Sets the content of a sc_path_t object." ] # [ doc = " @param  path    sc_path_t object to set" ] # [ doc = " @param  type    type of path" ] # [ doc = " @param  id      value of the path" ] # [ doc = " @param  id_len  length of the path value" ] # [ doc = " @param  index   index within the file" ] # [ doc = " @param  count   number of bytes" ] # [ doc = " @return SC_SUCCESS on success and an error code otherwise" ] pub fn sc_path_set ( path : * mut sc_path_t , type_ : :: std :: os :: raw :: c_int , id : * const u8 , id_len : size_t , index : :: std :: os :: raw :: c_int , count : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn sc_format_path ( path_in : * const :: std :: os :: raw :: c_char , path_out : * mut sc_path_t ) ; } extern "C" { # [ doc = " Return string representation of the given sc_path_t object" ] # [ doc = " Warning: as static memory is used for the return value" ] # [ doc = "          this function is not thread-safe !!!" ] # [ doc = " @param  path  sc_path_t object of the path to be printed" ] # [ doc = " @return pointer to a const buffer with the string representation" ] # [ doc = "         of the path" ] pub fn sc_print_path ( path : * const sc_path_t ) -> * const :: std :: os :: raw :: c_char ; } extern "C" { # [ doc = " Prints the sc_path_t object to a character buffer" ] # [ doc = " @param  buf     pointer to the buffer" ] # [ doc = " @param  buflen  size of the buffer" ] # [ doc = " @param  path    sc_path_t object to be printed" ] # [ doc = " @return SC_SUCCESS on success and an error code otherwise" ] pub fn sc_path_print ( buf : * mut :: std :: os :: raw :: c_char , buflen : size_t , path : * const sc_path_t ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " Compares two sc_path_t objects" ] # [ doc = " @param  patha  sc_path_t object of the first path" ] # [ doc = " @param  pathb  sc_path_t object of the second path" ] # [ doc = " @return 1 if both paths are equal and 0 otherwise" ] pub fn sc_compare_path ( patha : * const sc_path_t , pathb : * const sc_path_t ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " Concatenate two sc_path_t values and store the result in" ] # [ doc = " d (note: d can be the same as p1 or p2)." ] # [ doc = " @param  d   destination sc_path_t object" ] # [ doc = " @param  p1  first sc_path_t object" ] # [ doc = " @param  p2  second sc_path_t object" ] # [ doc = " @return SC_SUCCESS on success and an error code otherwise" ] pub fn sc_concatenate_path ( d : * mut sc_path_t , p1 : * const sc_path_t , p2 : * const sc_path_t ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " Appends a sc_path_t object to another sc_path_t object (note:" ] # [ doc = " this function is a wrapper for sc_concatenate_path)" ] # [ doc = " @param  dest  destination sc_path_t object" ] # [ doc = " @param  src   sc_path_t object to append" ] # [ doc = " @return SC_SUCCESS on success and an error code otherwise" ] pub fn sc_append_path ( dest : * mut sc_path_t , src : * const sc_path_t ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " Checks whether one path is a prefix of another path" ] # [ doc = " @param  prefix  sc_path_t object with the prefix" ] # [ doc = " @param  path    sc_path_t object with the path which should start" ] # [ doc = "                 with the given prefix" ] # [ doc = " @return 1 if the parameter prefix is a prefix of path and 0 otherwise" ] pub fn sc_compare_path_prefix ( prefix : * const sc_path_t , path : * const sc_path_t ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn sc_append_path_id ( dest : * mut sc_path_t , id : * const u8 , idlen : size_t ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn sc_append_file_id ( dest : * mut sc_path_t , fid : :: std :: os :: raw :: c_uint ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " Returns a const sc_path_t object for the MF" ] # [ doc = " @return sc_path_t object of the MF" ] pub fn sc_get_mf_path ( ) -> * const sc_path_t ; } extern "C" { pub fn sc_hex_to_bin ( in_ : * const :: std :: os :: raw :: c_char , out : * mut u8 , outlen : * mut size_t ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " Converts an u8 array to a string representing the input as hexadecimal," ] # [ doc = " human-readable/printable form. It's the inverse function of sc_hex_to_bin." ] # [ doc = "" ] # [ doc = " @param in The u8 array input to be interpreted, may be NULL iff in_len==0" ] # [ doc = " @param in_len Less or equal to the amount of bytes available from in" ] # [ doc = " @param out output buffer offered for the string representation, *MUST NOT*" ] # [ doc = "             be NULL and *MUST* be sufficiently sized, see out_len" ] # [ doc = " @param out_len *MUST* be at least 1 and state the maximum of bytes available" ] # [ doc = "                 within out to be written, including the \\0 termination byte" ] # [ doc = "                 that will be written unconditionally" ] # [ doc = " @param separator The character to be used to separate the u8 string" ] # [ doc = "                   representations. `0` will suppress separation." ] # [ doc = "" ] # [ doc = " Example: input [0x3f], in_len=1, requiring an out_len>=3, will write to out:" ] # [ doc = " [0x33, 0x66, 0x00] which reads as \"3f\"" ] # [ doc = " Example: input [0x3f, 0x01], in_len=2, separator=':', req. an out_len>=6," ] # [ doc = " writes to out: [0x33, 0x66, 0x3A, 0x30, 0x31, 0x00] which reads as \"3f:01\"" ] pub fn sc_bin_to_hex ( arg1 : * const u8 , arg2 : size_t , arg3 : * mut :: std :: os :: raw :: c_char , arg4 : size_t , separator : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn sc_right_trim ( buf : * mut u8 , len : size_t ) -> size_t ; } extern "C" { pub fn sc_get_conf_block ( ctx : * mut sc_context_t , name1 : * const :: std :: os :: raw :: c_char , name2 : * const :: std :: os :: raw :: c_char , priority : :: std :: os :: raw :: c_int ) -> * mut scconf_block ; } extern "C" { # [ doc = " Initializes a given OID" ] # [ doc = " @param  oid  sc_object_id object to be initialized" ] pub fn sc_init_oid ( oid : * mut sc_object_id ) ; } extern "C" { # [ doc = " Converts a given OID in ascii form to a internal sc_object_id object" ] # [ doc = " @param  oid  OUT sc_object_id object for the result" ] # [ doc = " @param  in   ascii string with the oid (\"1.2.3.4.5...\")" ] # [ doc = " @return SC_SUCCESS or an error value if an error occurred." ] pub fn sc_format_oid ( oid : * mut sc_object_id , in_ : * const :: std :: os :: raw :: c_char ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " Compares two sc_object_id objects" ] # [ doc = " @param  oid1  the first sc_object_id object" ] # [ doc = " @param  oid2  the second sc_object_id object" ] # [ doc = " @return 1 if the oids are equal and a zero value otherwise" ] pub fn sc_compare_oid ( oid1 : * const sc_object_id , oid2 : * const sc_object_id ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " Validates a given OID" ] # [ doc = " @param  oid  sc_object_id object to be validated" ] pub fn sc_valid_oid ( oid : * const sc_object_id ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn sc_base64_encode ( in_ : * const u8 , inlen : size_t , out : * mut u8 , outlen : size_t , linelength : size_t ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn sc_base64_decode ( in_ : * const :: std :: os :: raw :: c_char , out : * mut u8 , outlen : size_t ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " Clears a memory buffer (note: when OpenSSL is used this is" ] # [ doc = " currently a wrapper for OPENSSL_cleanse() )." ] # [ doc = " @param  ptr  pointer to the memory buffer" ] # [ doc = " @param  len  length of the memory buffer" ] pub fn sc_mem_clear ( ptr : * mut :: std :: os :: raw :: c_void , len : size_t ) ; } extern "C" { pub fn sc_mem_secure_alloc ( len : size_t ) -> * mut :: std :: os :: raw :: c_void ; } extern "C" { pub fn sc_mem_secure_free ( ptr : * mut :: std :: os :: raw :: c_void , len : size_t ) ; } extern "C" { pub fn sc_mem_reverse ( buf : * mut :: std :: os :: raw :: c_uchar , len : size_t ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn sc_get_cache_dir ( ctx : * mut sc_context_t , buf : * mut :: std :: os :: raw :: c_char , bufsize : size_t ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn sc_make_cache_dir ( ctx : * mut sc_context_t ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn sc_enum_apps ( card : * mut sc_card ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn sc_find_app ( card : * mut sc_card , aid : * mut sc_aid ) -> * mut sc_app_info ; } extern "C" { pub fn sc_free_apps ( card : * mut sc_card ) ; } extern "C" { pub fn sc_parse_ef_atr ( card : * mut sc_card ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn sc_free_ef_atr ( card : * mut sc_card ) ; } extern "C" { pub fn sc_parse_ef_gdo ( card : * mut sc_card , iccsn : * mut :: std :: os :: raw :: c_uchar , iccsn_len : * mut size_t , chn : * mut :: std :: os :: raw :: c_uchar , chn_len : * mut size_t ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn sc_update_dir ( card : * mut sc_card , app : * mut sc_app_info_t ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn sc_invalidate_cache ( card : * mut sc_card ) ; } extern "C" { pub fn sc_print_cache ( card : * mut sc_card ) ; } extern "C" { pub fn sc_card_find_rsa_alg ( card : * mut sc_card , key_length : :: std :: os :: raw :: c_uint ) -> * mut sc_algorithm_info ; } extern "C" { pub fn sc_card_find_ec_alg ( card : * mut sc_card , field_length : :: std :: os :: raw :: c_uint , curve_oid : * mut sc_object_id ) -> * mut sc_algorithm_info ; } extern "C" { pub fn sc_card_find_gostr3410_alg ( card : * mut sc_card , key_length : :: std :: os :: raw :: c_uint ) -> * mut sc_algorithm_info ; } extern "C" { pub fn sc_card_find_alg ( card : * mut sc_card_t , algorithm : :: std :: os :: raw :: c_uint , key_length : :: std :: os :: raw :: c_uint , param : * mut :: std :: os :: raw :: c_void ) -> * mut sc_algorithm_info ; } extern "C" { pub fn sc_match_atr_block ( ctx : * mut sc_context_t , driver : * mut sc_card_driver , atr : * mut sc_atr ) -> * mut scconf_block ; } extern "C" { # [ doc = " Get CRC-32 digest" ] # [ doc = " @param value pointer to data used for CRC calculation" ] # [ doc = " @param len length of data used for CRC calculation" ] pub fn sc_crc32 ( value : * const :: std :: os :: raw :: c_uchar , len : size_t ) -> :: std :: os :: raw :: c_uint ; } extern "C" { # [ doc = " Find a given tag in a compact TLV structure" ] # [ doc = " @param[in]  buf  input buffer holding the compact TLV structure" ] # [ doc = " @param[in]  len  length of the input buffer @buf in bytes" ] # [ doc = " @param[in]  tag  compact tag to search for - high nibble: plain tag, low nibble: length." ] # [ doc = "                  If length is 0, only the plain tag is used for searching," ] # [ doc = "                  in any other case, the length must also match." ] # [ doc = " @param[out] outlen pointer where the size of the buffer returned is to be stored" ] # [ doc = " @return pointer to the tag value found within @buf, or NULL if not found/on error" ] pub fn sc_compacttlv_find_tag ( buf : * const u8 , len : size_t , tag : u8 , outlen : * mut size_t ) -> * const u8 ; } extern "C" { # [ doc = " Used to initialize the @c sc_remote_data structure --" ] # [ doc = " reset the header of the 'remote APDUs' list, set the handlers" ] # [ doc = " to manipulate the list." ] pub fn sc_remote_data_init ( rdata : * mut sc_remote_data ) ; } extern "C" { # [ doc = " Copy and allocate if needed EC parameters data" ] # [ doc = " @dst destination" ] # [ doc = " @src source" ] pub fn sc_copy_ec_params ( arg1 : * mut sc_ec_parameters , arg2 : * mut sc_ec_parameters ) -> :: std :: os :: raw :: c_int ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct sc_card_error { pub SWs : :: std :: os :: raw :: c_uint , pub errorno : :: std :: os :: raw :: c_int , pub errorstr : * const :: std :: os :: raw :: c_char , } # [ test ] fn bindgen_test_layout_sc_card_error ( ) { assert_eq ! ( :: std :: mem :: size_of :: < sc_card_error > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( sc_card_error ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < sc_card_error > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( sc_card_error ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card_error > ( ) ) ) . SWs as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( sc_card_error ) , "::" , stringify ! ( SWs ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card_error > ( ) ) ) . errorno as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( sc_card_error ) , "::" , stringify ! ( errorno ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < sc_card_error > ( ) ) ) . errorstr as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( sc_card_error ) , "::" , stringify ! ( errorstr ) ) ) ; } extern "C" { pub fn sc_get_version ( ) -> * const :: std :: os :: raw :: c_char ; } extern "C" { pub fn sc_get_iso7816_driver ( ) -> * mut sc_card_driver_t ; } extern "C" { # [ doc = " @brief Read a complete EF by short file identifier." ] # [ doc = "" ] # [ doc = " @param[in]     card   card" ] # [ doc = " @param[in]     sfid   Short file identifier" ] # [ doc = " @param[in,out] ef     Where to safe the file. the buffer will be allocated" ] # [ doc = "                       using \\c realloc() and should be set to NULL, if" ] # [ doc = "                       empty." ] # [ doc = " @param[in,out] ef_len Length of \\a *ef" ] # [ doc = "" ] # [ doc = " @note The appropriate directory must be selected before calling this function." ] pub fn iso7816_read_binary_sfid ( card : * mut sc_card_t , sfid : :: std :: os :: raw :: c_uchar , ef : * mut * mut u8 , ef_len : * mut size_t ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " @brief Write a complete EF by short file identifier." ] # [ doc = "" ] # [ doc = " @param[in] card   card" ] # [ doc = " @param[in] sfid   Short file identifier" ] # [ doc = " @param[in] ef     Data to write" ] # [ doc = " @param[in] ef_len Length of \\a ef" ] # [ doc = "" ] # [ doc = " @note The appropriate directory must be selected before calling this function." ] pub fn iso7816_write_binary_sfid ( card : * mut sc_card_t , sfid : :: std :: os :: raw :: c_uchar , ef : * mut u8 , ef_len : size_t ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " @brief Update a EF by short file identifier." ] # [ doc = "" ] # [ doc = " @param[in] card   card" ] # [ doc = " @param[in] sfid   Short file identifier" ] # [ doc = " @param[in] ef     Data to write" ] # [ doc = " @param[in] ef_len Length of \\a ef" ] # [ doc = "" ] # [ doc = " @note The appropriate directory must be selected before calling this function." ] pub fn iso7816_update_binary_sfid ( card : * mut sc_card_t , sfid : :: std :: os :: raw :: c_uchar , ef : * mut u8 , ef_len : size_t ) -> :: std :: os :: raw :: c_int ; } extern "C" { # [ doc = " @brief Set verification status of a specific PIN to “not verified”" ] # [ doc = "" ] # [ doc = " @param[in] card           card" ] # [ doc = " @param[in] pin_reference  PIN reference written to P2" ] # [ doc = "" ] # [ doc = " @note The appropriate directory must be selected before calling this function." ] pub fn iso7816_logout ( card : * mut sc_card_t , pin_reference : :: std :: os :: raw :: c_uchar ) -> :: 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 ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct sc_atr_table { pub _address : u8 , }