[INFO] crate snap7-sys 0.1.4 is already in cache [INFO] checking snap7-sys-0.1.4 against try#1a399c10897767c36d147199696c96f193034e49 for pr-72644 [INFO] extracting crate snap7-sys 0.1.4 into /workspace/builds/worker-7/source [INFO] validating manifest of crates.io crate snap7-sys 0.1.4 on toolchain 1a399c10897767c36d147199696c96f193034e49 [INFO] running `"/workspace/cargo-home/bin/cargo" "+1a399c10897767c36d147199696c96f193034e49" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started tweaking crates.io crate snap7-sys 0.1.4 [INFO] finished tweaking crates.io crate snap7-sys 0.1.4 [INFO] tweaked toml for crates.io crate snap7-sys 0.1.4 written to /workspace/builds/worker-7/source/Cargo.toml [INFO] crate crates.io crate snap7-sys 0.1.4 already has a lockfile, it will not be regenerated [INFO] running `"/workspace/cargo-home/bin/cargo" "+1a399c10897767c36d147199696c96f193034e49" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env" "/opt/rustwide/cargo-home/bin/cargo" "+1a399c10897767c36d147199696c96f193034e49" "check" "--frozen" "--all" "--all-targets"` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] ec528fa1ff65afce4bd724c50f1edb18fd3b50ad632c2f3920d06616e46d899d [INFO] running `"docker" "start" "-a" "ec528fa1ff65afce4bd724c50f1edb18fd3b50ad632c2f3920d06616e46d899d"` [INFO] [stderr] sudo: setrlimit(RLIMIT_CORE): Operation not permitted [INFO] [stderr] Compiling glob v0.3.0 [INFO] [stderr] Compiling bitflags v1.2.0 [INFO] [stderr] Compiling lazy_static v1.4.0 [INFO] [stderr] Compiling byteorder v1.3.2 [INFO] [stderr] Compiling proc-macro2 v1.0.4 [INFO] [stderr] Compiling regex-syntax v0.6.12 [INFO] [stderr] Compiling cfg-if v0.1.10 [INFO] [stderr] Compiling unicode-width v0.1.6 [INFO] [stderr] Compiling quick-error v1.2.2 [INFO] [stderr] Compiling vec_map v0.8.1 [INFO] [stderr] Compiling termcolor v1.0.5 [INFO] [stderr] Compiling bindgen v0.51.1 [INFO] [stderr] Compiling strsim v0.8.0 [INFO] [stderr] Compiling ansi_term v0.11.0 [INFO] [stderr] Compiling peeking_take_while v0.1.2 [INFO] [stderr] Compiling shlex v0.1.1 [INFO] [stderr] Compiling libloading v0.5.2 [INFO] [stderr] Compiling nom v4.2.3 [INFO] [stderr] Compiling thread_local v0.3.6 [INFO] [stderr] Compiling textwrap v0.11.0 [INFO] [stderr] Compiling libc v0.2.62 [INFO] [stderr] Compiling memchr v2.2.1 [INFO] [stderr] Compiling log v0.4.8 [INFO] [stderr] Compiling humantime v1.3.0 [INFO] [stderr] Compiling clang-sys v0.28.1 [INFO] [stderr] Compiling aho-corasick v0.7.6 [INFO] [stderr] Compiling quote v1.0.2 [INFO] [stderr] Compiling atty v0.2.13 [INFO] [stderr] Compiling which v3.0.0 [INFO] [stderr] Compiling clap v2.33.0 [INFO] [stderr] Compiling rustc-hash v1.0.1 [INFO] [stderr] Compiling cexpr v0.3.5 [INFO] [stderr] Compiling regex v1.3.1 [INFO] [stderr] Compiling env_logger v0.6.2 [INFO] [stderr] Compiling snap7-sys v0.1.4 (/opt/rustwide/workdir) [INFO] [stderr] error: reference to packed field is unaligned [INFO] [stderr] --> /opt/rustwide/target/debug/build/snap7-sys-0d9a23a4c7ec91a8/out/bindings.rs:3:857 [INFO] [stderr] | [INFO] [stderr] 3 | pub type __uint16_t = :: std :: os :: raw :: c_ushort ; pub type word = u16 ; pub type S7Object = usize ; # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7DataItem { pub Area : :: std :: os :: raw :: c_int , pub WordLen : :: std :: os :: raw :: c_int , pub Result : :: std :: os :: raw :: c_int , pub DBNumber : :: std :: os :: raw :: c_int , pub Start : :: std :: os :: raw :: c_int , pub Amount : :: std :: os :: raw :: c_int , pub pdata : * mut :: std :: os :: raw :: c_void , } # [ test ] fn bindgen_test_layout_TS7DataItem ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7DataItem > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( TS7DataItem ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7DataItem > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7DataItem ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Area as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Area ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . WordLen as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( WordLen ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Result as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Result ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . DBNumber as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( DBNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Start as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Start ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Amount as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Amount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . pdata as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( pdata ) ) ) ; } pub type PS7DataItem = * mut TS7DataItem ; # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7BlocksList { pub OBCount : :: std :: os :: raw :: c_int , pub FBCount : :: std :: os :: raw :: c_int , pub FCCount : :: std :: os :: raw :: c_int , pub SFBCount : :: std :: os :: raw :: c_int , pub SFCCount : :: std :: os :: raw :: c_int , pub DBCount : :: std :: os :: raw :: c_int , pub SDBCount : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_TS7BlocksList ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7BlocksList > ( ) , 28usize , concat ! ( "Size of: " , stringify ! ( TS7BlocksList ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7BlocksList > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7BlocksList ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . OBCount as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( OBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . FBCount as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( FBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . FCCount as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( FCCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SFBCount as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SFBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SFCCount as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SFCCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . DBCount as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( DBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SDBCount as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SDBCount ) ) ) ; } # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7BlockInfo { pub BlkType : :: std :: os :: raw :: c_int , pub BlkNumber : :: std :: os :: raw :: c_int , pub BlkLang : :: std :: os :: raw :: c_int , pub BlkFlags : :: std :: os :: raw :: c_int , pub MC7Size : :: std :: os :: raw :: c_int , pub LoadSize : :: std :: os :: raw :: c_int , pub LocalData : :: std :: os :: raw :: c_int , pub SBBLength : :: std :: os :: raw :: c_int , pub CheckSum : :: std :: os :: raw :: c_int , pub Version : :: std :: os :: raw :: c_int , pub CodeDate : [ :: std :: os :: raw :: c_char ; 11usize ] , pub IntfDate : [ :: std :: os :: raw :: c_char ; 11usize ] , pub Author : [ :: std :: os :: raw :: c_char ; 9usize ] , pub Family : [ :: std :: os :: raw :: c_char ; 9usize ] , pub Header : [ :: std :: os :: raw :: c_char ; 9usize ] , } # [ test ] fn bindgen_test_layout_TS7BlockInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7BlockInfo > ( ) , 89usize , concat ! ( "Size of: " , stringify ! ( TS7BlockInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7BlockInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7BlockInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkType as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkType ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkNumber as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkLang as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkLang ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkFlags as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkFlags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . MC7Size as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( MC7Size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . LoadSize as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( LoadSize ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . LocalData as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( LocalData ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . SBBLength as * const _ as usize } , 28usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( SBBLength ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . CheckSum as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( CheckSum ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Version as * const _ as usize } , 36usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Version ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . CodeDate as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( CodeDate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . IntfDate as * const _ as usize } , 51usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( IntfDate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Author as * const _ as usize } , 62usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Author ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Family as * const _ as usize } , 71usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Family ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Header as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Header ) ) ) ; } pub type TS7BlocksOfType = [ word ; 8192usize ] ; # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct TS7CpuInfo { pub ModuleTypeName : [ :: std :: os :: raw :: c_char ; 33usize ] , pub SerialNumber : [ :: std :: os :: raw :: c_char ; 25usize ] , pub ASName : [ :: std :: os :: raw :: c_char ; 25usize ] , pub Copyright : [ :: std :: os :: raw :: c_char ; 27usize ] , pub ModuleName : [ :: std :: os :: raw :: c_char ; 25usize ] , } # [ test ] fn bindgen_test_layout_TS7CpuInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7CpuInfo > ( ) , 135usize , concat ! ( "Size of: " , stringify ! ( TS7CpuInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7CpuInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7CpuInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ModuleTypeName as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ModuleTypeName ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . SerialNumber as * const _ as usize } , 33usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( SerialNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ASName as * const _ as usize } , 58usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ASName ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . Copyright as * const _ as usize } , 83usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( Copyright ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ModuleName as * const _ as usize } , 110usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ModuleName ) ) ) ; } # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7CpInfo { pub MaxPduLengt : :: std :: os :: raw :: c_int , pub MaxConnections : :: std :: os :: raw :: c_int , pub MaxMpiRate : :: std :: os :: raw :: c_int , pub MaxBusRate : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_TS7CpInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7CpInfo > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( TS7CpInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7CpInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7CpInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxPduLengt as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxPduLengt ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxConnections as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxConnections ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxMpiRate as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxMpiRate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxBusRate as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxBusRate ) ) ) ; } extern "C" { pub fn Cli_Create ( ) -> S7Object ; } extern "C" { pub fn Cli_Destroy ( Client : * mut S7Object ) ; } extern "C" { pub fn Cli_ConnectTo ( Client : S7Object , Address : * const :: std :: os :: raw :: c_char , Rack : :: std :: os :: raw :: c_int , Slot : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetConnectionParams ( Client : S7Object , Address : * const :: std :: os :: raw :: c_char , LocalTSAP : word , RemoteTSAP : word ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetConnectionType ( Client : S7Object , ConnectionType : word ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_Disconnect ( Client : S7Object ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetParam ( Client : S7Object , ParamNumber : :: std :: os :: raw :: c_int , pValue : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetParam ( Client : S7Object , ParamNumber : :: std :: os :: raw :: c_int , pValue : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ReadArea ( Client : S7Object , Area : :: std :: os :: raw :: c_int , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , WordLen : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_WriteArea ( Client : S7Object , Area : :: std :: os :: raw :: c_int , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , WordLen : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ReadMultiVars ( Client : S7Object , Item : PS7DataItem , ItemsCount : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_WriteMultiVars ( Client : S7Object , Item : PS7DataItem , ItemsCount : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_DBRead ( Client : S7Object , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_DBWrite ( Client : S7Object , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_MBRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_MBWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_EBRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_EBWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ABRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ABWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_TMRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_TMWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_CTRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_CTWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ListBlocks ( Client : S7Object , pUsrData : * mut TS7BlocksList ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetAgBlockInfo ( Client : S7Object , BlockType : :: std :: os :: raw :: c_int , BlockNum : :: std :: os :: raw :: c_int , pUsrData : * mut TS7BlockInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPgBlockInfo ( Client : S7Object , pBlock : * mut :: std :: os :: raw :: c_void , pUsrData : * mut TS7BlockInfo , Size : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ListBlocksOfType ( Client : S7Object , BlockType : :: std :: os :: raw :: c_int , pUsrData : * mut TS7BlocksOfType , ItemsCount : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetCpuInfo ( Client : S7Object , pUsrData : * mut TS7CpuInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetCpInfo ( Client : S7Object , pUsrData : * mut TS7CpInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPlcStatus ( Client : S7Object , Status : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPduLength ( Client : S7Object , Requested : * mut :: std :: os :: raw :: c_int , Negotiated : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ErrorText ( Error : :: std :: os :: raw :: c_int , Text : * mut :: std :: os :: raw :: c_char , TextLen : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetConnected ( Client : S7Object , Connected : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[deny(unaligned_references)]` on by default [INFO] [stderr] = note: fields of packed structs are not properly aligned, and creating a misaligned reference is undefined behavior (even if that reference is never dereferenced) [INFO] [stderr] [INFO] [stderr] error: reference to packed field is unaligned [INFO] [stderr] --> /opt/rustwide/target/debug/build/snap7-sys-0d9a23a4c7ec91a8/out/bindings.rs:3:1076 [INFO] [stderr] | [INFO] [stderr] 3 | pub type __uint16_t = :: std :: os :: raw :: c_ushort ; pub type word = u16 ; pub type S7Object = usize ; # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7DataItem { pub Area : :: std :: os :: raw :: c_int , pub WordLen : :: std :: os :: raw :: c_int , pub Result : :: std :: os :: raw :: c_int , pub DBNumber : :: std :: os :: raw :: c_int , pub Start : :: std :: os :: raw :: c_int , pub Amount : :: std :: os :: raw :: c_int , pub pdata : * mut :: std :: os :: raw :: c_void , } # [ test ] fn bindgen_test_layout_TS7DataItem ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7DataItem > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( TS7DataItem ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7DataItem > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7DataItem ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Area as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Area ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . WordLen as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( WordLen ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Result as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Result ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . DBNumber as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( DBNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Start as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Start ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Amount as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Amount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . pdata as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( pdata ) ) ) ; } pub type PS7DataItem = * mut TS7DataItem ; # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7BlocksList { pub OBCount : :: std :: os :: raw :: c_int , pub FBCount : :: std :: os :: raw :: c_int , pub FCCount : :: std :: os :: raw :: c_int , pub SFBCount : :: std :: os :: raw :: c_int , pub SFCCount : :: std :: os :: raw :: c_int , pub DBCount : :: std :: os :: raw :: c_int , pub SDBCount : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_TS7BlocksList ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7BlocksList > ( ) , 28usize , concat ! ( "Size of: " , stringify ! ( TS7BlocksList ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7BlocksList > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7BlocksList ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . OBCount as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( OBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . FBCount as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( FBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . FCCount as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( FCCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SFBCount as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SFBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SFCCount as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SFCCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . DBCount as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( DBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SDBCount as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SDBCount ) ) ) ; } # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7BlockInfo { pub BlkType : :: std :: os :: raw :: c_int , pub BlkNumber : :: std :: os :: raw :: c_int , pub BlkLang : :: std :: os :: raw :: c_int , pub BlkFlags : :: std :: os :: raw :: c_int , pub MC7Size : :: std :: os :: raw :: c_int , pub LoadSize : :: std :: os :: raw :: c_int , pub LocalData : :: std :: os :: raw :: c_int , pub SBBLength : :: std :: os :: raw :: c_int , pub CheckSum : :: std :: os :: raw :: c_int , pub Version : :: std :: os :: raw :: c_int , pub CodeDate : [ :: std :: os :: raw :: c_char ; 11usize ] , pub IntfDate : [ :: std :: os :: raw :: c_char ; 11usize ] , pub Author : [ :: std :: os :: raw :: c_char ; 9usize ] , pub Family : [ :: std :: os :: raw :: c_char ; 9usize ] , pub Header : [ :: std :: os :: raw :: c_char ; 9usize ] , } # [ test ] fn bindgen_test_layout_TS7BlockInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7BlockInfo > ( ) , 89usize , concat ! ( "Size of: " , stringify ! ( TS7BlockInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7BlockInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7BlockInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkType as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkType ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkNumber as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkLang as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkLang ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkFlags as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkFlags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . MC7Size as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( MC7Size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . LoadSize as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( LoadSize ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . LocalData as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( LocalData ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . SBBLength as * const _ as usize } , 28usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( SBBLength ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . CheckSum as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( CheckSum ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Version as * const _ as usize } , 36usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Version ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . CodeDate as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( CodeDate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . IntfDate as * const _ as usize } , 51usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( IntfDate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Author as * const _ as usize } , 62usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Author ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Family as * const _ as usize } , 71usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Family ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Header as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Header ) ) ) ; } pub type TS7BlocksOfType = [ word ; 8192usize ] ; # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct TS7CpuInfo { pub ModuleTypeName : [ :: std :: os :: raw :: c_char ; 33usize ] , pub SerialNumber : [ :: std :: os :: raw :: c_char ; 25usize ] , pub ASName : [ :: std :: os :: raw :: c_char ; 25usize ] , pub Copyright : [ :: std :: os :: raw :: c_char ; 27usize ] , pub ModuleName : [ :: std :: os :: raw :: c_char ; 25usize ] , } # [ test ] fn bindgen_test_layout_TS7CpuInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7CpuInfo > ( ) , 135usize , concat ! ( "Size of: " , stringify ! ( TS7CpuInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7CpuInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7CpuInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ModuleTypeName as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ModuleTypeName ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . SerialNumber as * const _ as usize } , 33usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( SerialNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ASName as * const _ as usize } , 58usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ASName ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . Copyright as * const _ as usize } , 83usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( Copyright ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ModuleName as * const _ as usize } , 110usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ModuleName ) ) ) ; } # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7CpInfo { pub MaxPduLengt : :: std :: os :: raw :: c_int , pub MaxConnections : :: std :: os :: raw :: c_int , pub MaxMpiRate : :: std :: os :: raw :: c_int , pub MaxBusRate : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_TS7CpInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7CpInfo > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( TS7CpInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7CpInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7CpInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxPduLengt as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxPduLengt ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxConnections as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxConnections ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxMpiRate as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxMpiRate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxBusRate as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxBusRate ) ) ) ; } extern "C" { pub fn Cli_Create ( ) -> S7Object ; } extern "C" { pub fn Cli_Destroy ( Client : * mut S7Object ) ; } extern "C" { pub fn Cli_ConnectTo ( Client : S7Object , Address : * const :: std :: os :: raw :: c_char , Rack : :: std :: os :: raw :: c_int , Slot : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetConnectionParams ( Client : S7Object , Address : * const :: std :: os :: raw :: c_char , LocalTSAP : word , RemoteTSAP : word ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetConnectionType ( Client : S7Object , ConnectionType : word ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_Disconnect ( Client : S7Object ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetParam ( Client : S7Object , ParamNumber : :: std :: os :: raw :: c_int , pValue : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetParam ( Client : S7Object , ParamNumber : :: std :: os :: raw :: c_int , pValue : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ReadArea ( Client : S7Object , Area : :: std :: os :: raw :: c_int , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , WordLen : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_WriteArea ( Client : S7Object , Area : :: std :: os :: raw :: c_int , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , WordLen : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ReadMultiVars ( Client : S7Object , Item : PS7DataItem , ItemsCount : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_WriteMultiVars ( Client : S7Object , Item : PS7DataItem , ItemsCount : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_DBRead ( Client : S7Object , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_DBWrite ( Client : S7Object , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_MBRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_MBWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_EBRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_EBWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ABRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ABWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_TMRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_TMWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_CTRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_CTWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ListBlocks ( Client : S7Object , pUsrData : * mut TS7BlocksList ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetAgBlockInfo ( Client : S7Object , BlockType : :: std :: os :: raw :: c_int , BlockNum : :: std :: os :: raw :: c_int , pUsrData : * mut TS7BlockInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPgBlockInfo ( Client : S7Object , pBlock : * mut :: std :: os :: raw :: c_void , pUsrData : * mut TS7BlockInfo , Size : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ListBlocksOfType ( Client : S7Object , BlockType : :: std :: os :: raw :: c_int , pUsrData : * mut TS7BlocksOfType , ItemsCount : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetCpuInfo ( Client : S7Object , pUsrData : * mut TS7CpuInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetCpInfo ( Client : S7Object , pUsrData : * mut TS7CpInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPlcStatus ( Client : S7Object , Status : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPduLength ( Client : S7Object , Requested : * mut :: std :: os :: raw :: c_int , Negotiated : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ErrorText ( Error : :: std :: os :: raw :: c_int , Text : * mut :: std :: os :: raw :: c_char , TextLen : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetConnected ( Client : S7Object , Connected : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: fields of packed structs are not properly aligned, and creating a misaligned reference is undefined behavior (even if that reference is never dereferenced) [INFO] [stderr] [INFO] [stderr] error: reference to packed field is unaligned [INFO] [stderr] --> /opt/rustwide/target/debug/build/snap7-sys-0d9a23a4c7ec91a8/out/bindings.rs:3:1301 [INFO] [stderr] | [INFO] [stderr] 3 | pub type __uint16_t = :: std :: os :: raw :: c_ushort ; pub type word = u16 ; pub type S7Object = usize ; # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7DataItem { pub Area : :: std :: os :: raw :: c_int , pub WordLen : :: std :: os :: raw :: c_int , pub Result : :: std :: os :: raw :: c_int , pub DBNumber : :: std :: os :: raw :: c_int , pub Start : :: std :: os :: raw :: c_int , pub Amount : :: std :: os :: raw :: c_int , pub pdata : * mut :: std :: os :: raw :: c_void , } # [ test ] fn bindgen_test_layout_TS7DataItem ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7DataItem > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( TS7DataItem ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7DataItem > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7DataItem ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Area as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Area ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . WordLen as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( WordLen ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Result as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Result ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . DBNumber as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( DBNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Start as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Start ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Amount as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Amount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . pdata as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( pdata ) ) ) ; } pub type PS7DataItem = * mut TS7DataItem ; # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7BlocksList { pub OBCount : :: std :: os :: raw :: c_int , pub FBCount : :: std :: os :: raw :: c_int , pub FCCount : :: std :: os :: raw :: c_int , pub SFBCount : :: std :: os :: raw :: c_int , pub SFCCount : :: std :: os :: raw :: c_int , pub DBCount : :: std :: os :: raw :: c_int , pub SDBCount : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_TS7BlocksList ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7BlocksList > ( ) , 28usize , concat ! ( "Size of: " , stringify ! ( TS7BlocksList ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7BlocksList > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7BlocksList ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . OBCount as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( OBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . FBCount as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( FBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . FCCount as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( FCCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SFBCount as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SFBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SFCCount as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SFCCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . DBCount as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( DBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SDBCount as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SDBCount ) ) ) ; } # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7BlockInfo { pub BlkType : :: std :: os :: raw :: c_int , pub BlkNumber : :: std :: os :: raw :: c_int , pub BlkLang : :: std :: os :: raw :: c_int , pub BlkFlags : :: std :: os :: raw :: c_int , pub MC7Size : :: std :: os :: raw :: c_int , pub LoadSize : :: std :: os :: raw :: c_int , pub LocalData : :: std :: os :: raw :: c_int , pub SBBLength : :: std :: os :: raw :: c_int , pub CheckSum : :: std :: os :: raw :: c_int , pub Version : :: std :: os :: raw :: c_int , pub CodeDate : [ :: std :: os :: raw :: c_char ; 11usize ] , pub IntfDate : [ :: std :: os :: raw :: c_char ; 11usize ] , pub Author : [ :: std :: os :: raw :: c_char ; 9usize ] , pub Family : [ :: std :: os :: raw :: c_char ; 9usize ] , pub Header : [ :: std :: os :: raw :: c_char ; 9usize ] , } # [ test ] fn bindgen_test_layout_TS7BlockInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7BlockInfo > ( ) , 89usize , concat ! ( "Size of: " , stringify ! ( TS7BlockInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7BlockInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7BlockInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkType as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkType ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkNumber as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkLang as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkLang ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkFlags as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkFlags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . MC7Size as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( MC7Size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . LoadSize as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( LoadSize ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . LocalData as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( LocalData ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . SBBLength as * const _ as usize } , 28usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( SBBLength ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . CheckSum as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( CheckSum ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Version as * const _ as usize } , 36usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Version ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . CodeDate as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( CodeDate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . IntfDate as * const _ as usize } , 51usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( IntfDate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Author as * const _ as usize } , 62usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Author ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Family as * const _ as usize } , 71usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Family ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Header as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Header ) ) ) ; } pub type TS7BlocksOfType = [ word ; 8192usize ] ; # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct TS7CpuInfo { pub ModuleTypeName : [ :: std :: os :: raw :: c_char ; 33usize ] , pub SerialNumber : [ :: std :: os :: raw :: c_char ; 25usize ] , pub ASName : [ :: std :: os :: raw :: c_char ; 25usize ] , pub Copyright : [ :: std :: os :: raw :: c_char ; 27usize ] , pub ModuleName : [ :: std :: os :: raw :: c_char ; 25usize ] , } # [ test ] fn bindgen_test_layout_TS7CpuInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7CpuInfo > ( ) , 135usize , concat ! ( "Size of: " , stringify ! ( TS7CpuInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7CpuInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7CpuInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ModuleTypeName as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ModuleTypeName ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . SerialNumber as * const _ as usize } , 33usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( SerialNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ASName as * const _ as usize } , 58usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ASName ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . Copyright as * const _ as usize } , 83usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( Copyright ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ModuleName as * const _ as usize } , 110usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ModuleName ) ) ) ; } # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7CpInfo { pub MaxPduLengt : :: std :: os :: raw :: c_int , pub MaxConnections : :: std :: os :: raw :: c_int , pub MaxMpiRate : :: std :: os :: raw :: c_int , pub MaxBusRate : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_TS7CpInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7CpInfo > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( TS7CpInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7CpInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7CpInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxPduLengt as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxPduLengt ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxConnections as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxConnections ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxMpiRate as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxMpiRate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxBusRate as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxBusRate ) ) ) ; } extern "C" { pub fn Cli_Create ( ) -> S7Object ; } extern "C" { pub fn Cli_Destroy ( Client : * mut S7Object ) ; } extern "C" { pub fn Cli_ConnectTo ( Client : S7Object , Address : * const :: std :: os :: raw :: c_char , Rack : :: std :: os :: raw :: c_int , Slot : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetConnectionParams ( Client : S7Object , Address : * const :: std :: os :: raw :: c_char , LocalTSAP : word , RemoteTSAP : word ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetConnectionType ( Client : S7Object , ConnectionType : word ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_Disconnect ( Client : S7Object ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetParam ( Client : S7Object , ParamNumber : :: std :: os :: raw :: c_int , pValue : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetParam ( Client : S7Object , ParamNumber : :: std :: os :: raw :: c_int , pValue : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ReadArea ( Client : S7Object , Area : :: std :: os :: raw :: c_int , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , WordLen : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_WriteArea ( Client : S7Object , Area : :: std :: os :: raw :: c_int , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , WordLen : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ReadMultiVars ( Client : S7Object , Item : PS7DataItem , ItemsCount : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_WriteMultiVars ( Client : S7Object , Item : PS7DataItem , ItemsCount : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_DBRead ( Client : S7Object , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_DBWrite ( Client : S7Object , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_MBRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_MBWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_EBRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_EBWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ABRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ABWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_TMRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_TMWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_CTRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_CTWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ListBlocks ( Client : S7Object , pUsrData : * mut TS7BlocksList ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetAgBlockInfo ( Client : S7Object , BlockType : :: std :: os :: raw :: c_int , BlockNum : :: std :: os :: raw :: c_int , pUsrData : * mut TS7BlockInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPgBlockInfo ( Client : S7Object , pBlock : * mut :: std :: os :: raw :: c_void , pUsrData : * mut TS7BlockInfo , Size : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ListBlocksOfType ( Client : S7Object , BlockType : :: std :: os :: raw :: c_int , pUsrData : * mut TS7BlocksOfType , ItemsCount : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetCpuInfo ( Client : S7Object , pUsrData : * mut TS7CpuInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetCpInfo ( Client : S7Object , pUsrData : * mut TS7CpInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPlcStatus ( Client : S7Object , Status : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPduLength ( Client : S7Object , Requested : * mut :: std :: os :: raw :: c_int , Negotiated : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ErrorText ( Error : :: std :: os :: raw :: c_int , Text : * mut :: std :: os :: raw :: c_char , TextLen : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetConnected ( Client : S7Object , Connected : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: fields of packed structs are not properly aligned, and creating a misaligned reference is undefined behavior (even if that reference is never dereferenced) [INFO] [stderr] [INFO] [stderr] error: reference to packed field is unaligned [INFO] [stderr] --> /opt/rustwide/target/debug/build/snap7-sys-0d9a23a4c7ec91a8/out/bindings.rs:3:1524 [INFO] [stderr] | [INFO] [stderr] 3 | pub type __uint16_t = :: std :: os :: raw :: c_ushort ; pub type word = u16 ; pub type S7Object = usize ; # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7DataItem { pub Area : :: std :: os :: raw :: c_int , pub WordLen : :: std :: os :: raw :: c_int , pub Result : :: std :: os :: raw :: c_int , pub DBNumber : :: std :: os :: raw :: c_int , pub Start : :: std :: os :: raw :: c_int , pub Amount : :: std :: os :: raw :: c_int , pub pdata : * mut :: std :: os :: raw :: c_void , } # [ test ] fn bindgen_test_layout_TS7DataItem ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7DataItem > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( TS7DataItem ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7DataItem > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7DataItem ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Area as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Area ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . WordLen as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( WordLen ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Result as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Result ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . DBNumber as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( DBNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Start as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Start ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Amount as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Amount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . pdata as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( pdata ) ) ) ; } pub type PS7DataItem = * mut TS7DataItem ; # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7BlocksList { pub OBCount : :: std :: os :: raw :: c_int , pub FBCount : :: std :: os :: raw :: c_int , pub FCCount : :: std :: os :: raw :: c_int , pub SFBCount : :: std :: os :: raw :: c_int , pub SFCCount : :: std :: os :: raw :: c_int , pub DBCount : :: std :: os :: raw :: c_int , pub SDBCount : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_TS7BlocksList ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7BlocksList > ( ) , 28usize , concat ! ( "Size of: " , stringify ! ( TS7BlocksList ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7BlocksList > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7BlocksList ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . OBCount as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( OBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . FBCount as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( FBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . FCCount as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( FCCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SFBCount as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SFBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SFCCount as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SFCCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . DBCount as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( DBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SDBCount as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SDBCount ) ) ) ; } # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7BlockInfo { pub BlkType : :: std :: os :: raw :: c_int , pub BlkNumber : :: std :: os :: raw :: c_int , pub BlkLang : :: std :: os :: raw :: c_int , pub BlkFlags : :: std :: os :: raw :: c_int , pub MC7Size : :: std :: os :: raw :: c_int , pub LoadSize : :: std :: os :: raw :: c_int , pub LocalData : :: std :: os :: raw :: c_int , pub SBBLength : :: std :: os :: raw :: c_int , pub CheckSum : :: std :: os :: raw :: c_int , pub Version : :: std :: os :: raw :: c_int , pub CodeDate : [ :: std :: os :: raw :: c_char ; 11usize ] , pub IntfDate : [ :: std :: os :: raw :: c_char ; 11usize ] , pub Author : [ :: std :: os :: raw :: c_char ; 9usize ] , pub Family : [ :: std :: os :: raw :: c_char ; 9usize ] , pub Header : [ :: std :: os :: raw :: c_char ; 9usize ] , } # [ test ] fn bindgen_test_layout_TS7BlockInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7BlockInfo > ( ) , 89usize , concat ! ( "Size of: " , stringify ! ( TS7BlockInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7BlockInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7BlockInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkType as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkType ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkNumber as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkLang as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkLang ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkFlags as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkFlags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . MC7Size as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( MC7Size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . LoadSize as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( LoadSize ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . LocalData as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( LocalData ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . SBBLength as * const _ as usize } , 28usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( SBBLength ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . CheckSum as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( CheckSum ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Version as * const _ as usize } , 36usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Version ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . CodeDate as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( CodeDate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . IntfDate as * const _ as usize } , 51usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( IntfDate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Author as * const _ as usize } , 62usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Author ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Family as * const _ as usize } , 71usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Family ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Header as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Header ) ) ) ; } pub type TS7BlocksOfType = [ word ; 8192usize ] ; # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct TS7CpuInfo { pub ModuleTypeName : [ :: std :: os :: raw :: c_char ; 33usize ] , pub SerialNumber : [ :: std :: os :: raw :: c_char ; 25usize ] , pub ASName : [ :: std :: os :: raw :: c_char ; 25usize ] , pub Copyright : [ :: std :: os :: raw :: c_char ; 27usize ] , pub ModuleName : [ :: std :: os :: raw :: c_char ; 25usize ] , } # [ test ] fn bindgen_test_layout_TS7CpuInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7CpuInfo > ( ) , 135usize , concat ! ( "Size of: " , stringify ! ( TS7CpuInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7CpuInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7CpuInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ModuleTypeName as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ModuleTypeName ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . SerialNumber as * const _ as usize } , 33usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( SerialNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ASName as * const _ as usize } , 58usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ASName ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . Copyright as * const _ as usize } , 83usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( Copyright ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ModuleName as * const _ as usize } , 110usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ModuleName ) ) ) ; } # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7CpInfo { pub MaxPduLengt : :: std :: os :: raw :: c_int , pub MaxConnections : :: std :: os :: raw :: c_int , pub MaxMpiRate : :: std :: os :: raw :: c_int , pub MaxBusRate : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_TS7CpInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7CpInfo > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( TS7CpInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7CpInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7CpInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxPduLengt as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxPduLengt ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxConnections as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxConnections ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxMpiRate as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxMpiRate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxBusRate as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxBusRate ) ) ) ; } extern "C" { pub fn Cli_Create ( ) -> S7Object ; } extern "C" { pub fn Cli_Destroy ( Client : * mut S7Object ) ; } extern "C" { pub fn Cli_ConnectTo ( Client : S7Object , Address : * const :: std :: os :: raw :: c_char , Rack : :: std :: os :: raw :: c_int , Slot : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetConnectionParams ( Client : S7Object , Address : * const :: std :: os :: raw :: c_char , LocalTSAP : word , RemoteTSAP : word ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetConnectionType ( Client : S7Object , ConnectionType : word ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_Disconnect ( Client : S7Object ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetParam ( Client : S7Object , ParamNumber : :: std :: os :: raw :: c_int , pValue : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetParam ( Client : S7Object , ParamNumber : :: std :: os :: raw :: c_int , pValue : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ReadArea ( Client : S7Object , Area : :: std :: os :: raw :: c_int , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , WordLen : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_WriteArea ( Client : S7Object , Area : :: std :: os :: raw :: c_int , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , WordLen : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ReadMultiVars ( Client : S7Object , Item : PS7DataItem , ItemsCount : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_WriteMultiVars ( Client : S7Object , Item : PS7DataItem , ItemsCount : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_DBRead ( Client : S7Object , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_DBWrite ( Client : S7Object , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_MBRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_MBWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_EBRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_EBWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ABRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ABWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_TMRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_TMWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_CTRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_CTWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ListBlocks ( Client : S7Object , pUsrData : * mut TS7BlocksList ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetAgBlockInfo ( Client : S7Object , BlockType : :: std :: os :: raw :: c_int , BlockNum : :: std :: os :: raw :: c_int , pUsrData : * mut TS7BlockInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPgBlockInfo ( Client : S7Object , pBlock : * mut :: std :: os :: raw :: c_void , pUsrData : * mut TS7BlockInfo , Size : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ListBlocksOfType ( Client : S7Object , BlockType : :: std :: os :: raw :: c_int , pUsrData : * mut TS7BlocksOfType , ItemsCount : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetCpuInfo ( Client : S7Object , pUsrData : * mut TS7CpuInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetCpInfo ( Client : S7Object , pUsrData : * mut TS7CpInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPlcStatus ( Client : S7Object , Status : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPduLength ( Client : S7Object , Requested : * mut :: std :: os :: raw :: c_int , Negotiated : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ErrorText ( Error : :: std :: os :: raw :: c_int , Text : * mut :: std :: os :: raw :: c_char , TextLen : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetConnected ( Client : S7Object , Connected : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: fields of packed structs are not properly aligned, and creating a misaligned reference is undefined behavior (even if that reference is never dereferenced) [INFO] [stderr] [INFO] [stderr] error: reference to packed field is unaligned [INFO] [stderr] --> /opt/rustwide/target/debug/build/snap7-sys-0d9a23a4c7ec91a8/out/bindings.rs:3:1752 [INFO] [stderr] | [INFO] [stderr] 3 | pub type __uint16_t = :: std :: os :: raw :: c_ushort ; pub type word = u16 ; pub type S7Object = usize ; # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7DataItem { pub Area : :: std :: os :: raw :: c_int , pub WordLen : :: std :: os :: raw :: c_int , pub Result : :: std :: os :: raw :: c_int , pub DBNumber : :: std :: os :: raw :: c_int , pub Start : :: std :: os :: raw :: c_int , pub Amount : :: std :: os :: raw :: c_int , pub pdata : * mut :: std :: os :: raw :: c_void , } # [ test ] fn bindgen_test_layout_TS7DataItem ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7DataItem > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( TS7DataItem ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7DataItem > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7DataItem ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Area as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Area ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . WordLen as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( WordLen ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Result as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Result ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . DBNumber as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( DBNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Start as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Start ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Amount as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Amount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . pdata as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( pdata ) ) ) ; } pub type PS7DataItem = * mut TS7DataItem ; # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7BlocksList { pub OBCount : :: std :: os :: raw :: c_int , pub FBCount : :: std :: os :: raw :: c_int , pub FCCount : :: std :: os :: raw :: c_int , pub SFBCount : :: std :: os :: raw :: c_int , pub SFCCount : :: std :: os :: raw :: c_int , pub DBCount : :: std :: os :: raw :: c_int , pub SDBCount : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_TS7BlocksList ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7BlocksList > ( ) , 28usize , concat ! ( "Size of: " , stringify ! ( TS7BlocksList ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7BlocksList > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7BlocksList ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . OBCount as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( OBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . FBCount as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( FBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . FCCount as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( FCCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SFBCount as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SFBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SFCCount as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SFCCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . DBCount as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( DBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SDBCount as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SDBCount ) ) ) ; } # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7BlockInfo { pub BlkType : :: std :: os :: raw :: c_int , pub BlkNumber : :: std :: os :: raw :: c_int , pub BlkLang : :: std :: os :: raw :: c_int , pub BlkFlags : :: std :: os :: raw :: c_int , pub MC7Size : :: std :: os :: raw :: c_int , pub LoadSize : :: std :: os :: raw :: c_int , pub LocalData : :: std :: os :: raw :: c_int , pub SBBLength : :: std :: os :: raw :: c_int , pub CheckSum : :: std :: os :: raw :: c_int , pub Version : :: std :: os :: raw :: c_int , pub CodeDate : [ :: std :: os :: raw :: c_char ; 11usize ] , pub IntfDate : [ :: std :: os :: raw :: c_char ; 11usize ] , pub Author : [ :: std :: os :: raw :: c_char ; 9usize ] , pub Family : [ :: std :: os :: raw :: c_char ; 9usize ] , pub Header : [ :: std :: os :: raw :: c_char ; 9usize ] , } # [ test ] fn bindgen_test_layout_TS7BlockInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7BlockInfo > ( ) , 89usize , concat ! ( "Size of: " , stringify ! ( TS7BlockInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7BlockInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7BlockInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkType as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkType ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkNumber as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkLang as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkLang ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkFlags as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkFlags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . MC7Size as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( MC7Size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . LoadSize as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( LoadSize ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . LocalData as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( LocalData ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . SBBLength as * const _ as usize } , 28usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( SBBLength ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . CheckSum as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( CheckSum ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Version as * const _ as usize } , 36usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Version ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . CodeDate as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( CodeDate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . IntfDate as * const _ as usize } , 51usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( IntfDate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Author as * const _ as usize } , 62usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Author ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Family as * const _ as usize } , 71usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Family ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Header as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Header ) ) ) ; } pub type TS7BlocksOfType = [ word ; 8192usize ] ; # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct TS7CpuInfo { pub ModuleTypeName : [ :: std :: os :: raw :: c_char ; 33usize ] , pub SerialNumber : [ :: std :: os :: raw :: c_char ; 25usize ] , pub ASName : [ :: std :: os :: raw :: c_char ; 25usize ] , pub Copyright : [ :: std :: os :: raw :: c_char ; 27usize ] , pub ModuleName : [ :: std :: os :: raw :: c_char ; 25usize ] , } # [ test ] fn bindgen_test_layout_TS7CpuInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7CpuInfo > ( ) , 135usize , concat ! ( "Size of: " , stringify ! ( TS7CpuInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7CpuInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7CpuInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ModuleTypeName as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ModuleTypeName ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . SerialNumber as * const _ as usize } , 33usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( SerialNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ASName as * const _ as usize } , 58usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ASName ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . Copyright as * const _ as usize } , 83usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( Copyright ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ModuleName as * const _ as usize } , 110usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ModuleName ) ) ) ; } # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7CpInfo { pub MaxPduLengt : :: std :: os :: raw :: c_int , pub MaxConnections : :: std :: os :: raw :: c_int , pub MaxMpiRate : :: std :: os :: raw :: c_int , pub MaxBusRate : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_TS7CpInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7CpInfo > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( TS7CpInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7CpInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7CpInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxPduLengt as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxPduLengt ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxConnections as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxConnections ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxMpiRate as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxMpiRate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxBusRate as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxBusRate ) ) ) ; } extern "C" { pub fn Cli_Create ( ) -> S7Object ; } extern "C" { pub fn Cli_Destroy ( Client : * mut S7Object ) ; } extern "C" { pub fn Cli_ConnectTo ( Client : S7Object , Address : * const :: std :: os :: raw :: c_char , Rack : :: std :: os :: raw :: c_int , Slot : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetConnectionParams ( Client : S7Object , Address : * const :: std :: os :: raw :: c_char , LocalTSAP : word , RemoteTSAP : word ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetConnectionType ( Client : S7Object , ConnectionType : word ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_Disconnect ( Client : S7Object ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetParam ( Client : S7Object , ParamNumber : :: std :: os :: raw :: c_int , pValue : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetParam ( Client : S7Object , ParamNumber : :: std :: os :: raw :: c_int , pValue : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ReadArea ( Client : S7Object , Area : :: std :: os :: raw :: c_int , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , WordLen : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_WriteArea ( Client : S7Object , Area : :: std :: os :: raw :: c_int , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , WordLen : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ReadMultiVars ( Client : S7Object , Item : PS7DataItem , ItemsCount : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_WriteMultiVars ( Client : S7Object , Item : PS7DataItem , ItemsCount : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_DBRead ( Client : S7Object , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_DBWrite ( Client : S7Object , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_MBRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_MBWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_EBRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_EBWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ABRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ABWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_TMRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_TMWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_CTRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_CTWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ListBlocks ( Client : S7Object , pUsrData : * mut TS7BlocksList ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetAgBlockInfo ( Client : S7Object , BlockType : :: std :: os :: raw :: c_int , BlockNum : :: std :: os :: raw :: c_int , pUsrData : * mut TS7BlockInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPgBlockInfo ( Client : S7Object , pBlock : * mut :: std :: os :: raw :: c_void , pUsrData : * mut TS7BlockInfo , Size : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ListBlocksOfType ( Client : S7Object , BlockType : :: std :: os :: raw :: c_int , pUsrData : * mut TS7BlocksOfType , ItemsCount : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetCpuInfo ( Client : S7Object , pUsrData : * mut TS7CpuInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetCpInfo ( Client : S7Object , pUsrData : * mut TS7CpInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPlcStatus ( Client : S7Object , Status : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPduLength ( Client : S7Object , Requested : * mut :: std :: os :: raw :: c_int , Negotiated : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ErrorText ( Error : :: std :: os :: raw :: c_int , Text : * mut :: std :: os :: raw :: c_char , TextLen : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetConnected ( Client : S7Object , Connected : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: fields of packed structs are not properly aligned, and creating a misaligned reference is undefined behavior (even if that reference is never dereferenced) [INFO] [stderr] [INFO] [stderr] error: reference to packed field is unaligned [INFO] [stderr] --> /opt/rustwide/target/debug/build/snap7-sys-0d9a23a4c7ec91a8/out/bindings.rs:3:1974 [INFO] [stderr] | [INFO] [stderr] 3 | pub type __uint16_t = :: std :: os :: raw :: c_ushort ; pub type word = u16 ; pub type S7Object = usize ; # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7DataItem { pub Area : :: std :: os :: raw :: c_int , pub WordLen : :: std :: os :: raw :: c_int , pub Result : :: std :: os :: raw :: c_int , pub DBNumber : :: std :: os :: raw :: c_int , pub Start : :: std :: os :: raw :: c_int , pub Amount : :: std :: os :: raw :: c_int , pub pdata : * mut :: std :: os :: raw :: c_void , } # [ test ] fn bindgen_test_layout_TS7DataItem ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7DataItem > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( TS7DataItem ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7DataItem > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7DataItem ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Area as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Area ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . WordLen as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( WordLen ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Result as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Result ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . DBNumber as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( DBNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Start as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Start ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Amount as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Amount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . pdata as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( pdata ) ) ) ; } pub type PS7DataItem = * mut TS7DataItem ; # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7BlocksList { pub OBCount : :: std :: os :: raw :: c_int , pub FBCount : :: std :: os :: raw :: c_int , pub FCCount : :: std :: os :: raw :: c_int , pub SFBCount : :: std :: os :: raw :: c_int , pub SFCCount : :: std :: os :: raw :: c_int , pub DBCount : :: std :: os :: raw :: c_int , pub SDBCount : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_TS7BlocksList ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7BlocksList > ( ) , 28usize , concat ! ( "Size of: " , stringify ! ( TS7BlocksList ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7BlocksList > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7BlocksList ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . OBCount as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( OBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . FBCount as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( FBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . FCCount as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( FCCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SFBCount as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SFBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SFCCount as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SFCCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . DBCount as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( DBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SDBCount as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SDBCount ) ) ) ; } # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7BlockInfo { pub BlkType : :: std :: os :: raw :: c_int , pub BlkNumber : :: std :: os :: raw :: c_int , pub BlkLang : :: std :: os :: raw :: c_int , pub BlkFlags : :: std :: os :: raw :: c_int , pub MC7Size : :: std :: os :: raw :: c_int , pub LoadSize : :: std :: os :: raw :: c_int , pub LocalData : :: std :: os :: raw :: c_int , pub SBBLength : :: std :: os :: raw :: c_int , pub CheckSum : :: std :: os :: raw :: c_int , pub Version : :: std :: os :: raw :: c_int , pub CodeDate : [ :: std :: os :: raw :: c_char ; 11usize ] , pub IntfDate : [ :: std :: os :: raw :: c_char ; 11usize ] , pub Author : [ :: std :: os :: raw :: c_char ; 9usize ] , pub Family : [ :: std :: os :: raw :: c_char ; 9usize ] , pub Header : [ :: std :: os :: raw :: c_char ; 9usize ] , } # [ test ] fn bindgen_test_layout_TS7BlockInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7BlockInfo > ( ) , 89usize , concat ! ( "Size of: " , stringify ! ( TS7BlockInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7BlockInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7BlockInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkType as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkType ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkNumber as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkLang as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkLang ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkFlags as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkFlags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . MC7Size as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( MC7Size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . LoadSize as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( LoadSize ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . LocalData as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( LocalData ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . SBBLength as * const _ as usize } , 28usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( SBBLength ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . CheckSum as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( CheckSum ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Version as * const _ as usize } , 36usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Version ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . CodeDate as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( CodeDate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . IntfDate as * const _ as usize } , 51usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( IntfDate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Author as * const _ as usize } , 62usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Author ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Family as * const _ as usize } , 71usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Family ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Header as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Header ) ) ) ; } pub type TS7BlocksOfType = [ word ; 8192usize ] ; # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct TS7CpuInfo { pub ModuleTypeName : [ :: std :: os :: raw :: c_char ; 33usize ] , pub SerialNumber : [ :: std :: os :: raw :: c_char ; 25usize ] , pub ASName : [ :: std :: os :: raw :: c_char ; 25usize ] , pub Copyright : [ :: std :: os :: raw :: c_char ; 27usize ] , pub ModuleName : [ :: std :: os :: raw :: c_char ; 25usize ] , } # [ test ] fn bindgen_test_layout_TS7CpuInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7CpuInfo > ( ) , 135usize , concat ! ( "Size of: " , stringify ! ( TS7CpuInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7CpuInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7CpuInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ModuleTypeName as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ModuleTypeName ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . SerialNumber as * const _ as usize } , 33usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( SerialNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ASName as * const _ as usize } , 58usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ASName ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . Copyright as * const _ as usize } , 83usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( Copyright ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ModuleName as * const _ as usize } , 110usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ModuleName ) ) ) ; } # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7CpInfo { pub MaxPduLengt : :: std :: os :: raw :: c_int , pub MaxConnections : :: std :: os :: raw :: c_int , pub MaxMpiRate : :: std :: os :: raw :: c_int , pub MaxBusRate : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_TS7CpInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7CpInfo > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( TS7CpInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7CpInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7CpInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxPduLengt as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxPduLengt ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxConnections as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxConnections ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxMpiRate as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxMpiRate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxBusRate as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxBusRate ) ) ) ; } extern "C" { pub fn Cli_Create ( ) -> S7Object ; } extern "C" { pub fn Cli_Destroy ( Client : * mut S7Object ) ; } extern "C" { pub fn Cli_ConnectTo ( Client : S7Object , Address : * const :: std :: os :: raw :: c_char , Rack : :: std :: os :: raw :: c_int , Slot : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetConnectionParams ( Client : S7Object , Address : * const :: std :: os :: raw :: c_char , LocalTSAP : word , RemoteTSAP : word ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetConnectionType ( Client : S7Object , ConnectionType : word ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_Disconnect ( Client : S7Object ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetParam ( Client : S7Object , ParamNumber : :: std :: os :: raw :: c_int , pValue : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetParam ( Client : S7Object , ParamNumber : :: std :: os :: raw :: c_int , pValue : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ReadArea ( Client : S7Object , Area : :: std :: os :: raw :: c_int , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , WordLen : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_WriteArea ( Client : S7Object , Area : :: std :: os :: raw :: c_int , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , WordLen : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ReadMultiVars ( Client : S7Object , Item : PS7DataItem , ItemsCount : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_WriteMultiVars ( Client : S7Object , Item : PS7DataItem , ItemsCount : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_DBRead ( Client : S7Object , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_DBWrite ( Client : S7Object , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_MBRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_MBWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_EBRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_EBWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ABRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ABWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_TMRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_TMWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_CTRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_CTWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ListBlocks ( Client : S7Object , pUsrData : * mut TS7BlocksList ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetAgBlockInfo ( Client : S7Object , BlockType : :: std :: os :: raw :: c_int , BlockNum : :: std :: os :: raw :: c_int , pUsrData : * mut TS7BlockInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPgBlockInfo ( Client : S7Object , pBlock : * mut :: std :: os :: raw :: c_void , pUsrData : * mut TS7BlockInfo , Size : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ListBlocksOfType ( Client : S7Object , BlockType : :: std :: os :: raw :: c_int , pUsrData : * mut TS7BlocksOfType , ItemsCount : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetCpuInfo ( Client : S7Object , pUsrData : * mut TS7CpuInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetCpInfo ( Client : S7Object , pUsrData : * mut TS7CpInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPlcStatus ( Client : S7Object , Status : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPduLength ( Client : S7Object , Requested : * mut :: std :: os :: raw :: c_int , Negotiated : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ErrorText ( Error : :: std :: os :: raw :: c_int , Text : * mut :: std :: os :: raw :: c_char , TextLen : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetConnected ( Client : S7Object , Connected : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: fields of packed structs are not properly aligned, and creating a misaligned reference is undefined behavior (even if that reference is never dereferenced) [INFO] [stderr] [INFO] [stderr] error: reference to packed field is unaligned [INFO] [stderr] --> /opt/rustwide/target/debug/build/snap7-sys-0d9a23a4c7ec91a8/out/bindings.rs:3:2198 [INFO] [stderr] | [INFO] [stderr] 3 | pub type __uint16_t = :: std :: os :: raw :: c_ushort ; pub type word = u16 ; pub type S7Object = usize ; # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7DataItem { pub Area : :: std :: os :: raw :: c_int , pub WordLen : :: std :: os :: raw :: c_int , pub Result : :: std :: os :: raw :: c_int , pub DBNumber : :: std :: os :: raw :: c_int , pub Start : :: std :: os :: raw :: c_int , pub Amount : :: std :: os :: raw :: c_int , pub pdata : * mut :: std :: os :: raw :: c_void , } # [ test ] fn bindgen_test_layout_TS7DataItem ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7DataItem > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( TS7DataItem ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7DataItem > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7DataItem ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Area as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Area ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . WordLen as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( WordLen ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Result as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Result ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . DBNumber as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( DBNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Start as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Start ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Amount as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Amount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . pdata as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( pdata ) ) ) ; } pub type PS7DataItem = * mut TS7DataItem ; # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7BlocksList { pub OBCount : :: std :: os :: raw :: c_int , pub FBCount : :: std :: os :: raw :: c_int , pub FCCount : :: std :: os :: raw :: c_int , pub SFBCount : :: std :: os :: raw :: c_int , pub SFCCount : :: std :: os :: raw :: c_int , pub DBCount : :: std :: os :: raw :: c_int , pub SDBCount : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_TS7BlocksList ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7BlocksList > ( ) , 28usize , concat ! ( "Size of: " , stringify ! ( TS7BlocksList ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7BlocksList > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7BlocksList ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . OBCount as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( OBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . FBCount as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( FBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . FCCount as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( FCCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SFBCount as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SFBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SFCCount as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SFCCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . DBCount as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( DBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SDBCount as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SDBCount ) ) ) ; } # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7BlockInfo { pub BlkType : :: std :: os :: raw :: c_int , pub BlkNumber : :: std :: os :: raw :: c_int , pub BlkLang : :: std :: os :: raw :: c_int , pub BlkFlags : :: std :: os :: raw :: c_int , pub MC7Size : :: std :: os :: raw :: c_int , pub LoadSize : :: std :: os :: raw :: c_int , pub LocalData : :: std :: os :: raw :: c_int , pub SBBLength : :: std :: os :: raw :: c_int , pub CheckSum : :: std :: os :: raw :: c_int , pub Version : :: std :: os :: raw :: c_int , pub CodeDate : [ :: std :: os :: raw :: c_char ; 11usize ] , pub IntfDate : [ :: std :: os :: raw :: c_char ; 11usize ] , pub Author : [ :: std :: os :: raw :: c_char ; 9usize ] , pub Family : [ :: std :: os :: raw :: c_char ; 9usize ] , pub Header : [ :: std :: os :: raw :: c_char ; 9usize ] , } # [ test ] fn bindgen_test_layout_TS7BlockInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7BlockInfo > ( ) , 89usize , concat ! ( "Size of: " , stringify ! ( TS7BlockInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7BlockInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7BlockInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkType as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkType ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkNumber as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkLang as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkLang ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkFlags as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkFlags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . MC7Size as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( MC7Size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . LoadSize as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( LoadSize ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . LocalData as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( LocalData ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . SBBLength as * const _ as usize } , 28usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( SBBLength ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . CheckSum as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( CheckSum ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Version as * const _ as usize } , 36usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Version ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . CodeDate as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( CodeDate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . IntfDate as * const _ as usize } , 51usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( IntfDate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Author as * const _ as usize } , 62usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Author ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Family as * const _ as usize } , 71usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Family ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Header as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Header ) ) ) ; } pub type TS7BlocksOfType = [ word ; 8192usize ] ; # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct TS7CpuInfo { pub ModuleTypeName : [ :: std :: os :: raw :: c_char ; 33usize ] , pub SerialNumber : [ :: std :: os :: raw :: c_char ; 25usize ] , pub ASName : [ :: std :: os :: raw :: c_char ; 25usize ] , pub Copyright : [ :: std :: os :: raw :: c_char ; 27usize ] , pub ModuleName : [ :: std :: os :: raw :: c_char ; 25usize ] , } # [ test ] fn bindgen_test_layout_TS7CpuInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7CpuInfo > ( ) , 135usize , concat ! ( "Size of: " , stringify ! ( TS7CpuInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7CpuInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7CpuInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ModuleTypeName as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ModuleTypeName ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . SerialNumber as * const _ as usize } , 33usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( SerialNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ASName as * const _ as usize } , 58usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ASName ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . Copyright as * const _ as usize } , 83usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( Copyright ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ModuleName as * const _ as usize } , 110usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ModuleName ) ) ) ; } # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7CpInfo { pub MaxPduLengt : :: std :: os :: raw :: c_int , pub MaxConnections : :: std :: os :: raw :: c_int , pub MaxMpiRate : :: std :: os :: raw :: c_int , pub MaxBusRate : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_TS7CpInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7CpInfo > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( TS7CpInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7CpInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7CpInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxPduLengt as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxPduLengt ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxConnections as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxConnections ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxMpiRate as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxMpiRate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxBusRate as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxBusRate ) ) ) ; } extern "C" { pub fn Cli_Create ( ) -> S7Object ; } extern "C" { pub fn Cli_Destroy ( Client : * mut S7Object ) ; } extern "C" { pub fn Cli_ConnectTo ( Client : S7Object , Address : * const :: std :: os :: raw :: c_char , Rack : :: std :: os :: raw :: c_int , Slot : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetConnectionParams ( Client : S7Object , Address : * const :: std :: os :: raw :: c_char , LocalTSAP : word , RemoteTSAP : word ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetConnectionType ( Client : S7Object , ConnectionType : word ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_Disconnect ( Client : S7Object ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetParam ( Client : S7Object , ParamNumber : :: std :: os :: raw :: c_int , pValue : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetParam ( Client : S7Object , ParamNumber : :: std :: os :: raw :: c_int , pValue : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ReadArea ( Client : S7Object , Area : :: std :: os :: raw :: c_int , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , WordLen : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_WriteArea ( Client : S7Object , Area : :: std :: os :: raw :: c_int , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , WordLen : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ReadMultiVars ( Client : S7Object , Item : PS7DataItem , ItemsCount : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_WriteMultiVars ( Client : S7Object , Item : PS7DataItem , ItemsCount : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_DBRead ( Client : S7Object , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_DBWrite ( Client : S7Object , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_MBRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_MBWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_EBRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_EBWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ABRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ABWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_TMRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_TMWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_CTRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_CTWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ListBlocks ( Client : S7Object , pUsrData : * mut TS7BlocksList ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetAgBlockInfo ( Client : S7Object , BlockType : :: std :: os :: raw :: c_int , BlockNum : :: std :: os :: raw :: c_int , pUsrData : * mut TS7BlockInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPgBlockInfo ( Client : S7Object , pBlock : * mut :: std :: os :: raw :: c_void , pUsrData : * mut TS7BlockInfo , Size : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ListBlocksOfType ( Client : S7Object , BlockType : :: std :: os :: raw :: c_int , pUsrData : * mut TS7BlocksOfType , ItemsCount : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetCpuInfo ( Client : S7Object , pUsrData : * mut TS7CpuInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetCpInfo ( Client : S7Object , pUsrData : * mut TS7CpInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPlcStatus ( Client : S7Object , Status : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPduLength ( Client : S7Object , Requested : * mut :: std :: os :: raw :: c_int , Negotiated : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ErrorText ( Error : :: std :: os :: raw :: c_int , Text : * mut :: std :: os :: raw :: c_char , TextLen : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetConnected ( Client : S7Object , Connected : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: fields of packed structs are not properly aligned, and creating a misaligned reference is undefined behavior (even if that reference is never dereferenced) [INFO] [stderr] [INFO] [stderr] error: reference to packed field is unaligned [INFO] [stderr] --> /opt/rustwide/target/debug/build/snap7-sys-0d9a23a4c7ec91a8/out/bindings.rs:3:3208 [INFO] [stderr] | [INFO] [stderr] 3 | pub type __uint16_t = :: std :: os :: raw :: c_ushort ; pub type word = u16 ; pub type S7Object = usize ; # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7DataItem { pub Area : :: std :: os :: raw :: c_int , pub WordLen : :: std :: os :: raw :: c_int , pub Result : :: std :: os :: raw :: c_int , pub DBNumber : :: std :: os :: raw :: c_int , pub Start : :: std :: os :: raw :: c_int , pub Amount : :: std :: os :: raw :: c_int , pub pdata : * mut :: std :: os :: raw :: c_void , } # [ test ] fn bindgen_test_layout_TS7DataItem ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7DataItem > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( TS7DataItem ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7DataItem > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7DataItem ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Area as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Area ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . WordLen as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( WordLen ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Result as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Result ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . DBNumber as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( DBNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Start as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Start ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Amount as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Amount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . pdata as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( pdata ) ) ) ; } pub type PS7DataItem = * mut TS7DataItem ; # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7BlocksList { pub OBCount : :: std :: os :: raw :: c_int , pub FBCount : :: std :: os :: raw :: c_int , pub FCCount : :: std :: os :: raw :: c_int , pub SFBCount : :: std :: os :: raw :: c_int , pub SFCCount : :: std :: os :: raw :: c_int , pub DBCount : :: std :: os :: raw :: c_int , pub SDBCount : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_TS7BlocksList ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7BlocksList > ( ) , 28usize , concat ! ( "Size of: " , stringify ! ( TS7BlocksList ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7BlocksList > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7BlocksList ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . OBCount as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( OBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . FBCount as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( FBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . FCCount as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( FCCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SFBCount as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SFBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SFCCount as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SFCCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . DBCount as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( DBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SDBCount as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SDBCount ) ) ) ; } # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7BlockInfo { pub BlkType : :: std :: os :: raw :: c_int , pub BlkNumber : :: std :: os :: raw :: c_int , pub BlkLang : :: std :: os :: raw :: c_int , pub BlkFlags : :: std :: os :: raw :: c_int , pub MC7Size : :: std :: os :: raw :: c_int , pub LoadSize : :: std :: os :: raw :: c_int , pub LocalData : :: std :: os :: raw :: c_int , pub SBBLength : :: std :: os :: raw :: c_int , pub CheckSum : :: std :: os :: raw :: c_int , pub Version : :: std :: os :: raw :: c_int , pub CodeDate : [ :: std :: os :: raw :: c_char ; 11usize ] , pub IntfDate : [ :: std :: os :: raw :: c_char ; 11usize ] , pub Author : [ :: std :: os :: raw :: c_char ; 9usize ] , pub Family : [ :: std :: os :: raw :: c_char ; 9usize ] , pub Header : [ :: std :: os :: raw :: c_char ; 9usize ] , } # [ test ] fn bindgen_test_layout_TS7BlockInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7BlockInfo > ( ) , 89usize , concat ! ( "Size of: " , stringify ! ( TS7BlockInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7BlockInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7BlockInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkType as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkType ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkNumber as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkLang as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkLang ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkFlags as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkFlags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . MC7Size as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( MC7Size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . LoadSize as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( LoadSize ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . LocalData as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( LocalData ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . SBBLength as * const _ as usize } , 28usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( SBBLength ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . CheckSum as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( CheckSum ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Version as * const _ as usize } , 36usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Version ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . CodeDate as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( CodeDate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . IntfDate as * const _ as usize } , 51usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( IntfDate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Author as * const _ as usize } , 62usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Author ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Family as * const _ as usize } , 71usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Family ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Header as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Header ) ) ) ; } pub type TS7BlocksOfType = [ word ; 8192usize ] ; # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct TS7CpuInfo { pub ModuleTypeName : [ :: std :: os :: raw :: c_char ; 33usize ] , pub SerialNumber : [ :: std :: os :: raw :: c_char ; 25usize ] , pub ASName : [ :: std :: os :: raw :: c_char ; 25usize ] , pub Copyright : [ :: std :: os :: raw :: c_char ; 27usize ] , pub ModuleName : [ :: std :: os :: raw :: c_char ; 25usize ] , } # [ test ] fn bindgen_test_layout_TS7CpuInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7CpuInfo > ( ) , 135usize , concat ! ( "Size of: " , stringify ! ( TS7CpuInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7CpuInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7CpuInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ModuleTypeName as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ModuleTypeName ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . SerialNumber as * const _ as usize } , 33usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( SerialNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ASName as * const _ as usize } , 58usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ASName ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . Copyright as * const _ as usize } , 83usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( Copyright ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ModuleName as * const _ as usize } , 110usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ModuleName ) ) ) ; } # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7CpInfo { pub MaxPduLengt : :: std :: os :: raw :: c_int , pub MaxConnections : :: std :: os :: raw :: c_int , pub MaxMpiRate : :: std :: os :: raw :: c_int , pub MaxBusRate : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_TS7CpInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7CpInfo > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( TS7CpInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7CpInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7CpInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxPduLengt as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxPduLengt ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxConnections as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxConnections ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxMpiRate as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxMpiRate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxBusRate as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxBusRate ) ) ) ; } extern "C" { pub fn Cli_Create ( ) -> S7Object ; } extern "C" { pub fn Cli_Destroy ( Client : * mut S7Object ) ; } extern "C" { pub fn Cli_ConnectTo ( Client : S7Object , Address : * const :: std :: os :: raw :: c_char , Rack : :: std :: os :: raw :: c_int , Slot : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetConnectionParams ( Client : S7Object , Address : * const :: std :: os :: raw :: c_char , LocalTSAP : word , RemoteTSAP : word ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetConnectionType ( Client : S7Object , ConnectionType : word ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_Disconnect ( Client : S7Object ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetParam ( Client : S7Object , ParamNumber : :: std :: os :: raw :: c_int , pValue : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetParam ( Client : S7Object , ParamNumber : :: std :: os :: raw :: c_int , pValue : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ReadArea ( Client : S7Object , Area : :: std :: os :: raw :: c_int , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , WordLen : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_WriteArea ( Client : S7Object , Area : :: std :: os :: raw :: c_int , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , WordLen : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ReadMultiVars ( Client : S7Object , Item : PS7DataItem , ItemsCount : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_WriteMultiVars ( Client : S7Object , Item : PS7DataItem , ItemsCount : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_DBRead ( Client : S7Object , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_DBWrite ( Client : S7Object , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_MBRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_MBWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_EBRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_EBWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ABRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ABWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_TMRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_TMWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_CTRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_CTWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ListBlocks ( Client : S7Object , pUsrData : * mut TS7BlocksList ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetAgBlockInfo ( Client : S7Object , BlockType : :: std :: os :: raw :: c_int , BlockNum : :: std :: os :: raw :: c_int , pUsrData : * mut TS7BlockInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPgBlockInfo ( Client : S7Object , pBlock : * mut :: std :: os :: raw :: c_void , pUsrData : * mut TS7BlockInfo , Size : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ListBlocksOfType ( Client : S7Object , BlockType : :: std :: os :: raw :: c_int , pUsrData : * mut TS7BlocksOfType , ItemsCount : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetCpuInfo ( Client : S7Object , pUsrData : * mut TS7CpuInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetCpInfo ( Client : S7Object , pUsrData : * mut TS7CpInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPlcStatus ( Client : S7Object , Status : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPduLength ( Client : S7Object , Requested : * mut :: std :: os :: raw :: c_int , Negotiated : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ErrorText ( Error : :: std :: os :: raw :: c_int , Text : * mut :: std :: os :: raw :: c_char , TextLen : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetConnected ( Client : S7Object , Connected : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: fields of packed structs are not properly aligned, and creating a misaligned reference is undefined behavior (even if that reference is never dereferenced) [INFO] [stderr] [INFO] [stderr] error: reference to packed field is unaligned [INFO] [stderr] --> /opt/rustwide/target/debug/build/snap7-sys-0d9a23a4c7ec91a8/out/bindings.rs:3:3437 [INFO] [stderr] | [INFO] [stderr] 3 | pub type __uint16_t = :: std :: os :: raw :: c_ushort ; pub type word = u16 ; pub type S7Object = usize ; # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7DataItem { pub Area : :: std :: os :: raw :: c_int , pub WordLen : :: std :: os :: raw :: c_int , pub Result : :: std :: os :: raw :: c_int , pub DBNumber : :: std :: os :: raw :: c_int , pub Start : :: std :: os :: raw :: c_int , pub Amount : :: std :: os :: raw :: c_int , pub pdata : * mut :: std :: os :: raw :: c_void , } # [ test ] fn bindgen_test_layout_TS7DataItem ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7DataItem > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( TS7DataItem ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7DataItem > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7DataItem ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Area as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Area ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . WordLen as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( WordLen ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Result as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Result ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . DBNumber as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( DBNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Start as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Start ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Amount as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Amount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . pdata as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( pdata ) ) ) ; } pub type PS7DataItem = * mut TS7DataItem ; # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7BlocksList { pub OBCount : :: std :: os :: raw :: c_int , pub FBCount : :: std :: os :: raw :: c_int , pub FCCount : :: std :: os :: raw :: c_int , pub SFBCount : :: std :: os :: raw :: c_int , pub SFCCount : :: std :: os :: raw :: c_int , pub DBCount : :: std :: os :: raw :: c_int , pub SDBCount : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_TS7BlocksList ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7BlocksList > ( ) , 28usize , concat ! ( "Size of: " , stringify ! ( TS7BlocksList ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7BlocksList > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7BlocksList ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . OBCount as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( OBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . FBCount as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( FBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . FCCount as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( FCCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SFBCount as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SFBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SFCCount as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SFCCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . DBCount as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( DBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SDBCount as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SDBCount ) ) ) ; } # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7BlockInfo { pub BlkType : :: std :: os :: raw :: c_int , pub BlkNumber : :: std :: os :: raw :: c_int , pub BlkLang : :: std :: os :: raw :: c_int , pub BlkFlags : :: std :: os :: raw :: c_int , pub MC7Size : :: std :: os :: raw :: c_int , pub LoadSize : :: std :: os :: raw :: c_int , pub LocalData : :: std :: os :: raw :: c_int , pub SBBLength : :: std :: os :: raw :: c_int , pub CheckSum : :: std :: os :: raw :: c_int , pub Version : :: std :: os :: raw :: c_int , pub CodeDate : [ :: std :: os :: raw :: c_char ; 11usize ] , pub IntfDate : [ :: std :: os :: raw :: c_char ; 11usize ] , pub Author : [ :: std :: os :: raw :: c_char ; 9usize ] , pub Family : [ :: std :: os :: raw :: c_char ; 9usize ] , pub Header : [ :: std :: os :: raw :: c_char ; 9usize ] , } # [ test ] fn bindgen_test_layout_TS7BlockInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7BlockInfo > ( ) , 89usize , concat ! ( "Size of: " , stringify ! ( TS7BlockInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7BlockInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7BlockInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkType as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkType ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkNumber as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkLang as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkLang ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkFlags as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkFlags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . MC7Size as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( MC7Size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . LoadSize as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( LoadSize ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . LocalData as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( LocalData ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . SBBLength as * const _ as usize } , 28usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( SBBLength ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . CheckSum as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( CheckSum ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Version as * const _ as usize } , 36usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Version ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . CodeDate as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( CodeDate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . IntfDate as * const _ as usize } , 51usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( IntfDate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Author as * const _ as usize } , 62usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Author ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Family as * const _ as usize } , 71usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Family ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Header as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Header ) ) ) ; } pub type TS7BlocksOfType = [ word ; 8192usize ] ; # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct TS7CpuInfo { pub ModuleTypeName : [ :: std :: os :: raw :: c_char ; 33usize ] , pub SerialNumber : [ :: std :: os :: raw :: c_char ; 25usize ] , pub ASName : [ :: std :: os :: raw :: c_char ; 25usize ] , pub Copyright : [ :: std :: os :: raw :: c_char ; 27usize ] , pub ModuleName : [ :: std :: os :: raw :: c_char ; 25usize ] , } # [ test ] fn bindgen_test_layout_TS7CpuInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7CpuInfo > ( ) , 135usize , concat ! ( "Size of: " , stringify ! ( TS7CpuInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7CpuInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7CpuInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ModuleTypeName as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ModuleTypeName ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . SerialNumber as * const _ as usize } , 33usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( SerialNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ASName as * const _ as usize } , 58usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ASName ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . Copyright as * const _ as usize } , 83usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( Copyright ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ModuleName as * const _ as usize } , 110usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ModuleName ) ) ) ; } # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7CpInfo { pub MaxPduLengt : :: std :: os :: raw :: c_int , pub MaxConnections : :: std :: os :: raw :: c_int , pub MaxMpiRate : :: std :: os :: raw :: c_int , pub MaxBusRate : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_TS7CpInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7CpInfo > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( TS7CpInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7CpInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7CpInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxPduLengt as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxPduLengt ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxConnections as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxConnections ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxMpiRate as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxMpiRate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxBusRate as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxBusRate ) ) ) ; } extern "C" { pub fn Cli_Create ( ) -> S7Object ; } extern "C" { pub fn Cli_Destroy ( Client : * mut S7Object ) ; } extern "C" { pub fn Cli_ConnectTo ( Client : S7Object , Address : * const :: std :: os :: raw :: c_char , Rack : :: std :: os :: raw :: c_int , Slot : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetConnectionParams ( Client : S7Object , Address : * const :: std :: os :: raw :: c_char , LocalTSAP : word , RemoteTSAP : word ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetConnectionType ( Client : S7Object , ConnectionType : word ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_Disconnect ( Client : S7Object ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetParam ( Client : S7Object , ParamNumber : :: std :: os :: raw :: c_int , pValue : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetParam ( Client : S7Object , ParamNumber : :: std :: os :: raw :: c_int , pValue : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ReadArea ( Client : S7Object , Area : :: std :: os :: raw :: c_int , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , WordLen : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_WriteArea ( Client : S7Object , Area : :: std :: os :: raw :: c_int , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , WordLen : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ReadMultiVars ( Client : S7Object , Item : PS7DataItem , ItemsCount : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_WriteMultiVars ( Client : S7Object , Item : PS7DataItem , ItemsCount : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_DBRead ( Client : S7Object , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_DBWrite ( Client : S7Object , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_MBRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_MBWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_EBRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_EBWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ABRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ABWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_TMRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_TMWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_CTRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_CTWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ListBlocks ( Client : S7Object , pUsrData : * mut TS7BlocksList ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetAgBlockInfo ( Client : S7Object , BlockType : :: std :: os :: raw :: c_int , BlockNum : :: std :: os :: raw :: c_int , pUsrData : * mut TS7BlockInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPgBlockInfo ( Client : S7Object , pBlock : * mut :: std :: os :: raw :: c_void , pUsrData : * mut TS7BlockInfo , Size : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ListBlocksOfType ( Client : S7Object , BlockType : :: std :: os :: raw :: c_int , pUsrData : * mut TS7BlocksOfType , ItemsCount : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetCpuInfo ( Client : S7Object , pUsrData : * mut TS7CpuInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetCpInfo ( Client : S7Object , pUsrData : * mut TS7CpInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPlcStatus ( Client : S7Object , Status : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPduLength ( Client : S7Object , Requested : * mut :: std :: os :: raw :: c_int , Negotiated : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ErrorText ( Error : :: std :: os :: raw :: c_int , Text : * mut :: std :: os :: raw :: c_char , TextLen : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetConnected ( Client : S7Object , Connected : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: fields of packed structs are not properly aligned, and creating a misaligned reference is undefined behavior (even if that reference is never dereferenced) [INFO] [stderr] [INFO] [stderr] error: reference to packed field is unaligned [INFO] [stderr] --> /opt/rustwide/target/debug/build/snap7-sys-0d9a23a4c7ec91a8/out/bindings.rs:3:3666 [INFO] [stderr] | [INFO] [stderr] 3 | pub type __uint16_t = :: std :: os :: raw :: c_ushort ; pub type word = u16 ; pub type S7Object = usize ; # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7DataItem { pub Area : :: std :: os :: raw :: c_int , pub WordLen : :: std :: os :: raw :: c_int , pub Result : :: std :: os :: raw :: c_int , pub DBNumber : :: std :: os :: raw :: c_int , pub Start : :: std :: os :: raw :: c_int , pub Amount : :: std :: os :: raw :: c_int , pub pdata : * mut :: std :: os :: raw :: c_void , } # [ test ] fn bindgen_test_layout_TS7DataItem ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7DataItem > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( TS7DataItem ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7DataItem > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7DataItem ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Area as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Area ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . WordLen as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( WordLen ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Result as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Result ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . DBNumber as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( DBNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Start as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Start ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Amount as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Amount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . pdata as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( pdata ) ) ) ; } pub type PS7DataItem = * mut TS7DataItem ; # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7BlocksList { pub OBCount : :: std :: os :: raw :: c_int , pub FBCount : :: std :: os :: raw :: c_int , pub FCCount : :: std :: os :: raw :: c_int , pub SFBCount : :: std :: os :: raw :: c_int , pub SFCCount : :: std :: os :: raw :: c_int , pub DBCount : :: std :: os :: raw :: c_int , pub SDBCount : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_TS7BlocksList ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7BlocksList > ( ) , 28usize , concat ! ( "Size of: " , stringify ! ( TS7BlocksList ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7BlocksList > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7BlocksList ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . OBCount as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( OBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . FBCount as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( FBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . FCCount as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( FCCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SFBCount as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SFBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SFCCount as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SFCCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . DBCount as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( DBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SDBCount as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SDBCount ) ) ) ; } # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7BlockInfo { pub BlkType : :: std :: os :: raw :: c_int , pub BlkNumber : :: std :: os :: raw :: c_int , pub BlkLang : :: std :: os :: raw :: c_int , pub BlkFlags : :: std :: os :: raw :: c_int , pub MC7Size : :: std :: os :: raw :: c_int , pub LoadSize : :: std :: os :: raw :: c_int , pub LocalData : :: std :: os :: raw :: c_int , pub SBBLength : :: std :: os :: raw :: c_int , pub CheckSum : :: std :: os :: raw :: c_int , pub Version : :: std :: os :: raw :: c_int , pub CodeDate : [ :: std :: os :: raw :: c_char ; 11usize ] , pub IntfDate : [ :: std :: os :: raw :: c_char ; 11usize ] , pub Author : [ :: std :: os :: raw :: c_char ; 9usize ] , pub Family : [ :: std :: os :: raw :: c_char ; 9usize ] , pub Header : [ :: std :: os :: raw :: c_char ; 9usize ] , } # [ test ] fn bindgen_test_layout_TS7BlockInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7BlockInfo > ( ) , 89usize , concat ! ( "Size of: " , stringify ! ( TS7BlockInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7BlockInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7BlockInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkType as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkType ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkNumber as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkLang as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkLang ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkFlags as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkFlags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . MC7Size as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( MC7Size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . LoadSize as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( LoadSize ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . LocalData as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( LocalData ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . SBBLength as * const _ as usize } , 28usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( SBBLength ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . CheckSum as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( CheckSum ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Version as * const _ as usize } , 36usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Version ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . CodeDate as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( CodeDate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . IntfDate as * const _ as usize } , 51usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( IntfDate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Author as * const _ as usize } , 62usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Author ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Family as * const _ as usize } , 71usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Family ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Header as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Header ) ) ) ; } pub type TS7BlocksOfType = [ word ; 8192usize ] ; # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct TS7CpuInfo { pub ModuleTypeName : [ :: std :: os :: raw :: c_char ; 33usize ] , pub SerialNumber : [ :: std :: os :: raw :: c_char ; 25usize ] , pub ASName : [ :: std :: os :: raw :: c_char ; 25usize ] , pub Copyright : [ :: std :: os :: raw :: c_char ; 27usize ] , pub ModuleName : [ :: std :: os :: raw :: c_char ; 25usize ] , } # [ test ] fn bindgen_test_layout_TS7CpuInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7CpuInfo > ( ) , 135usize , concat ! ( "Size of: " , stringify ! ( TS7CpuInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7CpuInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7CpuInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ModuleTypeName as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ModuleTypeName ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . SerialNumber as * const _ as usize } , 33usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( SerialNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ASName as * const _ as usize } , 58usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ASName ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . Copyright as * const _ as usize } , 83usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( Copyright ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ModuleName as * const _ as usize } , 110usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ModuleName ) ) ) ; } # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7CpInfo { pub MaxPduLengt : :: std :: os :: raw :: c_int , pub MaxConnections : :: std :: os :: raw :: c_int , pub MaxMpiRate : :: std :: os :: raw :: c_int , pub MaxBusRate : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_TS7CpInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7CpInfo > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( TS7CpInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7CpInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7CpInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxPduLengt as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxPduLengt ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxConnections as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxConnections ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxMpiRate as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxMpiRate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxBusRate as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxBusRate ) ) ) ; } extern "C" { pub fn Cli_Create ( ) -> S7Object ; } extern "C" { pub fn Cli_Destroy ( Client : * mut S7Object ) ; } extern "C" { pub fn Cli_ConnectTo ( Client : S7Object , Address : * const :: std :: os :: raw :: c_char , Rack : :: std :: os :: raw :: c_int , Slot : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetConnectionParams ( Client : S7Object , Address : * const :: std :: os :: raw :: c_char , LocalTSAP : word , RemoteTSAP : word ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetConnectionType ( Client : S7Object , ConnectionType : word ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_Disconnect ( Client : S7Object ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetParam ( Client : S7Object , ParamNumber : :: std :: os :: raw :: c_int , pValue : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetParam ( Client : S7Object , ParamNumber : :: std :: os :: raw :: c_int , pValue : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ReadArea ( Client : S7Object , Area : :: std :: os :: raw :: c_int , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , WordLen : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_WriteArea ( Client : S7Object , Area : :: std :: os :: raw :: c_int , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , WordLen : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ReadMultiVars ( Client : S7Object , Item : PS7DataItem , ItemsCount : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_WriteMultiVars ( Client : S7Object , Item : PS7DataItem , ItemsCount : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_DBRead ( Client : S7Object , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_DBWrite ( Client : S7Object , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_MBRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_MBWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_EBRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_EBWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ABRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ABWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_TMRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_TMWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_CTRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_CTWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ListBlocks ( Client : S7Object , pUsrData : * mut TS7BlocksList ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetAgBlockInfo ( Client : S7Object , BlockType : :: std :: os :: raw :: c_int , BlockNum : :: std :: os :: raw :: c_int , pUsrData : * mut TS7BlockInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPgBlockInfo ( Client : S7Object , pBlock : * mut :: std :: os :: raw :: c_void , pUsrData : * mut TS7BlockInfo , Size : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ListBlocksOfType ( Client : S7Object , BlockType : :: std :: os :: raw :: c_int , pUsrData : * mut TS7BlocksOfType , ItemsCount : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetCpuInfo ( Client : S7Object , pUsrData : * mut TS7CpuInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetCpInfo ( Client : S7Object , pUsrData : * mut TS7CpInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPlcStatus ( Client : S7Object , Status : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPduLength ( Client : S7Object , Requested : * mut :: std :: os :: raw :: c_int , Negotiated : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ErrorText ( Error : :: std :: os :: raw :: c_int , Text : * mut :: std :: os :: raw :: c_char , TextLen : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetConnected ( Client : S7Object , Connected : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: fields of packed structs are not properly aligned, and creating a misaligned reference is undefined behavior (even if that reference is never dereferenced) [INFO] [stderr] [INFO] [stderr] error: reference to packed field is unaligned [INFO] [stderr] --> /opt/rustwide/target/debug/build/snap7-sys-0d9a23a4c7ec91a8/out/bindings.rs:3:3895 [INFO] [stderr] | [INFO] [stderr] 3 | pub type __uint16_t = :: std :: os :: raw :: c_ushort ; pub type word = u16 ; pub type S7Object = usize ; # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7DataItem { pub Area : :: std :: os :: raw :: c_int , pub WordLen : :: std :: os :: raw :: c_int , pub Result : :: std :: os :: raw :: c_int , pub DBNumber : :: std :: os :: raw :: c_int , pub Start : :: std :: os :: raw :: c_int , pub Amount : :: std :: os :: raw :: c_int , pub pdata : * mut :: std :: os :: raw :: c_void , } # [ test ] fn bindgen_test_layout_TS7DataItem ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7DataItem > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( TS7DataItem ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7DataItem > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7DataItem ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Area as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Area ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . WordLen as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( WordLen ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Result as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Result ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . DBNumber as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( DBNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Start as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Start ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Amount as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Amount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . pdata as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( pdata ) ) ) ; } pub type PS7DataItem = * mut TS7DataItem ; # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7BlocksList { pub OBCount : :: std :: os :: raw :: c_int , pub FBCount : :: std :: os :: raw :: c_int , pub FCCount : :: std :: os :: raw :: c_int , pub SFBCount : :: std :: os :: raw :: c_int , pub SFCCount : :: std :: os :: raw :: c_int , pub DBCount : :: std :: os :: raw :: c_int , pub SDBCount : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_TS7BlocksList ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7BlocksList > ( ) , 28usize , concat ! ( "Size of: " , stringify ! ( TS7BlocksList ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7BlocksList > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7BlocksList ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . OBCount as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( OBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . FBCount as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( FBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . FCCount as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( FCCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SFBCount as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SFBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SFCCount as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SFCCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . DBCount as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( DBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SDBCount as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SDBCount ) ) ) ; } # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7BlockInfo { pub BlkType : :: std :: os :: raw :: c_int , pub BlkNumber : :: std :: os :: raw :: c_int , pub BlkLang : :: std :: os :: raw :: c_int , pub BlkFlags : :: std :: os :: raw :: c_int , pub MC7Size : :: std :: os :: raw :: c_int , pub LoadSize : :: std :: os :: raw :: c_int , pub LocalData : :: std :: os :: raw :: c_int , pub SBBLength : :: std :: os :: raw :: c_int , pub CheckSum : :: std :: os :: raw :: c_int , pub Version : :: std :: os :: raw :: c_int , pub CodeDate : [ :: std :: os :: raw :: c_char ; 11usize ] , pub IntfDate : [ :: std :: os :: raw :: c_char ; 11usize ] , pub Author : [ :: std :: os :: raw :: c_char ; 9usize ] , pub Family : [ :: std :: os :: raw :: c_char ; 9usize ] , pub Header : [ :: std :: os :: raw :: c_char ; 9usize ] , } # [ test ] fn bindgen_test_layout_TS7BlockInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7BlockInfo > ( ) , 89usize , concat ! ( "Size of: " , stringify ! ( TS7BlockInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7BlockInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7BlockInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkType as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkType ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkNumber as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkLang as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkLang ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkFlags as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkFlags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . MC7Size as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( MC7Size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . LoadSize as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( LoadSize ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . LocalData as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( LocalData ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . SBBLength as * const _ as usize } , 28usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( SBBLength ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . CheckSum as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( CheckSum ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Version as * const _ as usize } , 36usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Version ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . CodeDate as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( CodeDate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . IntfDate as * const _ as usize } , 51usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( IntfDate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Author as * const _ as usize } , 62usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Author ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Family as * const _ as usize } , 71usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Family ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Header as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Header ) ) ) ; } pub type TS7BlocksOfType = [ word ; 8192usize ] ; # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct TS7CpuInfo { pub ModuleTypeName : [ :: std :: os :: raw :: c_char ; 33usize ] , pub SerialNumber : [ :: std :: os :: raw :: c_char ; 25usize ] , pub ASName : [ :: std :: os :: raw :: c_char ; 25usize ] , pub Copyright : [ :: std :: os :: raw :: c_char ; 27usize ] , pub ModuleName : [ :: std :: os :: raw :: c_char ; 25usize ] , } # [ test ] fn bindgen_test_layout_TS7CpuInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7CpuInfo > ( ) , 135usize , concat ! ( "Size of: " , stringify ! ( TS7CpuInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7CpuInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7CpuInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ModuleTypeName as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ModuleTypeName ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . SerialNumber as * const _ as usize } , 33usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( SerialNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ASName as * const _ as usize } , 58usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ASName ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . Copyright as * const _ as usize } , 83usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( Copyright ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ModuleName as * const _ as usize } , 110usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ModuleName ) ) ) ; } # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7CpInfo { pub MaxPduLengt : :: std :: os :: raw :: c_int , pub MaxConnections : :: std :: os :: raw :: c_int , pub MaxMpiRate : :: std :: os :: raw :: c_int , pub MaxBusRate : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_TS7CpInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7CpInfo > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( TS7CpInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7CpInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7CpInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxPduLengt as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxPduLengt ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxConnections as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxConnections ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxMpiRate as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxMpiRate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxBusRate as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxBusRate ) ) ) ; } extern "C" { pub fn Cli_Create ( ) -> S7Object ; } extern "C" { pub fn Cli_Destroy ( Client : * mut S7Object ) ; } extern "C" { pub fn Cli_ConnectTo ( Client : S7Object , Address : * const :: std :: os :: raw :: c_char , Rack : :: std :: os :: raw :: c_int , Slot : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetConnectionParams ( Client : S7Object , Address : * const :: std :: os :: raw :: c_char , LocalTSAP : word , RemoteTSAP : word ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetConnectionType ( Client : S7Object , ConnectionType : word ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_Disconnect ( Client : S7Object ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetParam ( Client : S7Object , ParamNumber : :: std :: os :: raw :: c_int , pValue : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetParam ( Client : S7Object , ParamNumber : :: std :: os :: raw :: c_int , pValue : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ReadArea ( Client : S7Object , Area : :: std :: os :: raw :: c_int , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , WordLen : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_WriteArea ( Client : S7Object , Area : :: std :: os :: raw :: c_int , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , WordLen : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ReadMultiVars ( Client : S7Object , Item : PS7DataItem , ItemsCount : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_WriteMultiVars ( Client : S7Object , Item : PS7DataItem , ItemsCount : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_DBRead ( Client : S7Object , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_DBWrite ( Client : S7Object , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_MBRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_MBWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_EBRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_EBWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ABRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ABWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_TMRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_TMWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_CTRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_CTWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ListBlocks ( Client : S7Object , pUsrData : * mut TS7BlocksList ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetAgBlockInfo ( Client : S7Object , BlockType : :: std :: os :: raw :: c_int , BlockNum : :: std :: os :: raw :: c_int , pUsrData : * mut TS7BlockInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPgBlockInfo ( Client : S7Object , pBlock : * mut :: std :: os :: raw :: c_void , pUsrData : * mut TS7BlockInfo , Size : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ListBlocksOfType ( Client : S7Object , BlockType : :: std :: os :: raw :: c_int , pUsrData : * mut TS7BlocksOfType , ItemsCount : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetCpuInfo ( Client : S7Object , pUsrData : * mut TS7CpuInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetCpInfo ( Client : S7Object , pUsrData : * mut TS7CpInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPlcStatus ( Client : S7Object , Status : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPduLength ( Client : S7Object , Requested : * mut :: std :: os :: raw :: c_int , Negotiated : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ErrorText ( Error : :: std :: os :: raw :: c_int , Text : * mut :: std :: os :: raw :: c_char , TextLen : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetConnected ( Client : S7Object , Connected : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: fields of packed structs are not properly aligned, and creating a misaligned reference is undefined behavior (even if that reference is never dereferenced) [INFO] [stderr] [INFO] [stderr] error: reference to packed field is unaligned [INFO] [stderr] --> /opt/rustwide/target/debug/build/snap7-sys-0d9a23a4c7ec91a8/out/bindings.rs:3:4127 [INFO] [stderr] | [INFO] [stderr] 3 | pub type __uint16_t = :: std :: os :: raw :: c_ushort ; pub type word = u16 ; pub type S7Object = usize ; # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7DataItem { pub Area : :: std :: os :: raw :: c_int , pub WordLen : :: std :: os :: raw :: c_int , pub Result : :: std :: os :: raw :: c_int , pub DBNumber : :: std :: os :: raw :: c_int , pub Start : :: std :: os :: raw :: c_int , pub Amount : :: std :: os :: raw :: c_int , pub pdata : * mut :: std :: os :: raw :: c_void , } # [ test ] fn bindgen_test_layout_TS7DataItem ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7DataItem > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( TS7DataItem ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7DataItem > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7DataItem ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Area as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Area ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . WordLen as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( WordLen ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Result as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Result ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . DBNumber as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( DBNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Start as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Start ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Amount as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Amount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . pdata as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( pdata ) ) ) ; } pub type PS7DataItem = * mut TS7DataItem ; # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7BlocksList { pub OBCount : :: std :: os :: raw :: c_int , pub FBCount : :: std :: os :: raw :: c_int , pub FCCount : :: std :: os :: raw :: c_int , pub SFBCount : :: std :: os :: raw :: c_int , pub SFCCount : :: std :: os :: raw :: c_int , pub DBCount : :: std :: os :: raw :: c_int , pub SDBCount : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_TS7BlocksList ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7BlocksList > ( ) , 28usize , concat ! ( "Size of: " , stringify ! ( TS7BlocksList ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7BlocksList > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7BlocksList ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . OBCount as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( OBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . FBCount as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( FBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . FCCount as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( FCCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SFBCount as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SFBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SFCCount as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SFCCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . DBCount as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( DBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SDBCount as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SDBCount ) ) ) ; } # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7BlockInfo { pub BlkType : :: std :: os :: raw :: c_int , pub BlkNumber : :: std :: os :: raw :: c_int , pub BlkLang : :: std :: os :: raw :: c_int , pub BlkFlags : :: std :: os :: raw :: c_int , pub MC7Size : :: std :: os :: raw :: c_int , pub LoadSize : :: std :: os :: raw :: c_int , pub LocalData : :: std :: os :: raw :: c_int , pub SBBLength : :: std :: os :: raw :: c_int , pub CheckSum : :: std :: os :: raw :: c_int , pub Version : :: std :: os :: raw :: c_int , pub CodeDate : [ :: std :: os :: raw :: c_char ; 11usize ] , pub IntfDate : [ :: std :: os :: raw :: c_char ; 11usize ] , pub Author : [ :: std :: os :: raw :: c_char ; 9usize ] , pub Family : [ :: std :: os :: raw :: c_char ; 9usize ] , pub Header : [ :: std :: os :: raw :: c_char ; 9usize ] , } # [ test ] fn bindgen_test_layout_TS7BlockInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7BlockInfo > ( ) , 89usize , concat ! ( "Size of: " , stringify ! ( TS7BlockInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7BlockInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7BlockInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkType as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkType ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkNumber as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkLang as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkLang ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkFlags as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkFlags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . MC7Size as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( MC7Size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . LoadSize as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( LoadSize ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . LocalData as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( LocalData ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . SBBLength as * const _ as usize } , 28usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( SBBLength ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . CheckSum as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( CheckSum ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Version as * const _ as usize } , 36usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Version ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . CodeDate as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( CodeDate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . IntfDate as * const _ as usize } , 51usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( IntfDate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Author as * const _ as usize } , 62usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Author ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Family as * const _ as usize } , 71usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Family ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Header as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Header ) ) ) ; } pub type TS7BlocksOfType = [ word ; 8192usize ] ; # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct TS7CpuInfo { pub ModuleTypeName : [ :: std :: os :: raw :: c_char ; 33usize ] , pub SerialNumber : [ :: std :: os :: raw :: c_char ; 25usize ] , pub ASName : [ :: std :: os :: raw :: c_char ; 25usize ] , pub Copyright : [ :: std :: os :: raw :: c_char ; 27usize ] , pub ModuleName : [ :: std :: os :: raw :: c_char ; 25usize ] , } # [ test ] fn bindgen_test_layout_TS7CpuInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7CpuInfo > ( ) , 135usize , concat ! ( "Size of: " , stringify ! ( TS7CpuInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7CpuInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7CpuInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ModuleTypeName as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ModuleTypeName ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . SerialNumber as * const _ as usize } , 33usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( SerialNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ASName as * const _ as usize } , 58usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ASName ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . Copyright as * const _ as usize } , 83usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( Copyright ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ModuleName as * const _ as usize } , 110usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ModuleName ) ) ) ; } # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7CpInfo { pub MaxPduLengt : :: std :: os :: raw :: c_int , pub MaxConnections : :: std :: os :: raw :: c_int , pub MaxMpiRate : :: std :: os :: raw :: c_int , pub MaxBusRate : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_TS7CpInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7CpInfo > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( TS7CpInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7CpInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7CpInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxPduLengt as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxPduLengt ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxConnections as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxConnections ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxMpiRate as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxMpiRate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxBusRate as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxBusRate ) ) ) ; } extern "C" { pub fn Cli_Create ( ) -> S7Object ; } extern "C" { pub fn Cli_Destroy ( Client : * mut S7Object ) ; } extern "C" { pub fn Cli_ConnectTo ( Client : S7Object , Address : * const :: std :: os :: raw :: c_char , Rack : :: std :: os :: raw :: c_int , Slot : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetConnectionParams ( Client : S7Object , Address : * const :: std :: os :: raw :: c_char , LocalTSAP : word , RemoteTSAP : word ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetConnectionType ( Client : S7Object , ConnectionType : word ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_Disconnect ( Client : S7Object ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetParam ( Client : S7Object , ParamNumber : :: std :: os :: raw :: c_int , pValue : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetParam ( Client : S7Object , ParamNumber : :: std :: os :: raw :: c_int , pValue : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ReadArea ( Client : S7Object , Area : :: std :: os :: raw :: c_int , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , WordLen : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_WriteArea ( Client : S7Object , Area : :: std :: os :: raw :: c_int , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , WordLen : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ReadMultiVars ( Client : S7Object , Item : PS7DataItem , ItemsCount : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_WriteMultiVars ( Client : S7Object , Item : PS7DataItem , ItemsCount : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_DBRead ( Client : S7Object , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_DBWrite ( Client : S7Object , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_MBRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_MBWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_EBRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_EBWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ABRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ABWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_TMRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_TMWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_CTRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_CTWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ListBlocks ( Client : S7Object , pUsrData : * mut TS7BlocksList ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetAgBlockInfo ( Client : S7Object , BlockType : :: std :: os :: raw :: c_int , BlockNum : :: std :: os :: raw :: c_int , pUsrData : * mut TS7BlockInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPgBlockInfo ( Client : S7Object , pBlock : * mut :: std :: os :: raw :: c_void , pUsrData : * mut TS7BlockInfo , Size : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ListBlocksOfType ( Client : S7Object , BlockType : :: std :: os :: raw :: c_int , pUsrData : * mut TS7BlocksOfType , ItemsCount : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetCpuInfo ( Client : S7Object , pUsrData : * mut TS7CpuInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetCpInfo ( Client : S7Object , pUsrData : * mut TS7CpInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPlcStatus ( Client : S7Object , Status : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPduLength ( Client : S7Object , Requested : * mut :: std :: os :: raw :: c_int , Negotiated : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ErrorText ( Error : :: std :: os :: raw :: c_int , Text : * mut :: std :: os :: raw :: c_char , TextLen : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetConnected ( Client : S7Object , Connected : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: fields of packed structs are not properly aligned, and creating a misaligned reference is undefined behavior (even if that reference is never dereferenced) [INFO] [stderr] [INFO] [stderr] error: reference to packed field is unaligned [INFO] [stderr] --> /opt/rustwide/target/debug/build/snap7-sys-0d9a23a4c7ec91a8/out/bindings.rs:3:4359 [INFO] [stderr] | [INFO] [stderr] 3 | pub type __uint16_t = :: std :: os :: raw :: c_ushort ; pub type word = u16 ; pub type S7Object = usize ; # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7DataItem { pub Area : :: std :: os :: raw :: c_int , pub WordLen : :: std :: os :: raw :: c_int , pub Result : :: std :: os :: raw :: c_int , pub DBNumber : :: std :: os :: raw :: c_int , pub Start : :: std :: os :: raw :: c_int , pub Amount : :: std :: os :: raw :: c_int , pub pdata : * mut :: std :: os :: raw :: c_void , } # [ test ] fn bindgen_test_layout_TS7DataItem ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7DataItem > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( TS7DataItem ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7DataItem > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7DataItem ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Area as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Area ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . WordLen as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( WordLen ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Result as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Result ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . DBNumber as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( DBNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Start as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Start ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Amount as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Amount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . pdata as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( pdata ) ) ) ; } pub type PS7DataItem = * mut TS7DataItem ; # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7BlocksList { pub OBCount : :: std :: os :: raw :: c_int , pub FBCount : :: std :: os :: raw :: c_int , pub FCCount : :: std :: os :: raw :: c_int , pub SFBCount : :: std :: os :: raw :: c_int , pub SFCCount : :: std :: os :: raw :: c_int , pub DBCount : :: std :: os :: raw :: c_int , pub SDBCount : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_TS7BlocksList ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7BlocksList > ( ) , 28usize , concat ! ( "Size of: " , stringify ! ( TS7BlocksList ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7BlocksList > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7BlocksList ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . OBCount as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( OBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . FBCount as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( FBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . FCCount as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( FCCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SFBCount as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SFBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SFCCount as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SFCCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . DBCount as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( DBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SDBCount as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SDBCount ) ) ) ; } # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7BlockInfo { pub BlkType : :: std :: os :: raw :: c_int , pub BlkNumber : :: std :: os :: raw :: c_int , pub BlkLang : :: std :: os :: raw :: c_int , pub BlkFlags : :: std :: os :: raw :: c_int , pub MC7Size : :: std :: os :: raw :: c_int , pub LoadSize : :: std :: os :: raw :: c_int , pub LocalData : :: std :: os :: raw :: c_int , pub SBBLength : :: std :: os :: raw :: c_int , pub CheckSum : :: std :: os :: raw :: c_int , pub Version : :: std :: os :: raw :: c_int , pub CodeDate : [ :: std :: os :: raw :: c_char ; 11usize ] , pub IntfDate : [ :: std :: os :: raw :: c_char ; 11usize ] , pub Author : [ :: std :: os :: raw :: c_char ; 9usize ] , pub Family : [ :: std :: os :: raw :: c_char ; 9usize ] , pub Header : [ :: std :: os :: raw :: c_char ; 9usize ] , } # [ test ] fn bindgen_test_layout_TS7BlockInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7BlockInfo > ( ) , 89usize , concat ! ( "Size of: " , stringify ! ( TS7BlockInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7BlockInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7BlockInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkType as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkType ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkNumber as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkLang as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkLang ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkFlags as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkFlags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . MC7Size as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( MC7Size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . LoadSize as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( LoadSize ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . LocalData as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( LocalData ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . SBBLength as * const _ as usize } , 28usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( SBBLength ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . CheckSum as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( CheckSum ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Version as * const _ as usize } , 36usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Version ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . CodeDate as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( CodeDate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . IntfDate as * const _ as usize } , 51usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( IntfDate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Author as * const _ as usize } , 62usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Author ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Family as * const _ as usize } , 71usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Family ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Header as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Header ) ) ) ; } pub type TS7BlocksOfType = [ word ; 8192usize ] ; # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct TS7CpuInfo { pub ModuleTypeName : [ :: std :: os :: raw :: c_char ; 33usize ] , pub SerialNumber : [ :: std :: os :: raw :: c_char ; 25usize ] , pub ASName : [ :: std :: os :: raw :: c_char ; 25usize ] , pub Copyright : [ :: std :: os :: raw :: c_char ; 27usize ] , pub ModuleName : [ :: std :: os :: raw :: c_char ; 25usize ] , } # [ test ] fn bindgen_test_layout_TS7CpuInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7CpuInfo > ( ) , 135usize , concat ! ( "Size of: " , stringify ! ( TS7CpuInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7CpuInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7CpuInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ModuleTypeName as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ModuleTypeName ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . SerialNumber as * const _ as usize } , 33usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( SerialNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ASName as * const _ as usize } , 58usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ASName ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . Copyright as * const _ as usize } , 83usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( Copyright ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ModuleName as * const _ as usize } , 110usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ModuleName ) ) ) ; } # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7CpInfo { pub MaxPduLengt : :: std :: os :: raw :: c_int , pub MaxConnections : :: std :: os :: raw :: c_int , pub MaxMpiRate : :: std :: os :: raw :: c_int , pub MaxBusRate : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_TS7CpInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7CpInfo > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( TS7CpInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7CpInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7CpInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxPduLengt as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxPduLengt ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxConnections as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxConnections ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxMpiRate as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxMpiRate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxBusRate as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxBusRate ) ) ) ; } extern "C" { pub fn Cli_Create ( ) -> S7Object ; } extern "C" { pub fn Cli_Destroy ( Client : * mut S7Object ) ; } extern "C" { pub fn Cli_ConnectTo ( Client : S7Object , Address : * const :: std :: os :: raw :: c_char , Rack : :: std :: os :: raw :: c_int , Slot : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetConnectionParams ( Client : S7Object , Address : * const :: std :: os :: raw :: c_char , LocalTSAP : word , RemoteTSAP : word ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetConnectionType ( Client : S7Object , ConnectionType : word ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_Disconnect ( Client : S7Object ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetParam ( Client : S7Object , ParamNumber : :: std :: os :: raw :: c_int , pValue : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetParam ( Client : S7Object , ParamNumber : :: std :: os :: raw :: c_int , pValue : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ReadArea ( Client : S7Object , Area : :: std :: os :: raw :: c_int , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , WordLen : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_WriteArea ( Client : S7Object , Area : :: std :: os :: raw :: c_int , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , WordLen : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ReadMultiVars ( Client : S7Object , Item : PS7DataItem , ItemsCount : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_WriteMultiVars ( Client : S7Object , Item : PS7DataItem , ItemsCount : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_DBRead ( Client : S7Object , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_DBWrite ( Client : S7Object , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_MBRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_MBWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_EBRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_EBWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ABRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ABWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_TMRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_TMWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_CTRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_CTWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ListBlocks ( Client : S7Object , pUsrData : * mut TS7BlocksList ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetAgBlockInfo ( Client : S7Object , BlockType : :: std :: os :: raw :: c_int , BlockNum : :: std :: os :: raw :: c_int , pUsrData : * mut TS7BlockInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPgBlockInfo ( Client : S7Object , pBlock : * mut :: std :: os :: raw :: c_void , pUsrData : * mut TS7BlockInfo , Size : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ListBlocksOfType ( Client : S7Object , BlockType : :: std :: os :: raw :: c_int , pUsrData : * mut TS7BlocksOfType , ItemsCount : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetCpuInfo ( Client : S7Object , pUsrData : * mut TS7CpuInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetCpInfo ( Client : S7Object , pUsrData : * mut TS7CpInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPlcStatus ( Client : S7Object , Status : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPduLength ( Client : S7Object , Requested : * mut :: std :: os :: raw :: c_int , Negotiated : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ErrorText ( Error : :: std :: os :: raw :: c_int , Text : * mut :: std :: os :: raw :: c_char , TextLen : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetConnected ( Client : S7Object , Connected : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: fields of packed structs are not properly aligned, and creating a misaligned reference is undefined behavior (even if that reference is never dereferenced) [INFO] [stderr] [INFO] [stderr] error: reference to packed field is unaligned [INFO] [stderr] --> /opt/rustwide/target/debug/build/snap7-sys-0d9a23a4c7ec91a8/out/bindings.rs:3:4589 [INFO] [stderr] | [INFO] [stderr] 3 | pub type __uint16_t = :: std :: os :: raw :: c_ushort ; pub type word = u16 ; pub type S7Object = usize ; # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7DataItem { pub Area : :: std :: os :: raw :: c_int , pub WordLen : :: std :: os :: raw :: c_int , pub Result : :: std :: os :: raw :: c_int , pub DBNumber : :: std :: os :: raw :: c_int , pub Start : :: std :: os :: raw :: c_int , pub Amount : :: std :: os :: raw :: c_int , pub pdata : * mut :: std :: os :: raw :: c_void , } # [ test ] fn bindgen_test_layout_TS7DataItem ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7DataItem > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( TS7DataItem ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7DataItem > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7DataItem ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Area as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Area ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . WordLen as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( WordLen ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Result as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Result ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . DBNumber as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( DBNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Start as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Start ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Amount as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Amount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . pdata as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( pdata ) ) ) ; } pub type PS7DataItem = * mut TS7DataItem ; # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7BlocksList { pub OBCount : :: std :: os :: raw :: c_int , pub FBCount : :: std :: os :: raw :: c_int , pub FCCount : :: std :: os :: raw :: c_int , pub SFBCount : :: std :: os :: raw :: c_int , pub SFCCount : :: std :: os :: raw :: c_int , pub DBCount : :: std :: os :: raw :: c_int , pub SDBCount : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_TS7BlocksList ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7BlocksList > ( ) , 28usize , concat ! ( "Size of: " , stringify ! ( TS7BlocksList ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7BlocksList > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7BlocksList ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . OBCount as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( OBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . FBCount as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( FBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . FCCount as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( FCCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SFBCount as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SFBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SFCCount as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SFCCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . DBCount as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( DBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SDBCount as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SDBCount ) ) ) ; } # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7BlockInfo { pub BlkType : :: std :: os :: raw :: c_int , pub BlkNumber : :: std :: os :: raw :: c_int , pub BlkLang : :: std :: os :: raw :: c_int , pub BlkFlags : :: std :: os :: raw :: c_int , pub MC7Size : :: std :: os :: raw :: c_int , pub LoadSize : :: std :: os :: raw :: c_int , pub LocalData : :: std :: os :: raw :: c_int , pub SBBLength : :: std :: os :: raw :: c_int , pub CheckSum : :: std :: os :: raw :: c_int , pub Version : :: std :: os :: raw :: c_int , pub CodeDate : [ :: std :: os :: raw :: c_char ; 11usize ] , pub IntfDate : [ :: std :: os :: raw :: c_char ; 11usize ] , pub Author : [ :: std :: os :: raw :: c_char ; 9usize ] , pub Family : [ :: std :: os :: raw :: c_char ; 9usize ] , pub Header : [ :: std :: os :: raw :: c_char ; 9usize ] , } # [ test ] fn bindgen_test_layout_TS7BlockInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7BlockInfo > ( ) , 89usize , concat ! ( "Size of: " , stringify ! ( TS7BlockInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7BlockInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7BlockInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkType as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkType ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkNumber as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkLang as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkLang ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkFlags as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkFlags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . MC7Size as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( MC7Size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . LoadSize as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( LoadSize ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . LocalData as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( LocalData ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . SBBLength as * const _ as usize } , 28usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( SBBLength ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . CheckSum as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( CheckSum ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Version as * const _ as usize } , 36usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Version ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . CodeDate as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( CodeDate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . IntfDate as * const _ as usize } , 51usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( IntfDate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Author as * const _ as usize } , 62usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Author ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Family as * const _ as usize } , 71usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Family ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Header as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Header ) ) ) ; } pub type TS7BlocksOfType = [ word ; 8192usize ] ; # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct TS7CpuInfo { pub ModuleTypeName : [ :: std :: os :: raw :: c_char ; 33usize ] , pub SerialNumber : [ :: std :: os :: raw :: c_char ; 25usize ] , pub ASName : [ :: std :: os :: raw :: c_char ; 25usize ] , pub Copyright : [ :: std :: os :: raw :: c_char ; 27usize ] , pub ModuleName : [ :: std :: os :: raw :: c_char ; 25usize ] , } # [ test ] fn bindgen_test_layout_TS7CpuInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7CpuInfo > ( ) , 135usize , concat ! ( "Size of: " , stringify ! ( TS7CpuInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7CpuInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7CpuInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ModuleTypeName as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ModuleTypeName ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . SerialNumber as * const _ as usize } , 33usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( SerialNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ASName as * const _ as usize } , 58usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ASName ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . Copyright as * const _ as usize } , 83usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( Copyright ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ModuleName as * const _ as usize } , 110usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ModuleName ) ) ) ; } # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7CpInfo { pub MaxPduLengt : :: std :: os :: raw :: c_int , pub MaxConnections : :: std :: os :: raw :: c_int , pub MaxMpiRate : :: std :: os :: raw :: c_int , pub MaxBusRate : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_TS7CpInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7CpInfo > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( TS7CpInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7CpInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7CpInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxPduLengt as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxPduLengt ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxConnections as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxConnections ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxMpiRate as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxMpiRate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxBusRate as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxBusRate ) ) ) ; } extern "C" { pub fn Cli_Create ( ) -> S7Object ; } extern "C" { pub fn Cli_Destroy ( Client : * mut S7Object ) ; } extern "C" { pub fn Cli_ConnectTo ( Client : S7Object , Address : * const :: std :: os :: raw :: c_char , Rack : :: std :: os :: raw :: c_int , Slot : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetConnectionParams ( Client : S7Object , Address : * const :: std :: os :: raw :: c_char , LocalTSAP : word , RemoteTSAP : word ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetConnectionType ( Client : S7Object , ConnectionType : word ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_Disconnect ( Client : S7Object ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetParam ( Client : S7Object , ParamNumber : :: std :: os :: raw :: c_int , pValue : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetParam ( Client : S7Object , ParamNumber : :: std :: os :: raw :: c_int , pValue : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ReadArea ( Client : S7Object , Area : :: std :: os :: raw :: c_int , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , WordLen : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_WriteArea ( Client : S7Object , Area : :: std :: os :: raw :: c_int , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , WordLen : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ReadMultiVars ( Client : S7Object , Item : PS7DataItem , ItemsCount : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_WriteMultiVars ( Client : S7Object , Item : PS7DataItem , ItemsCount : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_DBRead ( Client : S7Object , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_DBWrite ( Client : S7Object , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_MBRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_MBWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_EBRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_EBWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ABRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ABWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_TMRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_TMWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_CTRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_CTWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ListBlocks ( Client : S7Object , pUsrData : * mut TS7BlocksList ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetAgBlockInfo ( Client : S7Object , BlockType : :: std :: os :: raw :: c_int , BlockNum : :: std :: os :: raw :: c_int , pUsrData : * mut TS7BlockInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPgBlockInfo ( Client : S7Object , pBlock : * mut :: std :: os :: raw :: c_void , pUsrData : * mut TS7BlockInfo , Size : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ListBlocksOfType ( Client : S7Object , BlockType : :: std :: os :: raw :: c_int , pUsrData : * mut TS7BlocksOfType , ItemsCount : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetCpuInfo ( Client : S7Object , pUsrData : * mut TS7CpuInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetCpInfo ( Client : S7Object , pUsrData : * mut TS7CpInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPlcStatus ( Client : S7Object , Status : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPduLength ( Client : S7Object , Requested : * mut :: std :: os :: raw :: c_int , Negotiated : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ErrorText ( Error : :: std :: os :: raw :: c_int , Text : * mut :: std :: os :: raw :: c_char , TextLen : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetConnected ( Client : S7Object , Connected : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: fields of packed structs are not properly aligned, and creating a misaligned reference is undefined behavior (even if that reference is never dereferenced) [INFO] [stderr] [INFO] [stderr] error: reference to packed field is unaligned [INFO] [stderr] --> /opt/rustwide/target/debug/build/snap7-sys-0d9a23a4c7ec91a8/out/bindings.rs:3:5997 [INFO] [stderr] | [INFO] [stderr] 3 | pub type __uint16_t = :: std :: os :: raw :: c_ushort ; pub type word = u16 ; pub type S7Object = usize ; # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7DataItem { pub Area : :: std :: os :: raw :: c_int , pub WordLen : :: std :: os :: raw :: c_int , pub Result : :: std :: os :: raw :: c_int , pub DBNumber : :: std :: os :: raw :: c_int , pub Start : :: std :: os :: raw :: c_int , pub Amount : :: std :: os :: raw :: c_int , pub pdata : * mut :: std :: os :: raw :: c_void , } # [ test ] fn bindgen_test_layout_TS7DataItem ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7DataItem > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( TS7DataItem ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7DataItem > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7DataItem ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Area as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Area ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . WordLen as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( WordLen ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Result as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Result ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . DBNumber as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( DBNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Start as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Start ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Amount as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Amount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . pdata as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( pdata ) ) ) ; } pub type PS7DataItem = * mut TS7DataItem ; # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7BlocksList { pub OBCount : :: std :: os :: raw :: c_int , pub FBCount : :: std :: os :: raw :: c_int , pub FCCount : :: std :: os :: raw :: c_int , pub SFBCount : :: std :: os :: raw :: c_int , pub SFCCount : :: std :: os :: raw :: c_int , pub DBCount : :: std :: os :: raw :: c_int , pub SDBCount : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_TS7BlocksList ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7BlocksList > ( ) , 28usize , concat ! ( "Size of: " , stringify ! ( TS7BlocksList ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7BlocksList > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7BlocksList ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . OBCount as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( OBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . FBCount as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( FBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . FCCount as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( FCCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SFBCount as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SFBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SFCCount as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SFCCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . DBCount as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( DBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SDBCount as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SDBCount ) ) ) ; } # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7BlockInfo { pub BlkType : :: std :: os :: raw :: c_int , pub BlkNumber : :: std :: os :: raw :: c_int , pub BlkLang : :: std :: os :: raw :: c_int , pub BlkFlags : :: std :: os :: raw :: c_int , pub MC7Size : :: std :: os :: raw :: c_int , pub LoadSize : :: std :: os :: raw :: c_int , pub LocalData : :: std :: os :: raw :: c_int , pub SBBLength : :: std :: os :: raw :: c_int , pub CheckSum : :: std :: os :: raw :: c_int , pub Version : :: std :: os :: raw :: c_int , pub CodeDate : [ :: std :: os :: raw :: c_char ; 11usize ] , pub IntfDate : [ :: std :: os :: raw :: c_char ; 11usize ] , pub Author : [ :: std :: os :: raw :: c_char ; 9usize ] , pub Family : [ :: std :: os :: raw :: c_char ; 9usize ] , pub Header : [ :: std :: os :: raw :: c_char ; 9usize ] , } # [ test ] fn bindgen_test_layout_TS7BlockInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7BlockInfo > ( ) , 89usize , concat ! ( "Size of: " , stringify ! ( TS7BlockInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7BlockInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7BlockInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkType as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkType ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkNumber as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkLang as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkLang ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkFlags as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkFlags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . MC7Size as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( MC7Size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . LoadSize as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( LoadSize ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . LocalData as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( LocalData ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . SBBLength as * const _ as usize } , 28usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( SBBLength ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . CheckSum as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( CheckSum ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Version as * const _ as usize } , 36usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Version ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . CodeDate as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( CodeDate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . IntfDate as * const _ as usize } , 51usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( IntfDate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Author as * const _ as usize } , 62usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Author ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Family as * const _ as usize } , 71usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Family ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Header as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Header ) ) ) ; } pub type TS7BlocksOfType = [ word ; 8192usize ] ; # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct TS7CpuInfo { pub ModuleTypeName : [ :: std :: os :: raw :: c_char ; 33usize ] , pub SerialNumber : [ :: std :: os :: raw :: c_char ; 25usize ] , pub ASName : [ :: std :: os :: raw :: c_char ; 25usize ] , pub Copyright : [ :: std :: os :: raw :: c_char ; 27usize ] , pub ModuleName : [ :: std :: os :: raw :: c_char ; 25usize ] , } # [ test ] fn bindgen_test_layout_TS7CpuInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7CpuInfo > ( ) , 135usize , concat ! ( "Size of: " , stringify ! ( TS7CpuInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7CpuInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7CpuInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ModuleTypeName as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ModuleTypeName ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . SerialNumber as * const _ as usize } , 33usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( SerialNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ASName as * const _ as usize } , 58usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ASName ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . Copyright as * const _ as usize } , 83usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( Copyright ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ModuleName as * const _ as usize } , 110usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ModuleName ) ) ) ; } # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7CpInfo { pub MaxPduLengt : :: std :: os :: raw :: c_int , pub MaxConnections : :: std :: os :: raw :: c_int , pub MaxMpiRate : :: std :: os :: raw :: c_int , pub MaxBusRate : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_TS7CpInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7CpInfo > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( TS7CpInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7CpInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7CpInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxPduLengt as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxPduLengt ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxConnections as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxConnections ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxMpiRate as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxMpiRate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxBusRate as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxBusRate ) ) ) ; } extern "C" { pub fn Cli_Create ( ) -> S7Object ; } extern "C" { pub fn Cli_Destroy ( Client : * mut S7Object ) ; } extern "C" { pub fn Cli_ConnectTo ( Client : S7Object , Address : * const :: std :: os :: raw :: c_char , Rack : :: std :: os :: raw :: c_int , Slot : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetConnectionParams ( Client : S7Object , Address : * const :: std :: os :: raw :: c_char , LocalTSAP : word , RemoteTSAP : word ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetConnectionType ( Client : S7Object , ConnectionType : word ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_Disconnect ( Client : S7Object ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetParam ( Client : S7Object , ParamNumber : :: std :: os :: raw :: c_int , pValue : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetParam ( Client : S7Object , ParamNumber : :: std :: os :: raw :: c_int , pValue : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ReadArea ( Client : S7Object , Area : :: std :: os :: raw :: c_int , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , WordLen : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_WriteArea ( Client : S7Object , Area : :: std :: os :: raw :: c_int , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , WordLen : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ReadMultiVars ( Client : S7Object , Item : PS7DataItem , ItemsCount : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_WriteMultiVars ( Client : S7Object , Item : PS7DataItem , ItemsCount : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_DBRead ( Client : S7Object , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_DBWrite ( Client : S7Object , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_MBRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_MBWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_EBRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_EBWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ABRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ABWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_TMRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_TMWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_CTRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_CTWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ListBlocks ( Client : S7Object , pUsrData : * mut TS7BlocksList ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetAgBlockInfo ( Client : S7Object , BlockType : :: std :: os :: raw :: c_int , BlockNum : :: std :: os :: raw :: c_int , pUsrData : * mut TS7BlockInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPgBlockInfo ( Client : S7Object , pBlock : * mut :: std :: os :: raw :: c_void , pUsrData : * mut TS7BlockInfo , Size : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ListBlocksOfType ( Client : S7Object , BlockType : :: std :: os :: raw :: c_int , pUsrData : * mut TS7BlocksOfType , ItemsCount : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetCpuInfo ( Client : S7Object , pUsrData : * mut TS7CpuInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetCpInfo ( Client : S7Object , pUsrData : * mut TS7CpInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPlcStatus ( Client : S7Object , Status : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPduLength ( Client : S7Object , Requested : * mut :: std :: os :: raw :: c_int , Negotiated : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ErrorText ( Error : :: std :: os :: raw :: c_int , Text : * mut :: std :: os :: raw :: c_char , TextLen : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetConnected ( Client : S7Object , Connected : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: fields of packed structs are not properly aligned, and creating a misaligned reference is undefined behavior (even if that reference is never dereferenced) [INFO] [stderr] [INFO] [stderr] error: reference to packed field is unaligned [INFO] [stderr] --> /opt/rustwide/target/debug/build/snap7-sys-0d9a23a4c7ec91a8/out/bindings.rs:3:6224 [INFO] [stderr] | [INFO] [stderr] 3 | pub type __uint16_t = :: std :: os :: raw :: c_ushort ; pub type word = u16 ; pub type S7Object = usize ; # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7DataItem { pub Area : :: std :: os :: raw :: c_int , pub WordLen : :: std :: os :: raw :: c_int , pub Result : :: std :: os :: raw :: c_int , pub DBNumber : :: std :: os :: raw :: c_int , pub Start : :: std :: os :: raw :: c_int , pub Amount : :: std :: os :: raw :: c_int , pub pdata : * mut :: std :: os :: raw :: c_void , } # [ test ] fn bindgen_test_layout_TS7DataItem ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7DataItem > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( TS7DataItem ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7DataItem > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7DataItem ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Area as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Area ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . WordLen as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( WordLen ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Result as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Result ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . DBNumber as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( DBNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Start as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Start ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Amount as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Amount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . pdata as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( pdata ) ) ) ; } pub type PS7DataItem = * mut TS7DataItem ; # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7BlocksList { pub OBCount : :: std :: os :: raw :: c_int , pub FBCount : :: std :: os :: raw :: c_int , pub FCCount : :: std :: os :: raw :: c_int , pub SFBCount : :: std :: os :: raw :: c_int , pub SFCCount : :: std :: os :: raw :: c_int , pub DBCount : :: std :: os :: raw :: c_int , pub SDBCount : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_TS7BlocksList ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7BlocksList > ( ) , 28usize , concat ! ( "Size of: " , stringify ! ( TS7BlocksList ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7BlocksList > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7BlocksList ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . OBCount as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( OBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . FBCount as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( FBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . FCCount as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( FCCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SFBCount as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SFBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SFCCount as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SFCCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . DBCount as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( DBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SDBCount as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SDBCount ) ) ) ; } # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7BlockInfo { pub BlkType : :: std :: os :: raw :: c_int , pub BlkNumber : :: std :: os :: raw :: c_int , pub BlkLang : :: std :: os :: raw :: c_int , pub BlkFlags : :: std :: os :: raw :: c_int , pub MC7Size : :: std :: os :: raw :: c_int , pub LoadSize : :: std :: os :: raw :: c_int , pub LocalData : :: std :: os :: raw :: c_int , pub SBBLength : :: std :: os :: raw :: c_int , pub CheckSum : :: std :: os :: raw :: c_int , pub Version : :: std :: os :: raw :: c_int , pub CodeDate : [ :: std :: os :: raw :: c_char ; 11usize ] , pub IntfDate : [ :: std :: os :: raw :: c_char ; 11usize ] , pub Author : [ :: std :: os :: raw :: c_char ; 9usize ] , pub Family : [ :: std :: os :: raw :: c_char ; 9usize ] , pub Header : [ :: std :: os :: raw :: c_char ; 9usize ] , } # [ test ] fn bindgen_test_layout_TS7BlockInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7BlockInfo > ( ) , 89usize , concat ! ( "Size of: " , stringify ! ( TS7BlockInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7BlockInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7BlockInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkType as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkType ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkNumber as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkLang as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkLang ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkFlags as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkFlags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . MC7Size as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( MC7Size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . LoadSize as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( LoadSize ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . LocalData as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( LocalData ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . SBBLength as * const _ as usize } , 28usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( SBBLength ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . CheckSum as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( CheckSum ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Version as * const _ as usize } , 36usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Version ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . CodeDate as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( CodeDate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . IntfDate as * const _ as usize } , 51usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( IntfDate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Author as * const _ as usize } , 62usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Author ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Family as * const _ as usize } , 71usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Family ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Header as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Header ) ) ) ; } pub type TS7BlocksOfType = [ word ; 8192usize ] ; # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct TS7CpuInfo { pub ModuleTypeName : [ :: std :: os :: raw :: c_char ; 33usize ] , pub SerialNumber : [ :: std :: os :: raw :: c_char ; 25usize ] , pub ASName : [ :: std :: os :: raw :: c_char ; 25usize ] , pub Copyright : [ :: std :: os :: raw :: c_char ; 27usize ] , pub ModuleName : [ :: std :: os :: raw :: c_char ; 25usize ] , } # [ test ] fn bindgen_test_layout_TS7CpuInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7CpuInfo > ( ) , 135usize , concat ! ( "Size of: " , stringify ! ( TS7CpuInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7CpuInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7CpuInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ModuleTypeName as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ModuleTypeName ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . SerialNumber as * const _ as usize } , 33usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( SerialNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ASName as * const _ as usize } , 58usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ASName ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . Copyright as * const _ as usize } , 83usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( Copyright ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ModuleName as * const _ as usize } , 110usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ModuleName ) ) ) ; } # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7CpInfo { pub MaxPduLengt : :: std :: os :: raw :: c_int , pub MaxConnections : :: std :: os :: raw :: c_int , pub MaxMpiRate : :: std :: os :: raw :: c_int , pub MaxBusRate : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_TS7CpInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7CpInfo > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( TS7CpInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7CpInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7CpInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxPduLengt as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxPduLengt ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxConnections as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxConnections ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxMpiRate as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxMpiRate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxBusRate as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxBusRate ) ) ) ; } extern "C" { pub fn Cli_Create ( ) -> S7Object ; } extern "C" { pub fn Cli_Destroy ( Client : * mut S7Object ) ; } extern "C" { pub fn Cli_ConnectTo ( Client : S7Object , Address : * const :: std :: os :: raw :: c_char , Rack : :: std :: os :: raw :: c_int , Slot : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetConnectionParams ( Client : S7Object , Address : * const :: std :: os :: raw :: c_char , LocalTSAP : word , RemoteTSAP : word ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetConnectionType ( Client : S7Object , ConnectionType : word ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_Disconnect ( Client : S7Object ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetParam ( Client : S7Object , ParamNumber : :: std :: os :: raw :: c_int , pValue : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetParam ( Client : S7Object , ParamNumber : :: std :: os :: raw :: c_int , pValue : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ReadArea ( Client : S7Object , Area : :: std :: os :: raw :: c_int , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , WordLen : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_WriteArea ( Client : S7Object , Area : :: std :: os :: raw :: c_int , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , WordLen : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ReadMultiVars ( Client : S7Object , Item : PS7DataItem , ItemsCount : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_WriteMultiVars ( Client : S7Object , Item : PS7DataItem , ItemsCount : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_DBRead ( Client : S7Object , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_DBWrite ( Client : S7Object , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_MBRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_MBWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_EBRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_EBWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ABRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ABWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_TMRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_TMWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_CTRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_CTWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ListBlocks ( Client : S7Object , pUsrData : * mut TS7BlocksList ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetAgBlockInfo ( Client : S7Object , BlockType : :: std :: os :: raw :: c_int , BlockNum : :: std :: os :: raw :: c_int , pUsrData : * mut TS7BlockInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPgBlockInfo ( Client : S7Object , pBlock : * mut :: std :: os :: raw :: c_void , pUsrData : * mut TS7BlockInfo , Size : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ListBlocksOfType ( Client : S7Object , BlockType : :: std :: os :: raw :: c_int , pUsrData : * mut TS7BlocksOfType , ItemsCount : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetCpuInfo ( Client : S7Object , pUsrData : * mut TS7CpuInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetCpInfo ( Client : S7Object , pUsrData : * mut TS7CpInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPlcStatus ( Client : S7Object , Status : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPduLength ( Client : S7Object , Requested : * mut :: std :: os :: raw :: c_int , Negotiated : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ErrorText ( Error : :: std :: os :: raw :: c_int , Text : * mut :: std :: os :: raw :: c_char , TextLen : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetConnected ( Client : S7Object , Connected : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: fields of packed structs are not properly aligned, and creating a misaligned reference is undefined behavior (even if that reference is never dereferenced) [INFO] [stderr] [INFO] [stderr] error: reference to packed field is unaligned [INFO] [stderr] --> /opt/rustwide/target/debug/build/snap7-sys-0d9a23a4c7ec91a8/out/bindings.rs:3:6455 [INFO] [stderr] | [INFO] [stderr] 3 | pub type __uint16_t = :: std :: os :: raw :: c_ushort ; pub type word = u16 ; pub type S7Object = usize ; # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7DataItem { pub Area : :: std :: os :: raw :: c_int , pub WordLen : :: std :: os :: raw :: c_int , pub Result : :: std :: os :: raw :: c_int , pub DBNumber : :: std :: os :: raw :: c_int , pub Start : :: std :: os :: raw :: c_int , pub Amount : :: std :: os :: raw :: c_int , pub pdata : * mut :: std :: os :: raw :: c_void , } # [ test ] fn bindgen_test_layout_TS7DataItem ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7DataItem > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( TS7DataItem ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7DataItem > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7DataItem ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Area as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Area ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . WordLen as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( WordLen ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Result as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Result ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . DBNumber as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( DBNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Start as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Start ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Amount as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Amount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . pdata as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( pdata ) ) ) ; } pub type PS7DataItem = * mut TS7DataItem ; # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7BlocksList { pub OBCount : :: std :: os :: raw :: c_int , pub FBCount : :: std :: os :: raw :: c_int , pub FCCount : :: std :: os :: raw :: c_int , pub SFBCount : :: std :: os :: raw :: c_int , pub SFCCount : :: std :: os :: raw :: c_int , pub DBCount : :: std :: os :: raw :: c_int , pub SDBCount : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_TS7BlocksList ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7BlocksList > ( ) , 28usize , concat ! ( "Size of: " , stringify ! ( TS7BlocksList ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7BlocksList > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7BlocksList ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . OBCount as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( OBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . FBCount as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( FBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . FCCount as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( FCCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SFBCount as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SFBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SFCCount as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SFCCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . DBCount as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( DBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SDBCount as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SDBCount ) ) ) ; } # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7BlockInfo { pub BlkType : :: std :: os :: raw :: c_int , pub BlkNumber : :: std :: os :: raw :: c_int , pub BlkLang : :: std :: os :: raw :: c_int , pub BlkFlags : :: std :: os :: raw :: c_int , pub MC7Size : :: std :: os :: raw :: c_int , pub LoadSize : :: std :: os :: raw :: c_int , pub LocalData : :: std :: os :: raw :: c_int , pub SBBLength : :: std :: os :: raw :: c_int , pub CheckSum : :: std :: os :: raw :: c_int , pub Version : :: std :: os :: raw :: c_int , pub CodeDate : [ :: std :: os :: raw :: c_char ; 11usize ] , pub IntfDate : [ :: std :: os :: raw :: c_char ; 11usize ] , pub Author : [ :: std :: os :: raw :: c_char ; 9usize ] , pub Family : [ :: std :: os :: raw :: c_char ; 9usize ] , pub Header : [ :: std :: os :: raw :: c_char ; 9usize ] , } # [ test ] fn bindgen_test_layout_TS7BlockInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7BlockInfo > ( ) , 89usize , concat ! ( "Size of: " , stringify ! ( TS7BlockInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7BlockInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7BlockInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkType as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkType ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkNumber as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkLang as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkLang ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkFlags as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkFlags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . MC7Size as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( MC7Size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . LoadSize as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( LoadSize ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . LocalData as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( LocalData ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . SBBLength as * const _ as usize } , 28usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( SBBLength ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . CheckSum as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( CheckSum ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Version as * const _ as usize } , 36usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Version ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . CodeDate as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( CodeDate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . IntfDate as * const _ as usize } , 51usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( IntfDate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Author as * const _ as usize } , 62usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Author ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Family as * const _ as usize } , 71usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Family ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Header as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Header ) ) ) ; } pub type TS7BlocksOfType = [ word ; 8192usize ] ; # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct TS7CpuInfo { pub ModuleTypeName : [ :: std :: os :: raw :: c_char ; 33usize ] , pub SerialNumber : [ :: std :: os :: raw :: c_char ; 25usize ] , pub ASName : [ :: std :: os :: raw :: c_char ; 25usize ] , pub Copyright : [ :: std :: os :: raw :: c_char ; 27usize ] , pub ModuleName : [ :: std :: os :: raw :: c_char ; 25usize ] , } # [ test ] fn bindgen_test_layout_TS7CpuInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7CpuInfo > ( ) , 135usize , concat ! ( "Size of: " , stringify ! ( TS7CpuInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7CpuInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7CpuInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ModuleTypeName as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ModuleTypeName ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . SerialNumber as * const _ as usize } , 33usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( SerialNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ASName as * const _ as usize } , 58usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ASName ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . Copyright as * const _ as usize } , 83usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( Copyright ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ModuleName as * const _ as usize } , 110usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ModuleName ) ) ) ; } # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7CpInfo { pub MaxPduLengt : :: std :: os :: raw :: c_int , pub MaxConnections : :: std :: os :: raw :: c_int , pub MaxMpiRate : :: std :: os :: raw :: c_int , pub MaxBusRate : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_TS7CpInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7CpInfo > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( TS7CpInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7CpInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7CpInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxPduLengt as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxPduLengt ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxConnections as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxConnections ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxMpiRate as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxMpiRate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxBusRate as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxBusRate ) ) ) ; } extern "C" { pub fn Cli_Create ( ) -> S7Object ; } extern "C" { pub fn Cli_Destroy ( Client : * mut S7Object ) ; } extern "C" { pub fn Cli_ConnectTo ( Client : S7Object , Address : * const :: std :: os :: raw :: c_char , Rack : :: std :: os :: raw :: c_int , Slot : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetConnectionParams ( Client : S7Object , Address : * const :: std :: os :: raw :: c_char , LocalTSAP : word , RemoteTSAP : word ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetConnectionType ( Client : S7Object , ConnectionType : word ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_Disconnect ( Client : S7Object ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetParam ( Client : S7Object , ParamNumber : :: std :: os :: raw :: c_int , pValue : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetParam ( Client : S7Object , ParamNumber : :: std :: os :: raw :: c_int , pValue : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ReadArea ( Client : S7Object , Area : :: std :: os :: raw :: c_int , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , WordLen : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_WriteArea ( Client : S7Object , Area : :: std :: os :: raw :: c_int , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , WordLen : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ReadMultiVars ( Client : S7Object , Item : PS7DataItem , ItemsCount : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_WriteMultiVars ( Client : S7Object , Item : PS7DataItem , ItemsCount : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_DBRead ( Client : S7Object , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_DBWrite ( Client : S7Object , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_MBRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_MBWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_EBRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_EBWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ABRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ABWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_TMRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_TMWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_CTRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_CTWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ListBlocks ( Client : S7Object , pUsrData : * mut TS7BlocksList ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetAgBlockInfo ( Client : S7Object , BlockType : :: std :: os :: raw :: c_int , BlockNum : :: std :: os :: raw :: c_int , pUsrData : * mut TS7BlockInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPgBlockInfo ( Client : S7Object , pBlock : * mut :: std :: os :: raw :: c_void , pUsrData : * mut TS7BlockInfo , Size : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ListBlocksOfType ( Client : S7Object , BlockType : :: std :: os :: raw :: c_int , pUsrData : * mut TS7BlocksOfType , ItemsCount : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetCpuInfo ( Client : S7Object , pUsrData : * mut TS7CpuInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetCpInfo ( Client : S7Object , pUsrData : * mut TS7CpInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPlcStatus ( Client : S7Object , Status : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPduLength ( Client : S7Object , Requested : * mut :: std :: os :: raw :: c_int , Negotiated : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ErrorText ( Error : :: std :: os :: raw :: c_int , Text : * mut :: std :: os :: raw :: c_char , TextLen : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetConnected ( Client : S7Object , Connected : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: fields of packed structs are not properly aligned, and creating a misaligned reference is undefined behavior (even if that reference is never dereferenced) [INFO] [stderr] [INFO] [stderr] error: reference to packed field is unaligned [INFO] [stderr] --> /opt/rustwide/target/debug/build/snap7-sys-0d9a23a4c7ec91a8/out/bindings.rs:3:6682 [INFO] [stderr] | [INFO] [stderr] 3 | pub type __uint16_t = :: std :: os :: raw :: c_ushort ; pub type word = u16 ; pub type S7Object = usize ; # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7DataItem { pub Area : :: std :: os :: raw :: c_int , pub WordLen : :: std :: os :: raw :: c_int , pub Result : :: std :: os :: raw :: c_int , pub DBNumber : :: std :: os :: raw :: c_int , pub Start : :: std :: os :: raw :: c_int , pub Amount : :: std :: os :: raw :: c_int , pub pdata : * mut :: std :: os :: raw :: c_void , } # [ test ] fn bindgen_test_layout_TS7DataItem ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7DataItem > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( TS7DataItem ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7DataItem > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7DataItem ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Area as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Area ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . WordLen as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( WordLen ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Result as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Result ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . DBNumber as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( DBNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Start as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Start ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Amount as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Amount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . pdata as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( pdata ) ) ) ; } pub type PS7DataItem = * mut TS7DataItem ; # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7BlocksList { pub OBCount : :: std :: os :: raw :: c_int , pub FBCount : :: std :: os :: raw :: c_int , pub FCCount : :: std :: os :: raw :: c_int , pub SFBCount : :: std :: os :: raw :: c_int , pub SFCCount : :: std :: os :: raw :: c_int , pub DBCount : :: std :: os :: raw :: c_int , pub SDBCount : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_TS7BlocksList ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7BlocksList > ( ) , 28usize , concat ! ( "Size of: " , stringify ! ( TS7BlocksList ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7BlocksList > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7BlocksList ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . OBCount as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( OBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . FBCount as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( FBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . FCCount as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( FCCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SFBCount as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SFBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SFCCount as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SFCCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . DBCount as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( DBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SDBCount as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SDBCount ) ) ) ; } # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7BlockInfo { pub BlkType : :: std :: os :: raw :: c_int , pub BlkNumber : :: std :: os :: raw :: c_int , pub BlkLang : :: std :: os :: raw :: c_int , pub BlkFlags : :: std :: os :: raw :: c_int , pub MC7Size : :: std :: os :: raw :: c_int , pub LoadSize : :: std :: os :: raw :: c_int , pub LocalData : :: std :: os :: raw :: c_int , pub SBBLength : :: std :: os :: raw :: c_int , pub CheckSum : :: std :: os :: raw :: c_int , pub Version : :: std :: os :: raw :: c_int , pub CodeDate : [ :: std :: os :: raw :: c_char ; 11usize ] , pub IntfDate : [ :: std :: os :: raw :: c_char ; 11usize ] , pub Author : [ :: std :: os :: raw :: c_char ; 9usize ] , pub Family : [ :: std :: os :: raw :: c_char ; 9usize ] , pub Header : [ :: std :: os :: raw :: c_char ; 9usize ] , } # [ test ] fn bindgen_test_layout_TS7BlockInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7BlockInfo > ( ) , 89usize , concat ! ( "Size of: " , stringify ! ( TS7BlockInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7BlockInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7BlockInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkType as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkType ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkNumber as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkLang as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkLang ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkFlags as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkFlags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . MC7Size as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( MC7Size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . LoadSize as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( LoadSize ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . LocalData as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( LocalData ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . SBBLength as * const _ as usize } , 28usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( SBBLength ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . CheckSum as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( CheckSum ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Version as * const _ as usize } , 36usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Version ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . CodeDate as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( CodeDate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . IntfDate as * const _ as usize } , 51usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( IntfDate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Author as * const _ as usize } , 62usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Author ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Family as * const _ as usize } , 71usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Family ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Header as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Header ) ) ) ; } pub type TS7BlocksOfType = [ word ; 8192usize ] ; # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct TS7CpuInfo { pub ModuleTypeName : [ :: std :: os :: raw :: c_char ; 33usize ] , pub SerialNumber : [ :: std :: os :: raw :: c_char ; 25usize ] , pub ASName : [ :: std :: os :: raw :: c_char ; 25usize ] , pub Copyright : [ :: std :: os :: raw :: c_char ; 27usize ] , pub ModuleName : [ :: std :: os :: raw :: c_char ; 25usize ] , } # [ test ] fn bindgen_test_layout_TS7CpuInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7CpuInfo > ( ) , 135usize , concat ! ( "Size of: " , stringify ! ( TS7CpuInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7CpuInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7CpuInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ModuleTypeName as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ModuleTypeName ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . SerialNumber as * const _ as usize } , 33usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( SerialNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ASName as * const _ as usize } , 58usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ASName ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . Copyright as * const _ as usize } , 83usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( Copyright ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ModuleName as * const _ as usize } , 110usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ModuleName ) ) ) ; } # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7CpInfo { pub MaxPduLengt : :: std :: os :: raw :: c_int , pub MaxConnections : :: std :: os :: raw :: c_int , pub MaxMpiRate : :: std :: os :: raw :: c_int , pub MaxBusRate : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_TS7CpInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7CpInfo > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( TS7CpInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7CpInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7CpInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxPduLengt as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxPduLengt ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxConnections as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxConnections ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxMpiRate as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxMpiRate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxBusRate as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxBusRate ) ) ) ; } extern "C" { pub fn Cli_Create ( ) -> S7Object ; } extern "C" { pub fn Cli_Destroy ( Client : * mut S7Object ) ; } extern "C" { pub fn Cli_ConnectTo ( Client : S7Object , Address : * const :: std :: os :: raw :: c_char , Rack : :: std :: os :: raw :: c_int , Slot : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetConnectionParams ( Client : S7Object , Address : * const :: std :: os :: raw :: c_char , LocalTSAP : word , RemoteTSAP : word ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetConnectionType ( Client : S7Object , ConnectionType : word ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_Disconnect ( Client : S7Object ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetParam ( Client : S7Object , ParamNumber : :: std :: os :: raw :: c_int , pValue : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetParam ( Client : S7Object , ParamNumber : :: std :: os :: raw :: c_int , pValue : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ReadArea ( Client : S7Object , Area : :: std :: os :: raw :: c_int , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , WordLen : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_WriteArea ( Client : S7Object , Area : :: std :: os :: raw :: c_int , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , WordLen : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ReadMultiVars ( Client : S7Object , Item : PS7DataItem , ItemsCount : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_WriteMultiVars ( Client : S7Object , Item : PS7DataItem , ItemsCount : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_DBRead ( Client : S7Object , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_DBWrite ( Client : S7Object , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_MBRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_MBWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_EBRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_EBWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ABRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ABWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_TMRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_TMWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_CTRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_CTWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ListBlocks ( Client : S7Object , pUsrData : * mut TS7BlocksList ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetAgBlockInfo ( Client : S7Object , BlockType : :: std :: os :: raw :: c_int , BlockNum : :: std :: os :: raw :: c_int , pUsrData : * mut TS7BlockInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPgBlockInfo ( Client : S7Object , pBlock : * mut :: std :: os :: raw :: c_void , pUsrData : * mut TS7BlockInfo , Size : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ListBlocksOfType ( Client : S7Object , BlockType : :: std :: os :: raw :: c_int , pUsrData : * mut TS7BlocksOfType , ItemsCount : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetCpuInfo ( Client : S7Object , pUsrData : * mut TS7CpuInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetCpInfo ( Client : S7Object , pUsrData : * mut TS7CpInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPlcStatus ( Client : S7Object , Status : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPduLength ( Client : S7Object , Requested : * mut :: std :: os :: raw :: c_int , Negotiated : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ErrorText ( Error : :: std :: os :: raw :: c_int , Text : * mut :: std :: os :: raw :: c_char , TextLen : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetConnected ( Client : S7Object , Connected : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: fields of packed structs are not properly aligned, and creating a misaligned reference is undefined behavior (even if that reference is never dereferenced) [INFO] [stderr] [INFO] [stderr] error: reference to packed field is unaligned [INFO] [stderr] --> /opt/rustwide/target/debug/build/snap7-sys-0d9a23a4c7ec91a8/out/bindings.rs:3:6912 [INFO] [stderr] | [INFO] [stderr] 3 | pub type __uint16_t = :: std :: os :: raw :: c_ushort ; pub type word = u16 ; pub type S7Object = usize ; # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7DataItem { pub Area : :: std :: os :: raw :: c_int , pub WordLen : :: std :: os :: raw :: c_int , pub Result : :: std :: os :: raw :: c_int , pub DBNumber : :: std :: os :: raw :: c_int , pub Start : :: std :: os :: raw :: c_int , pub Amount : :: std :: os :: raw :: c_int , pub pdata : * mut :: std :: os :: raw :: c_void , } # [ test ] fn bindgen_test_layout_TS7DataItem ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7DataItem > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( TS7DataItem ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7DataItem > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7DataItem ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Area as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Area ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . WordLen as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( WordLen ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Result as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Result ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . DBNumber as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( DBNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Start as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Start ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Amount as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Amount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . pdata as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( pdata ) ) ) ; } pub type PS7DataItem = * mut TS7DataItem ; # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7BlocksList { pub OBCount : :: std :: os :: raw :: c_int , pub FBCount : :: std :: os :: raw :: c_int , pub FCCount : :: std :: os :: raw :: c_int , pub SFBCount : :: std :: os :: raw :: c_int , pub SFCCount : :: std :: os :: raw :: c_int , pub DBCount : :: std :: os :: raw :: c_int , pub SDBCount : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_TS7BlocksList ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7BlocksList > ( ) , 28usize , concat ! ( "Size of: " , stringify ! ( TS7BlocksList ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7BlocksList > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7BlocksList ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . OBCount as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( OBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . FBCount as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( FBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . FCCount as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( FCCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SFBCount as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SFBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SFCCount as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SFCCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . DBCount as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( DBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SDBCount as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SDBCount ) ) ) ; } # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7BlockInfo { pub BlkType : :: std :: os :: raw :: c_int , pub BlkNumber : :: std :: os :: raw :: c_int , pub BlkLang : :: std :: os :: raw :: c_int , pub BlkFlags : :: std :: os :: raw :: c_int , pub MC7Size : :: std :: os :: raw :: c_int , pub LoadSize : :: std :: os :: raw :: c_int , pub LocalData : :: std :: os :: raw :: c_int , pub SBBLength : :: std :: os :: raw :: c_int , pub CheckSum : :: std :: os :: raw :: c_int , pub Version : :: std :: os :: raw :: c_int , pub CodeDate : [ :: std :: os :: raw :: c_char ; 11usize ] , pub IntfDate : [ :: std :: os :: raw :: c_char ; 11usize ] , pub Author : [ :: std :: os :: raw :: c_char ; 9usize ] , pub Family : [ :: std :: os :: raw :: c_char ; 9usize ] , pub Header : [ :: std :: os :: raw :: c_char ; 9usize ] , } # [ test ] fn bindgen_test_layout_TS7BlockInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7BlockInfo > ( ) , 89usize , concat ! ( "Size of: " , stringify ! ( TS7BlockInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7BlockInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7BlockInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkType as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkType ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkNumber as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkLang as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkLang ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkFlags as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkFlags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . MC7Size as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( MC7Size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . LoadSize as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( LoadSize ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . LocalData as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( LocalData ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . SBBLength as * const _ as usize } , 28usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( SBBLength ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . CheckSum as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( CheckSum ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Version as * const _ as usize } , 36usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Version ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . CodeDate as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( CodeDate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . IntfDate as * const _ as usize } , 51usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( IntfDate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Author as * const _ as usize } , 62usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Author ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Family as * const _ as usize } , 71usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Family ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Header as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Header ) ) ) ; } pub type TS7BlocksOfType = [ word ; 8192usize ] ; # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct TS7CpuInfo { pub ModuleTypeName : [ :: std :: os :: raw :: c_char ; 33usize ] , pub SerialNumber : [ :: std :: os :: raw :: c_char ; 25usize ] , pub ASName : [ :: std :: os :: raw :: c_char ; 25usize ] , pub Copyright : [ :: std :: os :: raw :: c_char ; 27usize ] , pub ModuleName : [ :: std :: os :: raw :: c_char ; 25usize ] , } # [ test ] fn bindgen_test_layout_TS7CpuInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7CpuInfo > ( ) , 135usize , concat ! ( "Size of: " , stringify ! ( TS7CpuInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7CpuInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7CpuInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ModuleTypeName as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ModuleTypeName ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . SerialNumber as * const _ as usize } , 33usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( SerialNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ASName as * const _ as usize } , 58usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ASName ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . Copyright as * const _ as usize } , 83usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( Copyright ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ModuleName as * const _ as usize } , 110usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ModuleName ) ) ) ; } # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7CpInfo { pub MaxPduLengt : :: std :: os :: raw :: c_int , pub MaxConnections : :: std :: os :: raw :: c_int , pub MaxMpiRate : :: std :: os :: raw :: c_int , pub MaxBusRate : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_TS7CpInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7CpInfo > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( TS7CpInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7CpInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7CpInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxPduLengt as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxPduLengt ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxConnections as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxConnections ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxMpiRate as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxMpiRate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxBusRate as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxBusRate ) ) ) ; } extern "C" { pub fn Cli_Create ( ) -> S7Object ; } extern "C" { pub fn Cli_Destroy ( Client : * mut S7Object ) ; } extern "C" { pub fn Cli_ConnectTo ( Client : S7Object , Address : * const :: std :: os :: raw :: c_char , Rack : :: std :: os :: raw :: c_int , Slot : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetConnectionParams ( Client : S7Object , Address : * const :: std :: os :: raw :: c_char , LocalTSAP : word , RemoteTSAP : word ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetConnectionType ( Client : S7Object , ConnectionType : word ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_Disconnect ( Client : S7Object ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetParam ( Client : S7Object , ParamNumber : :: std :: os :: raw :: c_int , pValue : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetParam ( Client : S7Object , ParamNumber : :: std :: os :: raw :: c_int , pValue : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ReadArea ( Client : S7Object , Area : :: std :: os :: raw :: c_int , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , WordLen : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_WriteArea ( Client : S7Object , Area : :: std :: os :: raw :: c_int , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , WordLen : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ReadMultiVars ( Client : S7Object , Item : PS7DataItem , ItemsCount : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_WriteMultiVars ( Client : S7Object , Item : PS7DataItem , ItemsCount : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_DBRead ( Client : S7Object , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_DBWrite ( Client : S7Object , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_MBRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_MBWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_EBRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_EBWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ABRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ABWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_TMRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_TMWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_CTRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_CTWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ListBlocks ( Client : S7Object , pUsrData : * mut TS7BlocksList ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetAgBlockInfo ( Client : S7Object , BlockType : :: std :: os :: raw :: c_int , BlockNum : :: std :: os :: raw :: c_int , pUsrData : * mut TS7BlockInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPgBlockInfo ( Client : S7Object , pBlock : * mut :: std :: os :: raw :: c_void , pUsrData : * mut TS7BlockInfo , Size : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ListBlocksOfType ( Client : S7Object , BlockType : :: std :: os :: raw :: c_int , pUsrData : * mut TS7BlocksOfType , ItemsCount : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetCpuInfo ( Client : S7Object , pUsrData : * mut TS7CpuInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetCpInfo ( Client : S7Object , pUsrData : * mut TS7CpInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPlcStatus ( Client : S7Object , Status : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPduLength ( Client : S7Object , Requested : * mut :: std :: os :: raw :: c_int , Negotiated : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ErrorText ( Error : :: std :: os :: raw :: c_int , Text : * mut :: std :: os :: raw :: c_char , TextLen : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetConnected ( Client : S7Object , Connected : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: fields of packed structs are not properly aligned, and creating a misaligned reference is undefined behavior (even if that reference is never dereferenced) [INFO] [stderr] [INFO] [stderr] error: reference to packed field is unaligned [INFO] [stderr] --> /opt/rustwide/target/debug/build/snap7-sys-0d9a23a4c7ec91a8/out/bindings.rs:3:7140 [INFO] [stderr] | [INFO] [stderr] 3 | pub type __uint16_t = :: std :: os :: raw :: c_ushort ; pub type word = u16 ; pub type S7Object = usize ; # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7DataItem { pub Area : :: std :: os :: raw :: c_int , pub WordLen : :: std :: os :: raw :: c_int , pub Result : :: std :: os :: raw :: c_int , pub DBNumber : :: std :: os :: raw :: c_int , pub Start : :: std :: os :: raw :: c_int , pub Amount : :: std :: os :: raw :: c_int , pub pdata : * mut :: std :: os :: raw :: c_void , } # [ test ] fn bindgen_test_layout_TS7DataItem ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7DataItem > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( TS7DataItem ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7DataItem > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7DataItem ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Area as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Area ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . WordLen as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( WordLen ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Result as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Result ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . DBNumber as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( DBNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Start as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Start ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Amount as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Amount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . pdata as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( pdata ) ) ) ; } pub type PS7DataItem = * mut TS7DataItem ; # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7BlocksList { pub OBCount : :: std :: os :: raw :: c_int , pub FBCount : :: std :: os :: raw :: c_int , pub FCCount : :: std :: os :: raw :: c_int , pub SFBCount : :: std :: os :: raw :: c_int , pub SFCCount : :: std :: os :: raw :: c_int , pub DBCount : :: std :: os :: raw :: c_int , pub SDBCount : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_TS7BlocksList ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7BlocksList > ( ) , 28usize , concat ! ( "Size of: " , stringify ! ( TS7BlocksList ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7BlocksList > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7BlocksList ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . OBCount as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( OBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . FBCount as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( FBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . FCCount as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( FCCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SFBCount as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SFBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SFCCount as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SFCCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . DBCount as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( DBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SDBCount as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SDBCount ) ) ) ; } # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7BlockInfo { pub BlkType : :: std :: os :: raw :: c_int , pub BlkNumber : :: std :: os :: raw :: c_int , pub BlkLang : :: std :: os :: raw :: c_int , pub BlkFlags : :: std :: os :: raw :: c_int , pub MC7Size : :: std :: os :: raw :: c_int , pub LoadSize : :: std :: os :: raw :: c_int , pub LocalData : :: std :: os :: raw :: c_int , pub SBBLength : :: std :: os :: raw :: c_int , pub CheckSum : :: std :: os :: raw :: c_int , pub Version : :: std :: os :: raw :: c_int , pub CodeDate : [ :: std :: os :: raw :: c_char ; 11usize ] , pub IntfDate : [ :: std :: os :: raw :: c_char ; 11usize ] , pub Author : [ :: std :: os :: raw :: c_char ; 9usize ] , pub Family : [ :: std :: os :: raw :: c_char ; 9usize ] , pub Header : [ :: std :: os :: raw :: c_char ; 9usize ] , } # [ test ] fn bindgen_test_layout_TS7BlockInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7BlockInfo > ( ) , 89usize , concat ! ( "Size of: " , stringify ! ( TS7BlockInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7BlockInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7BlockInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkType as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkType ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkNumber as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkLang as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkLang ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkFlags as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkFlags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . MC7Size as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( MC7Size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . LoadSize as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( LoadSize ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . LocalData as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( LocalData ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . SBBLength as * const _ as usize } , 28usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( SBBLength ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . CheckSum as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( CheckSum ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Version as * const _ as usize } , 36usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Version ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . CodeDate as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( CodeDate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . IntfDate as * const _ as usize } , 51usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( IntfDate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Author as * const _ as usize } , 62usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Author ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Family as * const _ as usize } , 71usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Family ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Header as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Header ) ) ) ; } pub type TS7BlocksOfType = [ word ; 8192usize ] ; # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct TS7CpuInfo { pub ModuleTypeName : [ :: std :: os :: raw :: c_char ; 33usize ] , pub SerialNumber : [ :: std :: os :: raw :: c_char ; 25usize ] , pub ASName : [ :: std :: os :: raw :: c_char ; 25usize ] , pub Copyright : [ :: std :: os :: raw :: c_char ; 27usize ] , pub ModuleName : [ :: std :: os :: raw :: c_char ; 25usize ] , } # [ test ] fn bindgen_test_layout_TS7CpuInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7CpuInfo > ( ) , 135usize , concat ! ( "Size of: " , stringify ! ( TS7CpuInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7CpuInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7CpuInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ModuleTypeName as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ModuleTypeName ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . SerialNumber as * const _ as usize } , 33usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( SerialNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ASName as * const _ as usize } , 58usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ASName ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . Copyright as * const _ as usize } , 83usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( Copyright ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ModuleName as * const _ as usize } , 110usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ModuleName ) ) ) ; } # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7CpInfo { pub MaxPduLengt : :: std :: os :: raw :: c_int , pub MaxConnections : :: std :: os :: raw :: c_int , pub MaxMpiRate : :: std :: os :: raw :: c_int , pub MaxBusRate : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_TS7CpInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7CpInfo > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( TS7CpInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7CpInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7CpInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxPduLengt as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxPduLengt ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxConnections as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxConnections ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxMpiRate as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxMpiRate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxBusRate as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxBusRate ) ) ) ; } extern "C" { pub fn Cli_Create ( ) -> S7Object ; } extern "C" { pub fn Cli_Destroy ( Client : * mut S7Object ) ; } extern "C" { pub fn Cli_ConnectTo ( Client : S7Object , Address : * const :: std :: os :: raw :: c_char , Rack : :: std :: os :: raw :: c_int , Slot : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetConnectionParams ( Client : S7Object , Address : * const :: std :: os :: raw :: c_char , LocalTSAP : word , RemoteTSAP : word ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetConnectionType ( Client : S7Object , ConnectionType : word ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_Disconnect ( Client : S7Object ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetParam ( Client : S7Object , ParamNumber : :: std :: os :: raw :: c_int , pValue : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetParam ( Client : S7Object , ParamNumber : :: std :: os :: raw :: c_int , pValue : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ReadArea ( Client : S7Object , Area : :: std :: os :: raw :: c_int , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , WordLen : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_WriteArea ( Client : S7Object , Area : :: std :: os :: raw :: c_int , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , WordLen : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ReadMultiVars ( Client : S7Object , Item : PS7DataItem , ItemsCount : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_WriteMultiVars ( Client : S7Object , Item : PS7DataItem , ItemsCount : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_DBRead ( Client : S7Object , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_DBWrite ( Client : S7Object , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_MBRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_MBWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_EBRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_EBWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ABRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ABWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_TMRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_TMWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_CTRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_CTWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ListBlocks ( Client : S7Object , pUsrData : * mut TS7BlocksList ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetAgBlockInfo ( Client : S7Object , BlockType : :: std :: os :: raw :: c_int , BlockNum : :: std :: os :: raw :: c_int , pUsrData : * mut TS7BlockInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPgBlockInfo ( Client : S7Object , pBlock : * mut :: std :: os :: raw :: c_void , pUsrData : * mut TS7BlockInfo , Size : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ListBlocksOfType ( Client : S7Object , BlockType : :: std :: os :: raw :: c_int , pUsrData : * mut TS7BlocksOfType , ItemsCount : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetCpuInfo ( Client : S7Object , pUsrData : * mut TS7CpuInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetCpInfo ( Client : S7Object , pUsrData : * mut TS7CpInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPlcStatus ( Client : S7Object , Status : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPduLength ( Client : S7Object , Requested : * mut :: std :: os :: raw :: c_int , Negotiated : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ErrorText ( Error : :: std :: os :: raw :: c_int , Text : * mut :: std :: os :: raw :: c_char , TextLen : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetConnected ( Client : S7Object , Connected : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: fields of packed structs are not properly aligned, and creating a misaligned reference is undefined behavior (even if that reference is never dereferenced) [INFO] [stderr] [INFO] [stderr] error: reference to packed field is unaligned [INFO] [stderr] --> /opt/rustwide/target/debug/build/snap7-sys-0d9a23a4c7ec91a8/out/bindings.rs:3:7370 [INFO] [stderr] | [INFO] [stderr] 3 | pub type __uint16_t = :: std :: os :: raw :: c_ushort ; pub type word = u16 ; pub type S7Object = usize ; # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7DataItem { pub Area : :: std :: os :: raw :: c_int , pub WordLen : :: std :: os :: raw :: c_int , pub Result : :: std :: os :: raw :: c_int , pub DBNumber : :: std :: os :: raw :: c_int , pub Start : :: std :: os :: raw :: c_int , pub Amount : :: std :: os :: raw :: c_int , pub pdata : * mut :: std :: os :: raw :: c_void , } # [ test ] fn bindgen_test_layout_TS7DataItem ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7DataItem > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( TS7DataItem ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7DataItem > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7DataItem ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Area as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Area ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . WordLen as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( WordLen ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Result as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Result ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . DBNumber as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( DBNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Start as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Start ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Amount as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Amount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . pdata as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( pdata ) ) ) ; } pub type PS7DataItem = * mut TS7DataItem ; # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7BlocksList { pub OBCount : :: std :: os :: raw :: c_int , pub FBCount : :: std :: os :: raw :: c_int , pub FCCount : :: std :: os :: raw :: c_int , pub SFBCount : :: std :: os :: raw :: c_int , pub SFCCount : :: std :: os :: raw :: c_int , pub DBCount : :: std :: os :: raw :: c_int , pub SDBCount : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_TS7BlocksList ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7BlocksList > ( ) , 28usize , concat ! ( "Size of: " , stringify ! ( TS7BlocksList ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7BlocksList > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7BlocksList ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . OBCount as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( OBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . FBCount as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( FBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . FCCount as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( FCCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SFBCount as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SFBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SFCCount as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SFCCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . DBCount as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( DBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SDBCount as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SDBCount ) ) ) ; } # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7BlockInfo { pub BlkType : :: std :: os :: raw :: c_int , pub BlkNumber : :: std :: os :: raw :: c_int , pub BlkLang : :: std :: os :: raw :: c_int , pub BlkFlags : :: std :: os :: raw :: c_int , pub MC7Size : :: std :: os :: raw :: c_int , pub LoadSize : :: std :: os :: raw :: c_int , pub LocalData : :: std :: os :: raw :: c_int , pub SBBLength : :: std :: os :: raw :: c_int , pub CheckSum : :: std :: os :: raw :: c_int , pub Version : :: std :: os :: raw :: c_int , pub CodeDate : [ :: std :: os :: raw :: c_char ; 11usize ] , pub IntfDate : [ :: std :: os :: raw :: c_char ; 11usize ] , pub Author : [ :: std :: os :: raw :: c_char ; 9usize ] , pub Family : [ :: std :: os :: raw :: c_char ; 9usize ] , pub Header : [ :: std :: os :: raw :: c_char ; 9usize ] , } # [ test ] fn bindgen_test_layout_TS7BlockInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7BlockInfo > ( ) , 89usize , concat ! ( "Size of: " , stringify ! ( TS7BlockInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7BlockInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7BlockInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkType as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkType ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkNumber as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkLang as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkLang ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkFlags as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkFlags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . MC7Size as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( MC7Size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . LoadSize as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( LoadSize ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . LocalData as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( LocalData ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . SBBLength as * const _ as usize } , 28usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( SBBLength ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . CheckSum as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( CheckSum ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Version as * const _ as usize } , 36usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Version ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . CodeDate as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( CodeDate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . IntfDate as * const _ as usize } , 51usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( IntfDate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Author as * const _ as usize } , 62usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Author ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Family as * const _ as usize } , 71usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Family ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Header as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Header ) ) ) ; } pub type TS7BlocksOfType = [ word ; 8192usize ] ; # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct TS7CpuInfo { pub ModuleTypeName : [ :: std :: os :: raw :: c_char ; 33usize ] , pub SerialNumber : [ :: std :: os :: raw :: c_char ; 25usize ] , pub ASName : [ :: std :: os :: raw :: c_char ; 25usize ] , pub Copyright : [ :: std :: os :: raw :: c_char ; 27usize ] , pub ModuleName : [ :: std :: os :: raw :: c_char ; 25usize ] , } # [ test ] fn bindgen_test_layout_TS7CpuInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7CpuInfo > ( ) , 135usize , concat ! ( "Size of: " , stringify ! ( TS7CpuInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7CpuInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7CpuInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ModuleTypeName as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ModuleTypeName ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . SerialNumber as * const _ as usize } , 33usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( SerialNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ASName as * const _ as usize } , 58usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ASName ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . Copyright as * const _ as usize } , 83usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( Copyright ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ModuleName as * const _ as usize } , 110usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ModuleName ) ) ) ; } # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7CpInfo { pub MaxPduLengt : :: std :: os :: raw :: c_int , pub MaxConnections : :: std :: os :: raw :: c_int , pub MaxMpiRate : :: std :: os :: raw :: c_int , pub MaxBusRate : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_TS7CpInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7CpInfo > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( TS7CpInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7CpInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7CpInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxPduLengt as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxPduLengt ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxConnections as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxConnections ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxMpiRate as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxMpiRate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxBusRate as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxBusRate ) ) ) ; } extern "C" { pub fn Cli_Create ( ) -> S7Object ; } extern "C" { pub fn Cli_Destroy ( Client : * mut S7Object ) ; } extern "C" { pub fn Cli_ConnectTo ( Client : S7Object , Address : * const :: std :: os :: raw :: c_char , Rack : :: std :: os :: raw :: c_int , Slot : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetConnectionParams ( Client : S7Object , Address : * const :: std :: os :: raw :: c_char , LocalTSAP : word , RemoteTSAP : word ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetConnectionType ( Client : S7Object , ConnectionType : word ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_Disconnect ( Client : S7Object ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetParam ( Client : S7Object , ParamNumber : :: std :: os :: raw :: c_int , pValue : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetParam ( Client : S7Object , ParamNumber : :: std :: os :: raw :: c_int , pValue : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ReadArea ( Client : S7Object , Area : :: std :: os :: raw :: c_int , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , WordLen : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_WriteArea ( Client : S7Object , Area : :: std :: os :: raw :: c_int , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , WordLen : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ReadMultiVars ( Client : S7Object , Item : PS7DataItem , ItemsCount : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_WriteMultiVars ( Client : S7Object , Item : PS7DataItem , ItemsCount : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_DBRead ( Client : S7Object , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_DBWrite ( Client : S7Object , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_MBRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_MBWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_EBRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_EBWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ABRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ABWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_TMRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_TMWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_CTRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_CTWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ListBlocks ( Client : S7Object , pUsrData : * mut TS7BlocksList ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetAgBlockInfo ( Client : S7Object , BlockType : :: std :: os :: raw :: c_int , BlockNum : :: std :: os :: raw :: c_int , pUsrData : * mut TS7BlockInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPgBlockInfo ( Client : S7Object , pBlock : * mut :: std :: os :: raw :: c_void , pUsrData : * mut TS7BlockInfo , Size : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ListBlocksOfType ( Client : S7Object , BlockType : :: std :: os :: raw :: c_int , pUsrData : * mut TS7BlocksOfType , ItemsCount : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetCpuInfo ( Client : S7Object , pUsrData : * mut TS7CpuInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetCpInfo ( Client : S7Object , pUsrData : * mut TS7CpInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPlcStatus ( Client : S7Object , Status : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPduLength ( Client : S7Object , Requested : * mut :: std :: os :: raw :: c_int , Negotiated : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ErrorText ( Error : :: std :: os :: raw :: c_int , Text : * mut :: std :: os :: raw :: c_char , TextLen : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetConnected ( Client : S7Object , Connected : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: fields of packed structs are not properly aligned, and creating a misaligned reference is undefined behavior (even if that reference is never dereferenced) [INFO] [stderr] [INFO] [stderr] error: reference to packed field is unaligned [INFO] [stderr] --> /opt/rustwide/target/debug/build/snap7-sys-0d9a23a4c7ec91a8/out/bindings.rs:3:7602 [INFO] [stderr] | [INFO] [stderr] 3 | pub type __uint16_t = :: std :: os :: raw :: c_ushort ; pub type word = u16 ; pub type S7Object = usize ; # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7DataItem { pub Area : :: std :: os :: raw :: c_int , pub WordLen : :: std :: os :: raw :: c_int , pub Result : :: std :: os :: raw :: c_int , pub DBNumber : :: std :: os :: raw :: c_int , pub Start : :: std :: os :: raw :: c_int , pub Amount : :: std :: os :: raw :: c_int , pub pdata : * mut :: std :: os :: raw :: c_void , } # [ test ] fn bindgen_test_layout_TS7DataItem ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7DataItem > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( TS7DataItem ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7DataItem > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7DataItem ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Area as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Area ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . WordLen as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( WordLen ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Result as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Result ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . DBNumber as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( DBNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Start as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Start ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Amount as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Amount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . pdata as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( pdata ) ) ) ; } pub type PS7DataItem = * mut TS7DataItem ; # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7BlocksList { pub OBCount : :: std :: os :: raw :: c_int , pub FBCount : :: std :: os :: raw :: c_int , pub FCCount : :: std :: os :: raw :: c_int , pub SFBCount : :: std :: os :: raw :: c_int , pub SFCCount : :: std :: os :: raw :: c_int , pub DBCount : :: std :: os :: raw :: c_int , pub SDBCount : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_TS7BlocksList ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7BlocksList > ( ) , 28usize , concat ! ( "Size of: " , stringify ! ( TS7BlocksList ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7BlocksList > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7BlocksList ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . OBCount as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( OBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . FBCount as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( FBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . FCCount as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( FCCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SFBCount as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SFBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SFCCount as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SFCCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . DBCount as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( DBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SDBCount as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SDBCount ) ) ) ; } # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7BlockInfo { pub BlkType : :: std :: os :: raw :: c_int , pub BlkNumber : :: std :: os :: raw :: c_int , pub BlkLang : :: std :: os :: raw :: c_int , pub BlkFlags : :: std :: os :: raw :: c_int , pub MC7Size : :: std :: os :: raw :: c_int , pub LoadSize : :: std :: os :: raw :: c_int , pub LocalData : :: std :: os :: raw :: c_int , pub SBBLength : :: std :: os :: raw :: c_int , pub CheckSum : :: std :: os :: raw :: c_int , pub Version : :: std :: os :: raw :: c_int , pub CodeDate : [ :: std :: os :: raw :: c_char ; 11usize ] , pub IntfDate : [ :: std :: os :: raw :: c_char ; 11usize ] , pub Author : [ :: std :: os :: raw :: c_char ; 9usize ] , pub Family : [ :: std :: os :: raw :: c_char ; 9usize ] , pub Header : [ :: std :: os :: raw :: c_char ; 9usize ] , } # [ test ] fn bindgen_test_layout_TS7BlockInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7BlockInfo > ( ) , 89usize , concat ! ( "Size of: " , stringify ! ( TS7BlockInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7BlockInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7BlockInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkType as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkType ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkNumber as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkLang as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkLang ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkFlags as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkFlags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . MC7Size as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( MC7Size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . LoadSize as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( LoadSize ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . LocalData as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( LocalData ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . SBBLength as * const _ as usize } , 28usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( SBBLength ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . CheckSum as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( CheckSum ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Version as * const _ as usize } , 36usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Version ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . CodeDate as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( CodeDate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . IntfDate as * const _ as usize } , 51usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( IntfDate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Author as * const _ as usize } , 62usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Author ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Family as * const _ as usize } , 71usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Family ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Header as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Header ) ) ) ; } pub type TS7BlocksOfType = [ word ; 8192usize ] ; # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct TS7CpuInfo { pub ModuleTypeName : [ :: std :: os :: raw :: c_char ; 33usize ] , pub SerialNumber : [ :: std :: os :: raw :: c_char ; 25usize ] , pub ASName : [ :: std :: os :: raw :: c_char ; 25usize ] , pub Copyright : [ :: std :: os :: raw :: c_char ; 27usize ] , pub ModuleName : [ :: std :: os :: raw :: c_char ; 25usize ] , } # [ test ] fn bindgen_test_layout_TS7CpuInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7CpuInfo > ( ) , 135usize , concat ! ( "Size of: " , stringify ! ( TS7CpuInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7CpuInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7CpuInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ModuleTypeName as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ModuleTypeName ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . SerialNumber as * const _ as usize } , 33usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( SerialNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ASName as * const _ as usize } , 58usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ASName ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . Copyright as * const _ as usize } , 83usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( Copyright ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ModuleName as * const _ as usize } , 110usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ModuleName ) ) ) ; } # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7CpInfo { pub MaxPduLengt : :: std :: os :: raw :: c_int , pub MaxConnections : :: std :: os :: raw :: c_int , pub MaxMpiRate : :: std :: os :: raw :: c_int , pub MaxBusRate : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_TS7CpInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7CpInfo > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( TS7CpInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7CpInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7CpInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxPduLengt as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxPduLengt ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxConnections as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxConnections ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxMpiRate as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxMpiRate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxBusRate as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxBusRate ) ) ) ; } extern "C" { pub fn Cli_Create ( ) -> S7Object ; } extern "C" { pub fn Cli_Destroy ( Client : * mut S7Object ) ; } extern "C" { pub fn Cli_ConnectTo ( Client : S7Object , Address : * const :: std :: os :: raw :: c_char , Rack : :: std :: os :: raw :: c_int , Slot : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetConnectionParams ( Client : S7Object , Address : * const :: std :: os :: raw :: c_char , LocalTSAP : word , RemoteTSAP : word ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetConnectionType ( Client : S7Object , ConnectionType : word ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_Disconnect ( Client : S7Object ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetParam ( Client : S7Object , ParamNumber : :: std :: os :: raw :: c_int , pValue : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetParam ( Client : S7Object , ParamNumber : :: std :: os :: raw :: c_int , pValue : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ReadArea ( Client : S7Object , Area : :: std :: os :: raw :: c_int , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , WordLen : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_WriteArea ( Client : S7Object , Area : :: std :: os :: raw :: c_int , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , WordLen : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ReadMultiVars ( Client : S7Object , Item : PS7DataItem , ItemsCount : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_WriteMultiVars ( Client : S7Object , Item : PS7DataItem , ItemsCount : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_DBRead ( Client : S7Object , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_DBWrite ( Client : S7Object , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_MBRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_MBWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_EBRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_EBWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ABRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ABWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_TMRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_TMWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_CTRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_CTWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ListBlocks ( Client : S7Object , pUsrData : * mut TS7BlocksList ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetAgBlockInfo ( Client : S7Object , BlockType : :: std :: os :: raw :: c_int , BlockNum : :: std :: os :: raw :: c_int , pUsrData : * mut TS7BlockInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPgBlockInfo ( Client : S7Object , pBlock : * mut :: std :: os :: raw :: c_void , pUsrData : * mut TS7BlockInfo , Size : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ListBlocksOfType ( Client : S7Object , BlockType : :: std :: os :: raw :: c_int , pUsrData : * mut TS7BlocksOfType , ItemsCount : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetCpuInfo ( Client : S7Object , pUsrData : * mut TS7CpuInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetCpInfo ( Client : S7Object , pUsrData : * mut TS7CpInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPlcStatus ( Client : S7Object , Status : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPduLength ( Client : S7Object , Requested : * mut :: std :: os :: raw :: c_int , Negotiated : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ErrorText ( Error : :: std :: os :: raw :: c_int , Text : * mut :: std :: os :: raw :: c_char , TextLen : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetConnected ( Client : S7Object , Connected : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: fields of packed structs are not properly aligned, and creating a misaligned reference is undefined behavior (even if that reference is never dereferenced) [INFO] [stderr] [INFO] [stderr] error: reference to packed field is unaligned [INFO] [stderr] --> /opt/rustwide/target/debug/build/snap7-sys-0d9a23a4c7ec91a8/out/bindings.rs:3:7834 [INFO] [stderr] | [INFO] [stderr] 3 | pub type __uint16_t = :: std :: os :: raw :: c_ushort ; pub type word = u16 ; pub type S7Object = usize ; # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7DataItem { pub Area : :: std :: os :: raw :: c_int , pub WordLen : :: std :: os :: raw :: c_int , pub Result : :: std :: os :: raw :: c_int , pub DBNumber : :: std :: os :: raw :: c_int , pub Start : :: std :: os :: raw :: c_int , pub Amount : :: std :: os :: raw :: c_int , pub pdata : * mut :: std :: os :: raw :: c_void , } # [ test ] fn bindgen_test_layout_TS7DataItem ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7DataItem > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( TS7DataItem ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7DataItem > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7DataItem ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Area as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Area ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . WordLen as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( WordLen ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Result as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Result ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . DBNumber as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( DBNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Start as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Start ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Amount as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Amount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . pdata as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( pdata ) ) ) ; } pub type PS7DataItem = * mut TS7DataItem ; # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7BlocksList { pub OBCount : :: std :: os :: raw :: c_int , pub FBCount : :: std :: os :: raw :: c_int , pub FCCount : :: std :: os :: raw :: c_int , pub SFBCount : :: std :: os :: raw :: c_int , pub SFCCount : :: std :: os :: raw :: c_int , pub DBCount : :: std :: os :: raw :: c_int , pub SDBCount : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_TS7BlocksList ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7BlocksList > ( ) , 28usize , concat ! ( "Size of: " , stringify ! ( TS7BlocksList ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7BlocksList > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7BlocksList ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . OBCount as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( OBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . FBCount as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( FBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . FCCount as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( FCCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SFBCount as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SFBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SFCCount as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SFCCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . DBCount as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( DBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SDBCount as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SDBCount ) ) ) ; } # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7BlockInfo { pub BlkType : :: std :: os :: raw :: c_int , pub BlkNumber : :: std :: os :: raw :: c_int , pub BlkLang : :: std :: os :: raw :: c_int , pub BlkFlags : :: std :: os :: raw :: c_int , pub MC7Size : :: std :: os :: raw :: c_int , pub LoadSize : :: std :: os :: raw :: c_int , pub LocalData : :: std :: os :: raw :: c_int , pub SBBLength : :: std :: os :: raw :: c_int , pub CheckSum : :: std :: os :: raw :: c_int , pub Version : :: std :: os :: raw :: c_int , pub CodeDate : [ :: std :: os :: raw :: c_char ; 11usize ] , pub IntfDate : [ :: std :: os :: raw :: c_char ; 11usize ] , pub Author : [ :: std :: os :: raw :: c_char ; 9usize ] , pub Family : [ :: std :: os :: raw :: c_char ; 9usize ] , pub Header : [ :: std :: os :: raw :: c_char ; 9usize ] , } # [ test ] fn bindgen_test_layout_TS7BlockInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7BlockInfo > ( ) , 89usize , concat ! ( "Size of: " , stringify ! ( TS7BlockInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7BlockInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7BlockInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkType as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkType ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkNumber as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkLang as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkLang ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkFlags as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkFlags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . MC7Size as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( MC7Size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . LoadSize as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( LoadSize ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . LocalData as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( LocalData ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . SBBLength as * const _ as usize } , 28usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( SBBLength ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . CheckSum as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( CheckSum ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Version as * const _ as usize } , 36usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Version ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . CodeDate as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( CodeDate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . IntfDate as * const _ as usize } , 51usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( IntfDate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Author as * const _ as usize } , 62usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Author ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Family as * const _ as usize } , 71usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Family ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Header as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Header ) ) ) ; } pub type TS7BlocksOfType = [ word ; 8192usize ] ; # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct TS7CpuInfo { pub ModuleTypeName : [ :: std :: os :: raw :: c_char ; 33usize ] , pub SerialNumber : [ :: std :: os :: raw :: c_char ; 25usize ] , pub ASName : [ :: std :: os :: raw :: c_char ; 25usize ] , pub Copyright : [ :: std :: os :: raw :: c_char ; 27usize ] , pub ModuleName : [ :: std :: os :: raw :: c_char ; 25usize ] , } # [ test ] fn bindgen_test_layout_TS7CpuInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7CpuInfo > ( ) , 135usize , concat ! ( "Size of: " , stringify ! ( TS7CpuInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7CpuInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7CpuInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ModuleTypeName as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ModuleTypeName ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . SerialNumber as * const _ as usize } , 33usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( SerialNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ASName as * const _ as usize } , 58usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ASName ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . Copyright as * const _ as usize } , 83usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( Copyright ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ModuleName as * const _ as usize } , 110usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ModuleName ) ) ) ; } # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7CpInfo { pub MaxPduLengt : :: std :: os :: raw :: c_int , pub MaxConnections : :: std :: os :: raw :: c_int , pub MaxMpiRate : :: std :: os :: raw :: c_int , pub MaxBusRate : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_TS7CpInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7CpInfo > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( TS7CpInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7CpInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7CpInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxPduLengt as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxPduLengt ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxConnections as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxConnections ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxMpiRate as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxMpiRate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxBusRate as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxBusRate ) ) ) ; } extern "C" { pub fn Cli_Create ( ) -> S7Object ; } extern "C" { pub fn Cli_Destroy ( Client : * mut S7Object ) ; } extern "C" { pub fn Cli_ConnectTo ( Client : S7Object , Address : * const :: std :: os :: raw :: c_char , Rack : :: std :: os :: raw :: c_int , Slot : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetConnectionParams ( Client : S7Object , Address : * const :: std :: os :: raw :: c_char , LocalTSAP : word , RemoteTSAP : word ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetConnectionType ( Client : S7Object , ConnectionType : word ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_Disconnect ( Client : S7Object ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetParam ( Client : S7Object , ParamNumber : :: std :: os :: raw :: c_int , pValue : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetParam ( Client : S7Object , ParamNumber : :: std :: os :: raw :: c_int , pValue : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ReadArea ( Client : S7Object , Area : :: std :: os :: raw :: c_int , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , WordLen : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_WriteArea ( Client : S7Object , Area : :: std :: os :: raw :: c_int , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , WordLen : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ReadMultiVars ( Client : S7Object , Item : PS7DataItem , ItemsCount : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_WriteMultiVars ( Client : S7Object , Item : PS7DataItem , ItemsCount : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_DBRead ( Client : S7Object , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_DBWrite ( Client : S7Object , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_MBRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_MBWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_EBRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_EBWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ABRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ABWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_TMRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_TMWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_CTRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_CTWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ListBlocks ( Client : S7Object , pUsrData : * mut TS7BlocksList ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetAgBlockInfo ( Client : S7Object , BlockType : :: std :: os :: raw :: c_int , BlockNum : :: std :: os :: raw :: c_int , pUsrData : * mut TS7BlockInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPgBlockInfo ( Client : S7Object , pBlock : * mut :: std :: os :: raw :: c_void , pUsrData : * mut TS7BlockInfo , Size : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ListBlocksOfType ( Client : S7Object , BlockType : :: std :: os :: raw :: c_int , pUsrData : * mut TS7BlocksOfType , ItemsCount : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetCpuInfo ( Client : S7Object , pUsrData : * mut TS7CpuInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetCpInfo ( Client : S7Object , pUsrData : * mut TS7CpInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPlcStatus ( Client : S7Object , Status : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPduLength ( Client : S7Object , Requested : * mut :: std :: os :: raw :: c_int , Negotiated : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ErrorText ( Error : :: std :: os :: raw :: c_int , Text : * mut :: std :: os :: raw :: c_char , TextLen : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetConnected ( Client : S7Object , Connected : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: fields of packed structs are not properly aligned, and creating a misaligned reference is undefined behavior (even if that reference is never dereferenced) [INFO] [stderr] [INFO] [stderr] warning: unused `#[macro_use]` import [INFO] [stderr] --> examples/simple.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | #[macro_use] [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] error: reference to packed field is unaligned [INFO] [stderr] --> /opt/rustwide/target/debug/build/snap7-sys-0d9a23a4c7ec91a8/out/bindings.rs:3:8064 [INFO] [stderr] | [INFO] [stderr] 3 | pub type __uint16_t = :: std :: os :: raw :: c_ushort ; pub type word = u16 ; pub type S7Object = usize ; # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7DataItem { pub Area : :: std :: os :: raw :: c_int , pub WordLen : :: std :: os :: raw :: c_int , pub Result : :: std :: os :: raw :: c_int , pub DBNumber : :: std :: os :: raw :: c_int , pub Start : :: std :: os :: raw :: c_int , pub Amount : :: std :: os :: raw :: c_int , pub pdata : * mut :: std :: os :: raw :: c_void , } # [ test ] fn bindgen_test_layout_TS7DataItem ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7DataItem > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( TS7DataItem ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7DataItem > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7DataItem ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Area as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Area ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . WordLen as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( WordLen ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Result as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Result ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . DBNumber as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( DBNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Start as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Start ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Amount as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Amount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . pdata as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( pdata ) ) ) ; } pub type PS7DataItem = * mut TS7DataItem ; # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7BlocksList { pub OBCount : :: std :: os :: raw :: c_int , pub FBCount : :: std :: os :: raw :: c_int , pub FCCount : :: std :: os :: raw :: c_int , pub SFBCount : :: std :: os :: raw :: c_int , pub SFCCount : :: std :: os :: raw :: c_int , pub DBCount : :: std :: os :: raw :: c_int , pub SDBCount : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_TS7BlocksList ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7BlocksList > ( ) , 28usize , concat ! ( "Size of: " , stringify ! ( TS7BlocksList ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7BlocksList > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7BlocksList ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . OBCount as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( OBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . FBCount as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( FBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . FCCount as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( FCCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SFBCount as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SFBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SFCCount as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SFCCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . DBCount as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( DBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SDBCount as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SDBCount ) ) ) ; } # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7BlockInfo { pub BlkType : :: std :: os :: raw :: c_int , pub BlkNumber : :: std :: os :: raw :: c_int , pub BlkLang : :: std :: os :: raw :: c_int , pub BlkFlags : :: std :: os :: raw :: c_int , pub MC7Size : :: std :: os :: raw :: c_int , pub LoadSize : :: std :: os :: raw :: c_int , pub LocalData : :: std :: os :: raw :: c_int , pub SBBLength : :: std :: os :: raw :: c_int , pub CheckSum : :: std :: os :: raw :: c_int , pub Version : :: std :: os :: raw :: c_int , pub CodeDate : [ :: std :: os :: raw :: c_char ; 11usize ] , pub IntfDate : [ :: std :: os :: raw :: c_char ; 11usize ] , pub Author : [ :: std :: os :: raw :: c_char ; 9usize ] , pub Family : [ :: std :: os :: raw :: c_char ; 9usize ] , pub Header : [ :: std :: os :: raw :: c_char ; 9usize ] , } # [ test ] fn bindgen_test_layout_TS7BlockInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7BlockInfo > ( ) , 89usize , concat ! ( "Size of: " , stringify ! ( TS7BlockInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7BlockInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7BlockInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkType as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkType ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkNumber as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkLang as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkLang ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkFlags as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkFlags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . MC7Size as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( MC7Size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . LoadSize as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( LoadSize ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . LocalData as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( LocalData ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . SBBLength as * const _ as usize } , 28usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( SBBLength ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . CheckSum as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( CheckSum ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Version as * const _ as usize } , 36usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Version ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . CodeDate as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( CodeDate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . IntfDate as * const _ as usize } , 51usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( IntfDate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Author as * const _ as usize } , 62usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Author ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Family as * const _ as usize } , 71usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Family ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Header as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Header ) ) ) ; } pub type TS7BlocksOfType = [ word ; 8192usize ] ; # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct TS7CpuInfo { pub ModuleTypeName : [ :: std :: os :: raw :: c_char ; 33usize ] , pub SerialNumber : [ :: std :: os :: raw :: c_char ; 25usize ] , pub ASName : [ :: std :: os :: raw :: c_char ; 25usize ] , pub Copyright : [ :: std :: os :: raw :: c_char ; 27usize ] , pub ModuleName : [ :: std :: os :: raw :: c_char ; 25usize ] , } # [ test ] fn bindgen_test_layout_TS7CpuInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7CpuInfo > ( ) , 135usize , concat ! ( "Size of: " , stringify ! ( TS7CpuInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7CpuInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7CpuInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ModuleTypeName as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ModuleTypeName ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . SerialNumber as * const _ as usize } , 33usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( SerialNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ASName as * const _ as usize } , 58usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ASName ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . Copyright as * const _ as usize } , 83usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( Copyright ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ModuleName as * const _ as usize } , 110usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ModuleName ) ) ) ; } # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7CpInfo { pub MaxPduLengt : :: std :: os :: raw :: c_int , pub MaxConnections : :: std :: os :: raw :: c_int , pub MaxMpiRate : :: std :: os :: raw :: c_int , pub MaxBusRate : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_TS7CpInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7CpInfo > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( TS7CpInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7CpInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7CpInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxPduLengt as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxPduLengt ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxConnections as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxConnections ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxMpiRate as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxMpiRate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxBusRate as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxBusRate ) ) ) ; } extern "C" { pub fn Cli_Create ( ) -> S7Object ; } extern "C" { pub fn Cli_Destroy ( Client : * mut S7Object ) ; } extern "C" { pub fn Cli_ConnectTo ( Client : S7Object , Address : * const :: std :: os :: raw :: c_char , Rack : :: std :: os :: raw :: c_int , Slot : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetConnectionParams ( Client : S7Object , Address : * const :: std :: os :: raw :: c_char , LocalTSAP : word , RemoteTSAP : word ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetConnectionType ( Client : S7Object , ConnectionType : word ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_Disconnect ( Client : S7Object ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetParam ( Client : S7Object , ParamNumber : :: std :: os :: raw :: c_int , pValue : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetParam ( Client : S7Object , ParamNumber : :: std :: os :: raw :: c_int , pValue : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ReadArea ( Client : S7Object , Area : :: std :: os :: raw :: c_int , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , WordLen : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_WriteArea ( Client : S7Object , Area : :: std :: os :: raw :: c_int , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , WordLen : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ReadMultiVars ( Client : S7Object , Item : PS7DataItem , ItemsCount : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_WriteMultiVars ( Client : S7Object , Item : PS7DataItem , ItemsCount : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_DBRead ( Client : S7Object , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_DBWrite ( Client : S7Object , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_MBRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_MBWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_EBRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_EBWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ABRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ABWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_TMRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_TMWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_CTRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_CTWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ListBlocks ( Client : S7Object , pUsrData : * mut TS7BlocksList ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetAgBlockInfo ( Client : S7Object , BlockType : :: std :: os :: raw :: c_int , BlockNum : :: std :: os :: raw :: c_int , pUsrData : * mut TS7BlockInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPgBlockInfo ( Client : S7Object , pBlock : * mut :: std :: os :: raw :: c_void , pUsrData : * mut TS7BlockInfo , Size : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ListBlocksOfType ( Client : S7Object , BlockType : :: std :: os :: raw :: c_int , pUsrData : * mut TS7BlocksOfType , ItemsCount : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetCpuInfo ( Client : S7Object , pUsrData : * mut TS7CpuInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetCpInfo ( Client : S7Object , pUsrData : * mut TS7CpInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPlcStatus ( Client : S7Object , Status : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPduLength ( Client : S7Object , Requested : * mut :: std :: os :: raw :: c_int , Negotiated : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ErrorText ( Error : :: std :: os :: raw :: c_int , Text : * mut :: std :: os :: raw :: c_char , TextLen : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetConnected ( Client : S7Object , Connected : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: fields of packed structs are not properly aligned, and creating a misaligned reference is undefined behavior (even if that reference is never dereferenced) [INFO] [stderr] [INFO] [stderr] error: reference to packed field is unaligned [INFO] [stderr] --> /opt/rustwide/target/debug/build/snap7-sys-0d9a23a4c7ec91a8/out/bindings.rs:3:11941 [INFO] [stderr] | [INFO] [stderr] 3 | pub type __uint16_t = :: std :: os :: raw :: c_ushort ; pub type word = u16 ; pub type S7Object = usize ; # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7DataItem { pub Area : :: std :: os :: raw :: c_int , pub WordLen : :: std :: os :: raw :: c_int , pub Result : :: std :: os :: raw :: c_int , pub DBNumber : :: std :: os :: raw :: c_int , pub Start : :: std :: os :: raw :: c_int , pub Amount : :: std :: os :: raw :: c_int , pub pdata : * mut :: std :: os :: raw :: c_void , } # [ test ] fn bindgen_test_layout_TS7DataItem ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7DataItem > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( TS7DataItem ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7DataItem > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7DataItem ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Area as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Area ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . WordLen as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( WordLen ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Result as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Result ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . DBNumber as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( DBNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Start as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Start ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Amount as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Amount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . pdata as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( pdata ) ) ) ; } pub type PS7DataItem = * mut TS7DataItem ; # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7BlocksList { pub OBCount : :: std :: os :: raw :: c_int , pub FBCount : :: std :: os :: raw :: c_int , pub FCCount : :: std :: os :: raw :: c_int , pub SFBCount : :: std :: os :: raw :: c_int , pub SFCCount : :: std :: os :: raw :: c_int , pub DBCount : :: std :: os :: raw :: c_int , pub SDBCount : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_TS7BlocksList ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7BlocksList > ( ) , 28usize , concat ! ( "Size of: " , stringify ! ( TS7BlocksList ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7BlocksList > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7BlocksList ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . OBCount as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( OBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . FBCount as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( FBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . FCCount as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( FCCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SFBCount as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SFBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SFCCount as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SFCCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . DBCount as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( DBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SDBCount as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SDBCount ) ) ) ; } # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7BlockInfo { pub BlkType : :: std :: os :: raw :: c_int , pub BlkNumber : :: std :: os :: raw :: c_int , pub BlkLang : :: std :: os :: raw :: c_int , pub BlkFlags : :: std :: os :: raw :: c_int , pub MC7Size : :: std :: os :: raw :: c_int , pub LoadSize : :: std :: os :: raw :: c_int , pub LocalData : :: std :: os :: raw :: c_int , pub SBBLength : :: std :: os :: raw :: c_int , pub CheckSum : :: std :: os :: raw :: c_int , pub Version : :: std :: os :: raw :: c_int , pub CodeDate : [ :: std :: os :: raw :: c_char ; 11usize ] , pub IntfDate : [ :: std :: os :: raw :: c_char ; 11usize ] , pub Author : [ :: std :: os :: raw :: c_char ; 9usize ] , pub Family : [ :: std :: os :: raw :: c_char ; 9usize ] , pub Header : [ :: std :: os :: raw :: c_char ; 9usize ] , } # [ test ] fn bindgen_test_layout_TS7BlockInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7BlockInfo > ( ) , 89usize , concat ! ( "Size of: " , stringify ! ( TS7BlockInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7BlockInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7BlockInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkType as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkType ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkNumber as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkLang as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkLang ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkFlags as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkFlags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . MC7Size as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( MC7Size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . LoadSize as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( LoadSize ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . LocalData as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( LocalData ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . SBBLength as * const _ as usize } , 28usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( SBBLength ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . CheckSum as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( CheckSum ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Version as * const _ as usize } , 36usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Version ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . CodeDate as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( CodeDate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . IntfDate as * const _ as usize } , 51usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( IntfDate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Author as * const _ as usize } , 62usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Author ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Family as * const _ as usize } , 71usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Family ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Header as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Header ) ) ) ; } pub type TS7BlocksOfType = [ word ; 8192usize ] ; # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct TS7CpuInfo { pub ModuleTypeName : [ :: std :: os :: raw :: c_char ; 33usize ] , pub SerialNumber : [ :: std :: os :: raw :: c_char ; 25usize ] , pub ASName : [ :: std :: os :: raw :: c_char ; 25usize ] , pub Copyright : [ :: std :: os :: raw :: c_char ; 27usize ] , pub ModuleName : [ :: std :: os :: raw :: c_char ; 25usize ] , } # [ test ] fn bindgen_test_layout_TS7CpuInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7CpuInfo > ( ) , 135usize , concat ! ( "Size of: " , stringify ! ( TS7CpuInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7CpuInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7CpuInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ModuleTypeName as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ModuleTypeName ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . SerialNumber as * const _ as usize } , 33usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( SerialNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ASName as * const _ as usize } , 58usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ASName ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . Copyright as * const _ as usize } , 83usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( Copyright ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ModuleName as * const _ as usize } , 110usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ModuleName ) ) ) ; } # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7CpInfo { pub MaxPduLengt : :: std :: os :: raw :: c_int , pub MaxConnections : :: std :: os :: raw :: c_int , pub MaxMpiRate : :: std :: os :: raw :: c_int , pub MaxBusRate : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_TS7CpInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7CpInfo > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( TS7CpInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7CpInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7CpInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxPduLengt as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxPduLengt ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxConnections as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxConnections ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxMpiRate as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxMpiRate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxBusRate as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxBusRate ) ) ) ; } extern "C" { pub fn Cli_Create ( ) -> S7Object ; } extern "C" { pub fn Cli_Destroy ( Client : * mut S7Object ) ; } extern "C" { pub fn Cli_ConnectTo ( Client : S7Object , Address : * const :: std :: os :: raw :: c_char , Rack : :: std :: os :: raw :: c_int , Slot : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetConnectionParams ( Client : S7Object , Address : * const :: std :: os :: raw :: c_char , LocalTSAP : word , RemoteTSAP : word ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetConnectionType ( Client : S7Object , ConnectionType : word ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_Disconnect ( Client : S7Object ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetParam ( Client : S7Object , ParamNumber : :: std :: os :: raw :: c_int , pValue : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetParam ( Client : S7Object , ParamNumber : :: std :: os :: raw :: c_int , pValue : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ReadArea ( Client : S7Object , Area : :: std :: os :: raw :: c_int , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , WordLen : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_WriteArea ( Client : S7Object , Area : :: std :: os :: raw :: c_int , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , WordLen : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ReadMultiVars ( Client : S7Object , Item : PS7DataItem , ItemsCount : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_WriteMultiVars ( Client : S7Object , Item : PS7DataItem , ItemsCount : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_DBRead ( Client : S7Object , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_DBWrite ( Client : S7Object , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_MBRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_MBWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_EBRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_EBWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ABRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ABWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_TMRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_TMWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_CTRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_CTWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ListBlocks ( Client : S7Object , pUsrData : * mut TS7BlocksList ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetAgBlockInfo ( Client : S7Object , BlockType : :: std :: os :: raw :: c_int , BlockNum : :: std :: os :: raw :: c_int , pUsrData : * mut TS7BlockInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPgBlockInfo ( Client : S7Object , pBlock : * mut :: std :: os :: raw :: c_void , pUsrData : * mut TS7BlockInfo , Size : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ListBlocksOfType ( Client : S7Object , BlockType : :: std :: os :: raw :: c_int , pUsrData : * mut TS7BlocksOfType , ItemsCount : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetCpuInfo ( Client : S7Object , pUsrData : * mut TS7CpuInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetCpInfo ( Client : S7Object , pUsrData : * mut TS7CpInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPlcStatus ( Client : S7Object , Status : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPduLength ( Client : S7Object , Requested : * mut :: std :: os :: raw :: c_int , Negotiated : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ErrorText ( Error : :: std :: os :: raw :: c_int , Text : * mut :: std :: os :: raw :: c_char , TextLen : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetConnected ( Client : S7Object , Connected : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: fields of packed structs are not properly aligned, and creating a misaligned reference is undefined behavior (even if that reference is never dereferenced) [INFO] [stderr] [INFO] [stderr] error: reference to packed field is unaligned [INFO] [stderr] --> /opt/rustwide/target/debug/build/snap7-sys-0d9a23a4c7ec91a8/out/bindings.rs:3:12170 [INFO] [stderr] | [INFO] [stderr] 3 | pub type __uint16_t = :: std :: os :: raw :: c_ushort ; pub type word = u16 ; pub type S7Object = usize ; # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7DataItem { pub Area : :: std :: os :: raw :: c_int , pub WordLen : :: std :: os :: raw :: c_int , pub Result : :: std :: os :: raw :: c_int , pub DBNumber : :: std :: os :: raw :: c_int , pub Start : :: std :: os :: raw :: c_int , pub Amount : :: std :: os :: raw :: c_int , pub pdata : * mut :: std :: os :: raw :: c_void , } # [ test ] fn bindgen_test_layout_TS7DataItem ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7DataItem > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( TS7DataItem ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7DataItem > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7DataItem ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Area as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Area ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . WordLen as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( WordLen ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Result as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Result ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . DBNumber as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( DBNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Start as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Start ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Amount as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Amount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . pdata as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( pdata ) ) ) ; } pub type PS7DataItem = * mut TS7DataItem ; # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7BlocksList { pub OBCount : :: std :: os :: raw :: c_int , pub FBCount : :: std :: os :: raw :: c_int , pub FCCount : :: std :: os :: raw :: c_int , pub SFBCount : :: std :: os :: raw :: c_int , pub SFCCount : :: std :: os :: raw :: c_int , pub DBCount : :: std :: os :: raw :: c_int , pub SDBCount : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_TS7BlocksList ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7BlocksList > ( ) , 28usize , concat ! ( "Size of: " , stringify ! ( TS7BlocksList ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7BlocksList > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7BlocksList ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . OBCount as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( OBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . FBCount as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( FBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . FCCount as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( FCCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SFBCount as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SFBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SFCCount as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SFCCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . DBCount as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( DBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SDBCount as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SDBCount ) ) ) ; } # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7BlockInfo { pub BlkType : :: std :: os :: raw :: c_int , pub BlkNumber : :: std :: os :: raw :: c_int , pub BlkLang : :: std :: os :: raw :: c_int , pub BlkFlags : :: std :: os :: raw :: c_int , pub MC7Size : :: std :: os :: raw :: c_int , pub LoadSize : :: std :: os :: raw :: c_int , pub LocalData : :: std :: os :: raw :: c_int , pub SBBLength : :: std :: os :: raw :: c_int , pub CheckSum : :: std :: os :: raw :: c_int , pub Version : :: std :: os :: raw :: c_int , pub CodeDate : [ :: std :: os :: raw :: c_char ; 11usize ] , pub IntfDate : [ :: std :: os :: raw :: c_char ; 11usize ] , pub Author : [ :: std :: os :: raw :: c_char ; 9usize ] , pub Family : [ :: std :: os :: raw :: c_char ; 9usize ] , pub Header : [ :: std :: os :: raw :: c_char ; 9usize ] , } # [ test ] fn bindgen_test_layout_TS7BlockInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7BlockInfo > ( ) , 89usize , concat ! ( "Size of: " , stringify ! ( TS7BlockInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7BlockInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7BlockInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkType as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkType ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkNumber as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkLang as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkLang ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkFlags as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkFlags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . MC7Size as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( MC7Size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . LoadSize as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( LoadSize ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . LocalData as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( LocalData ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . SBBLength as * const _ as usize } , 28usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( SBBLength ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . CheckSum as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( CheckSum ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Version as * const _ as usize } , 36usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Version ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . CodeDate as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( CodeDate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . IntfDate as * const _ as usize } , 51usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( IntfDate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Author as * const _ as usize } , 62usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Author ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Family as * const _ as usize } , 71usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Family ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Header as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Header ) ) ) ; } pub type TS7BlocksOfType = [ word ; 8192usize ] ; # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct TS7CpuInfo { pub ModuleTypeName : [ :: std :: os :: raw :: c_char ; 33usize ] , pub SerialNumber : [ :: std :: os :: raw :: c_char ; 25usize ] , pub ASName : [ :: std :: os :: raw :: c_char ; 25usize ] , pub Copyright : [ :: std :: os :: raw :: c_char ; 27usize ] , pub ModuleName : [ :: std :: os :: raw :: c_char ; 25usize ] , } # [ test ] fn bindgen_test_layout_TS7CpuInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7CpuInfo > ( ) , 135usize , concat ! ( "Size of: " , stringify ! ( TS7CpuInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7CpuInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7CpuInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ModuleTypeName as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ModuleTypeName ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . SerialNumber as * const _ as usize } , 33usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( SerialNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ASName as * const _ as usize } , 58usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ASName ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . Copyright as * const _ as usize } , 83usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( Copyright ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ModuleName as * const _ as usize } , 110usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ModuleName ) ) ) ; } # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7CpInfo { pub MaxPduLengt : :: std :: os :: raw :: c_int , pub MaxConnections : :: std :: os :: raw :: c_int , pub MaxMpiRate : :: std :: os :: raw :: c_int , pub MaxBusRate : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_TS7CpInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7CpInfo > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( TS7CpInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7CpInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7CpInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxPduLengt as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxPduLengt ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxConnections as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxConnections ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxMpiRate as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxMpiRate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxBusRate as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxBusRate ) ) ) ; } extern "C" { pub fn Cli_Create ( ) -> S7Object ; } extern "C" { pub fn Cli_Destroy ( Client : * mut S7Object ) ; } extern "C" { pub fn Cli_ConnectTo ( Client : S7Object , Address : * const :: std :: os :: raw :: c_char , Rack : :: std :: os :: raw :: c_int , Slot : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetConnectionParams ( Client : S7Object , Address : * const :: std :: os :: raw :: c_char , LocalTSAP : word , RemoteTSAP : word ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetConnectionType ( Client : S7Object , ConnectionType : word ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_Disconnect ( Client : S7Object ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetParam ( Client : S7Object , ParamNumber : :: std :: os :: raw :: c_int , pValue : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetParam ( Client : S7Object , ParamNumber : :: std :: os :: raw :: c_int , pValue : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ReadArea ( Client : S7Object , Area : :: std :: os :: raw :: c_int , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , WordLen : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_WriteArea ( Client : S7Object , Area : :: std :: os :: raw :: c_int , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , WordLen : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ReadMultiVars ( Client : S7Object , Item : PS7DataItem , ItemsCount : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_WriteMultiVars ( Client : S7Object , Item : PS7DataItem , ItemsCount : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_DBRead ( Client : S7Object , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_DBWrite ( Client : S7Object , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_MBRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_MBWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_EBRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_EBWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ABRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ABWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_TMRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_TMWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_CTRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_CTWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ListBlocks ( Client : S7Object , pUsrData : * mut TS7BlocksList ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetAgBlockInfo ( Client : S7Object , BlockType : :: std :: os :: raw :: c_int , BlockNum : :: std :: os :: raw :: c_int , pUsrData : * mut TS7BlockInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPgBlockInfo ( Client : S7Object , pBlock : * mut :: std :: os :: raw :: c_void , pUsrData : * mut TS7BlockInfo , Size : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ListBlocksOfType ( Client : S7Object , BlockType : :: std :: os :: raw :: c_int , pUsrData : * mut TS7BlocksOfType , ItemsCount : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetCpuInfo ( Client : S7Object , pUsrData : * mut TS7CpuInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetCpInfo ( Client : S7Object , pUsrData : * mut TS7CpInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPlcStatus ( Client : S7Object , Status : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPduLength ( Client : S7Object , Requested : * mut :: std :: os :: raw :: c_int , Negotiated : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ErrorText ( Error : :: std :: os :: raw :: c_int , Text : * mut :: std :: os :: raw :: c_char , TextLen : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetConnected ( Client : S7Object , Connected : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: fields of packed structs are not properly aligned, and creating a misaligned reference is undefined behavior (even if that reference is never dereferenced) [INFO] [stderr] [INFO] [stderr] error: reference to packed field is unaligned [INFO] [stderr] --> /opt/rustwide/target/debug/build/snap7-sys-0d9a23a4c7ec91a8/out/bindings.rs:3:12405 [INFO] [stderr] | [INFO] [stderr] 3 | pub type __uint16_t = :: std :: os :: raw :: c_ushort ; pub type word = u16 ; pub type S7Object = usize ; # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7DataItem { pub Area : :: std :: os :: raw :: c_int , pub WordLen : :: std :: os :: raw :: c_int , pub Result : :: std :: os :: raw :: c_int , pub DBNumber : :: std :: os :: raw :: c_int , pub Start : :: std :: os :: raw :: c_int , pub Amount : :: std :: os :: raw :: c_int , pub pdata : * mut :: std :: os :: raw :: c_void , } # [ test ] fn bindgen_test_layout_TS7DataItem ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7DataItem > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( TS7DataItem ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7DataItem > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7DataItem ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Area as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Area ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . WordLen as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( WordLen ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Result as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Result ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . DBNumber as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( DBNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Start as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Start ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Amount as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Amount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . pdata as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( pdata ) ) ) ; } pub type PS7DataItem = * mut TS7DataItem ; # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7BlocksList { pub OBCount : :: std :: os :: raw :: c_int , pub FBCount : :: std :: os :: raw :: c_int , pub FCCount : :: std :: os :: raw :: c_int , pub SFBCount : :: std :: os :: raw :: c_int , pub SFCCount : :: std :: os :: raw :: c_int , pub DBCount : :: std :: os :: raw :: c_int , pub SDBCount : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_TS7BlocksList ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7BlocksList > ( ) , 28usize , concat ! ( "Size of: " , stringify ! ( TS7BlocksList ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7BlocksList > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7BlocksList ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . OBCount as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( OBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . FBCount as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( FBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . FCCount as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( FCCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SFBCount as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SFBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SFCCount as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SFCCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . DBCount as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( DBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SDBCount as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SDBCount ) ) ) ; } # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7BlockInfo { pub BlkType : :: std :: os :: raw :: c_int , pub BlkNumber : :: std :: os :: raw :: c_int , pub BlkLang : :: std :: os :: raw :: c_int , pub BlkFlags : :: std :: os :: raw :: c_int , pub MC7Size : :: std :: os :: raw :: c_int , pub LoadSize : :: std :: os :: raw :: c_int , pub LocalData : :: std :: os :: raw :: c_int , pub SBBLength : :: std :: os :: raw :: c_int , pub CheckSum : :: std :: os :: raw :: c_int , pub Version : :: std :: os :: raw :: c_int , pub CodeDate : [ :: std :: os :: raw :: c_char ; 11usize ] , pub IntfDate : [ :: std :: os :: raw :: c_char ; 11usize ] , pub Author : [ :: std :: os :: raw :: c_char ; 9usize ] , pub Family : [ :: std :: os :: raw :: c_char ; 9usize ] , pub Header : [ :: std :: os :: raw :: c_char ; 9usize ] , } # [ test ] fn bindgen_test_layout_TS7BlockInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7BlockInfo > ( ) , 89usize , concat ! ( "Size of: " , stringify ! ( TS7BlockInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7BlockInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7BlockInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkType as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkType ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkNumber as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkLang as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkLang ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkFlags as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkFlags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . MC7Size as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( MC7Size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . LoadSize as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( LoadSize ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . LocalData as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( LocalData ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . SBBLength as * const _ as usize } , 28usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( SBBLength ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . CheckSum as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( CheckSum ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Version as * const _ as usize } , 36usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Version ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . CodeDate as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( CodeDate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . IntfDate as * const _ as usize } , 51usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( IntfDate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Author as * const _ as usize } , 62usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Author ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Family as * const _ as usize } , 71usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Family ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Header as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Header ) ) ) ; } pub type TS7BlocksOfType = [ word ; 8192usize ] ; # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct TS7CpuInfo { pub ModuleTypeName : [ :: std :: os :: raw :: c_char ; 33usize ] , pub SerialNumber : [ :: std :: os :: raw :: c_char ; 25usize ] , pub ASName : [ :: std :: os :: raw :: c_char ; 25usize ] , pub Copyright : [ :: std :: os :: raw :: c_char ; 27usize ] , pub ModuleName : [ :: std :: os :: raw :: c_char ; 25usize ] , } # [ test ] fn bindgen_test_layout_TS7CpuInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7CpuInfo > ( ) , 135usize , concat ! ( "Size of: " , stringify ! ( TS7CpuInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7CpuInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7CpuInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ModuleTypeName as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ModuleTypeName ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . SerialNumber as * const _ as usize } , 33usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( SerialNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ASName as * const _ as usize } , 58usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ASName ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . Copyright as * const _ as usize } , 83usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( Copyright ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ModuleName as * const _ as usize } , 110usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ModuleName ) ) ) ; } # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7CpInfo { pub MaxPduLengt : :: std :: os :: raw :: c_int , pub MaxConnections : :: std :: os :: raw :: c_int , pub MaxMpiRate : :: std :: os :: raw :: c_int , pub MaxBusRate : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_TS7CpInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7CpInfo > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( TS7CpInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7CpInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7CpInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxPduLengt as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxPduLengt ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxConnections as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxConnections ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxMpiRate as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxMpiRate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxBusRate as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxBusRate ) ) ) ; } extern "C" { pub fn Cli_Create ( ) -> S7Object ; } extern "C" { pub fn Cli_Destroy ( Client : * mut S7Object ) ; } extern "C" { pub fn Cli_ConnectTo ( Client : S7Object , Address : * const :: std :: os :: raw :: c_char , Rack : :: std :: os :: raw :: c_int , Slot : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetConnectionParams ( Client : S7Object , Address : * const :: std :: os :: raw :: c_char , LocalTSAP : word , RemoteTSAP : word ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetConnectionType ( Client : S7Object , ConnectionType : word ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_Disconnect ( Client : S7Object ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetParam ( Client : S7Object , ParamNumber : :: std :: os :: raw :: c_int , pValue : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetParam ( Client : S7Object , ParamNumber : :: std :: os :: raw :: c_int , pValue : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ReadArea ( Client : S7Object , Area : :: std :: os :: raw :: c_int , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , WordLen : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_WriteArea ( Client : S7Object , Area : :: std :: os :: raw :: c_int , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , WordLen : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ReadMultiVars ( Client : S7Object , Item : PS7DataItem , ItemsCount : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_WriteMultiVars ( Client : S7Object , Item : PS7DataItem , ItemsCount : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_DBRead ( Client : S7Object , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_DBWrite ( Client : S7Object , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_MBRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_MBWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_EBRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_EBWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ABRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ABWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_TMRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_TMWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_CTRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_CTWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ListBlocks ( Client : S7Object , pUsrData : * mut TS7BlocksList ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetAgBlockInfo ( Client : S7Object , BlockType : :: std :: os :: raw :: c_int , BlockNum : :: std :: os :: raw :: c_int , pUsrData : * mut TS7BlockInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPgBlockInfo ( Client : S7Object , pBlock : * mut :: std :: os :: raw :: c_void , pUsrData : * mut TS7BlockInfo , Size : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ListBlocksOfType ( Client : S7Object , BlockType : :: std :: os :: raw :: c_int , pUsrData : * mut TS7BlocksOfType , ItemsCount : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetCpuInfo ( Client : S7Object , pUsrData : * mut TS7CpuInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetCpInfo ( Client : S7Object , pUsrData : * mut TS7CpInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPlcStatus ( Client : S7Object , Status : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPduLength ( Client : S7Object , Requested : * mut :: std :: os :: raw :: c_int , Negotiated : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ErrorText ( Error : :: std :: os :: raw :: c_int , Text : * mut :: std :: os :: raw :: c_char , TextLen : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetConnected ( Client : S7Object , Connected : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: fields of packed structs are not properly aligned, and creating a misaligned reference is undefined behavior (even if that reference is never dereferenced) [INFO] [stderr] [INFO] [stderr] error: reference to packed field is unaligned [INFO] [stderr] --> /opt/rustwide/target/debug/build/snap7-sys-0d9a23a4c7ec91a8/out/bindings.rs:3:12632 [INFO] [stderr] | [INFO] [stderr] 3 | pub type __uint16_t = :: std :: os :: raw :: c_ushort ; pub type word = u16 ; pub type S7Object = usize ; # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7DataItem { pub Area : :: std :: os :: raw :: c_int , pub WordLen : :: std :: os :: raw :: c_int , pub Result : :: std :: os :: raw :: c_int , pub DBNumber : :: std :: os :: raw :: c_int , pub Start : :: std :: os :: raw :: c_int , pub Amount : :: std :: os :: raw :: c_int , pub pdata : * mut :: std :: os :: raw :: c_void , } # [ test ] fn bindgen_test_layout_TS7DataItem ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7DataItem > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( TS7DataItem ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7DataItem > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7DataItem ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Area as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Area ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . WordLen as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( WordLen ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Result as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Result ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . DBNumber as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( DBNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Start as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Start ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . Amount as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( Amount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7DataItem > ( ) ) ) . pdata as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7DataItem ) , "::" , stringify ! ( pdata ) ) ) ; } pub type PS7DataItem = * mut TS7DataItem ; # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7BlocksList { pub OBCount : :: std :: os :: raw :: c_int , pub FBCount : :: std :: os :: raw :: c_int , pub FCCount : :: std :: os :: raw :: c_int , pub SFBCount : :: std :: os :: raw :: c_int , pub SFCCount : :: std :: os :: raw :: c_int , pub DBCount : :: std :: os :: raw :: c_int , pub SDBCount : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_TS7BlocksList ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7BlocksList > ( ) , 28usize , concat ! ( "Size of: " , stringify ! ( TS7BlocksList ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7BlocksList > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7BlocksList ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . OBCount as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( OBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . FBCount as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( FBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . FCCount as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( FCCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SFBCount as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SFBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SFCCount as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SFCCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . DBCount as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( DBCount ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlocksList > ( ) ) ) . SDBCount as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlocksList ) , "::" , stringify ! ( SDBCount ) ) ) ; } # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7BlockInfo { pub BlkType : :: std :: os :: raw :: c_int , pub BlkNumber : :: std :: os :: raw :: c_int , pub BlkLang : :: std :: os :: raw :: c_int , pub BlkFlags : :: std :: os :: raw :: c_int , pub MC7Size : :: std :: os :: raw :: c_int , pub LoadSize : :: std :: os :: raw :: c_int , pub LocalData : :: std :: os :: raw :: c_int , pub SBBLength : :: std :: os :: raw :: c_int , pub CheckSum : :: std :: os :: raw :: c_int , pub Version : :: std :: os :: raw :: c_int , pub CodeDate : [ :: std :: os :: raw :: c_char ; 11usize ] , pub IntfDate : [ :: std :: os :: raw :: c_char ; 11usize ] , pub Author : [ :: std :: os :: raw :: c_char ; 9usize ] , pub Family : [ :: std :: os :: raw :: c_char ; 9usize ] , pub Header : [ :: std :: os :: raw :: c_char ; 9usize ] , } # [ test ] fn bindgen_test_layout_TS7BlockInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7BlockInfo > ( ) , 89usize , concat ! ( "Size of: " , stringify ! ( TS7BlockInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7BlockInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7BlockInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkType as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkType ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkNumber as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkLang as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkLang ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . BlkFlags as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( BlkFlags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . MC7Size as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( MC7Size ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . LoadSize as * const _ as usize } , 20usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( LoadSize ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . LocalData as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( LocalData ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . SBBLength as * const _ as usize } , 28usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( SBBLength ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . CheckSum as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( CheckSum ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Version as * const _ as usize } , 36usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Version ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . CodeDate as * const _ as usize } , 40usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( CodeDate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . IntfDate as * const _ as usize } , 51usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( IntfDate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Author as * const _ as usize } , 62usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Author ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Family as * const _ as usize } , 71usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Family ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7BlockInfo > ( ) ) ) . Header as * const _ as usize } , 80usize , concat ! ( "Offset of field: " , stringify ! ( TS7BlockInfo ) , "::" , stringify ! ( Header ) ) ) ; } pub type TS7BlocksOfType = [ word ; 8192usize ] ; # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct TS7CpuInfo { pub ModuleTypeName : [ :: std :: os :: raw :: c_char ; 33usize ] , pub SerialNumber : [ :: std :: os :: raw :: c_char ; 25usize ] , pub ASName : [ :: std :: os :: raw :: c_char ; 25usize ] , pub Copyright : [ :: std :: os :: raw :: c_char ; 27usize ] , pub ModuleName : [ :: std :: os :: raw :: c_char ; 25usize ] , } # [ test ] fn bindgen_test_layout_TS7CpuInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7CpuInfo > ( ) , 135usize , concat ! ( "Size of: " , stringify ! ( TS7CpuInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7CpuInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7CpuInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ModuleTypeName as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ModuleTypeName ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . SerialNumber as * const _ as usize } , 33usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( SerialNumber ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ASName as * const _ as usize } , 58usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ASName ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . Copyright as * const _ as usize } , 83usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( Copyright ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpuInfo > ( ) ) ) . ModuleName as * const _ as usize } , 110usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpuInfo ) , "::" , stringify ! ( ModuleName ) ) ) ; } # [ repr ( C , packed ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct TS7CpInfo { pub MaxPduLengt : :: std :: os :: raw :: c_int , pub MaxConnections : :: std :: os :: raw :: c_int , pub MaxMpiRate : :: std :: os :: raw :: c_int , pub MaxBusRate : :: std :: os :: raw :: c_int , } # [ test ] fn bindgen_test_layout_TS7CpInfo ( ) { assert_eq ! ( :: std :: mem :: size_of :: < TS7CpInfo > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( TS7CpInfo ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < TS7CpInfo > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( TS7CpInfo ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxPduLengt as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxPduLengt ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxConnections as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxConnections ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxMpiRate as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxMpiRate ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < TS7CpInfo > ( ) ) ) . MaxBusRate as * const _ as usize } , 12usize , concat ! ( "Offset of field: " , stringify ! ( TS7CpInfo ) , "::" , stringify ! ( MaxBusRate ) ) ) ; } extern "C" { pub fn Cli_Create ( ) -> S7Object ; } extern "C" { pub fn Cli_Destroy ( Client : * mut S7Object ) ; } extern "C" { pub fn Cli_ConnectTo ( Client : S7Object , Address : * const :: std :: os :: raw :: c_char , Rack : :: std :: os :: raw :: c_int , Slot : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetConnectionParams ( Client : S7Object , Address : * const :: std :: os :: raw :: c_char , LocalTSAP : word , RemoteTSAP : word ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetConnectionType ( Client : S7Object , ConnectionType : word ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_Disconnect ( Client : S7Object ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetParam ( Client : S7Object , ParamNumber : :: std :: os :: raw :: c_int , pValue : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_SetParam ( Client : S7Object , ParamNumber : :: std :: os :: raw :: c_int , pValue : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ReadArea ( Client : S7Object , Area : :: std :: os :: raw :: c_int , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , WordLen : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_WriteArea ( Client : S7Object , Area : :: std :: os :: raw :: c_int , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , WordLen : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ReadMultiVars ( Client : S7Object , Item : PS7DataItem , ItemsCount : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_WriteMultiVars ( Client : S7Object , Item : PS7DataItem , ItemsCount : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_DBRead ( Client : S7Object , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_DBWrite ( Client : S7Object , DBNumber : :: std :: os :: raw :: c_int , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_MBRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_MBWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_EBRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_EBWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ABRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ABWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Size : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_TMRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_TMWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_CTRead ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_CTWrite ( Client : S7Object , Start : :: std :: os :: raw :: c_int , Amount : :: std :: os :: raw :: c_int , pUsrData : * mut :: std :: os :: raw :: c_void ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ListBlocks ( Client : S7Object , pUsrData : * mut TS7BlocksList ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetAgBlockInfo ( Client : S7Object , BlockType : :: std :: os :: raw :: c_int , BlockNum : :: std :: os :: raw :: c_int , pUsrData : * mut TS7BlockInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPgBlockInfo ( Client : S7Object , pBlock : * mut :: std :: os :: raw :: c_void , pUsrData : * mut TS7BlockInfo , Size : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ListBlocksOfType ( Client : S7Object , BlockType : :: std :: os :: raw :: c_int , pUsrData : * mut TS7BlocksOfType , ItemsCount : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetCpuInfo ( Client : S7Object , pUsrData : * mut TS7CpuInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetCpInfo ( Client : S7Object , pUsrData : * mut TS7CpInfo ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPlcStatus ( Client : S7Object , Status : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetPduLength ( Client : S7Object , Requested : * mut :: std :: os :: raw :: c_int , Negotiated : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_ErrorText ( Error : :: std :: os :: raw :: c_int , Text : * mut :: std :: os :: raw :: c_char , TextLen : :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } extern "C" { pub fn Cli_GetConnected ( Client : S7Object , Connected : * mut :: std :: os :: raw :: c_int ) -> :: std :: os :: raw :: c_int ; } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: fields of packed structs are not properly aligned, and creating a misaligned reference is undefined behavior (even if that reference is never dereferenced) [INFO] [stderr] [INFO] [stderr] error: aborting due to 28 previous errors [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `CtlRecord` [INFO] [stderr] --> examples/simple.rs:125:8 [INFO] [stderr] | [INFO] [stderr] 125 | struct CtlRecord { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] error: could not compile `snap7-sys`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: 2 warnings emitted [INFO] [stderr] [INFO] [stderr] error: build failed [INFO] running `"docker" "inspect" "ec528fa1ff65afce4bd724c50f1edb18fd3b50ad632c2f3920d06616e46d899d"` [INFO] running `"docker" "rm" "-f" "ec528fa1ff65afce4bd724c50f1edb18fd3b50ad632c2f3920d06616e46d899d"` [INFO] [stdout] ec528fa1ff65afce4bd724c50f1edb18fd3b50ad632c2f3920d06616e46d899d